From 8a6fd14c0d7ab8dd41439a009849def878d7dc62 Mon Sep 17 00:00:00 2001 From: Gilles Marec Date: Tue, 10 Mar 2020 21:05:16 +0100 Subject: Reflect service name in application title --- src/stores/ServicesStore.js | 1 + 1 file changed, 1 insertion(+) diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 985887d2d..54befee77 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -699,6 +699,7 @@ export default class ServicesStore extends Store { const service = this.active; if (service) { this.actions.service.focusService({ serviceId: service.id }); + document.title = `Ferdi - ${service.name}`; } } -- cgit v1.2.3-70-g09d2 From eb5e5796fb6d87f15e5aa51e6e9d38366c7ed554 Mon Sep 17 00:00:00 2001 From: Ferdi Bot <56048320+FerdiBot@users.noreply.github.com> Date: Wed, 11 Mar 2020 06:25:48 +0100 Subject: Fixes broken Portugese/Brazilian translations for #438 via #459 --- src/i18n/locales/pt-BR.json | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 711c2c831..1ae1576ef 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -314,15 +314,15 @@ "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.", "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar", "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.", - "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.", + "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.", "settings.app.lockedPassword": "Senha", - "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.", + "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.", "settings.app.restartRequired": "Alterações requerem reinício", "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.", "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.", "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.", "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.", - "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.", + "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.", "settings.app.subheadlineCache": "Memória Cache", "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)", "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", -- cgit v1.2.3-70-g09d2 From d814de5deaea9f385048e795718b746dc5073e75 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 11 Mar 2020 06:52:00 +0100 Subject: Add gmarec as a contributor (#460) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 8ec44a2b9..201b4c451 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -409,6 +409,15 @@ "contributions": [ "code" ] + }, + { + "login": "gmarec", + "name": "gmarec", + "avatar_url": "https://avatars2.githubusercontent.com/u/3405028?v=4", + "profile": "https://www.monke-agency.com/equipe.html", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index dcee800a9..678a66a7d 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -289,6 +289,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Wonsup Yoon

🌍
zutt

🌍
n0emis

💻 +
gmarec

💻 -- cgit v1.2.3-70-g09d2 From adda8c0be0f1d0d4250e6bc7721d3eecfde93e32 Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Wed, 11 Mar 2020 19:32:37 +0100 Subject: Add new translations contributors [skip ci] --- .all-contributorsrc | 35 +++++++++++++++++++-- README.md | 89 +++++++++++++++++++++++++++-------------------------- 2 files changed, 78 insertions(+), 46 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 201b4c451..bc263512b 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -52,7 +52,8 @@ "maintenance", "platform", "fundingFinding", - "blog" + "blog", + "translation" ] }, { @@ -407,7 +408,8 @@ "avatar_url": "https://avatars3.githubusercontent.com/u/22817873?v=4", "profile": "http://twitter.com/noemis_exec", "contributions": [ - "code" + "code", + "translation" ] }, { @@ -418,8 +420,35 @@ "contributions": [ "code" ] + }, + { + "login": "127oo1", + "name": "127oo1", + "avatar_url": "https://www.gravatar.com/avatar/060c722be11da16ae31902e9c98326b2", + "profile": "https://crowdin.com/profile/127oo1", + "contributions": [ + "translation" + ] + }, + { + "login": "ChTBoner", + "name": "ChTBoner", + "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/13273153/small/a810886febf5199cfa1c98644444dea7.jpeg", + "profile": "https://crowdin.com/profile/ChTBoner", + "contributions": [ + "translation" + ] + }, + { + "login": "johanengstrand", + "name": "Johan Engstrand", + "avatar_url": "https://crowdin-static.downloads.crowdin.com/avatar/14152801/small/fd395f120efca971ca9b34c57fd02cca.png", + "profile": "https://crowdin.com/profile/johanengstrand", + "contributions": [ + "translation" + ] } ], "contributorsPerLine": 6, "skipCi": true -} +} \ No newline at end of file diff --git a/README.md b/README.md index 678a66a7d..78d2e8813 100644 --- a/README.md +++ b/README.md @@ -13,9 +13,7 @@

GitHub Releases - -Contributors - +Contributors Open Collective backers Open Collective sponsors Build Status Windows @@ -238,58 +236,63 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - + + + + + + + + +

Bennett

💻 🎨 📖 🤔 🌍 💡 🐛 🖋 🚇 📓 💬 📆 👀

Amine Mouafik

💻 🎨 📖 🤔 🐛 🖋 🚇 📓 💬 📆 👀 🚧 📦 🔍 📝

Stefan Malzner

💻 🖋 🎨 📖 🤔 🚇 📆 ⚠️ 🌍

Makazzz

🐛 💻 🌍 🖋 📖 📦

ZeroCool

💻 🤔

rseitbekov

💻
Bennett
Bennett

💻 🎨 📖 🤔 🌍 💡 🐛 🖋 🚇 📓 💬 📆 👀
Amine Mouafik
Amine Mouafik

💻 🎨 📖 🤔 🐛 🖋 🚇 📓 💬 📆 👀 🚧 📦 🔍 📝 🌍
Stefan Malzner
Stefan Malzner

💻 🖋 🎨 📖 🤔 🚇 📆 ⚠️ 🌍
Makazzz
Makazzz

🐛 💻 🌍 🖋 📖 📦
ZeroCool
ZeroCool

💻 🤔
rseitbekov
rseitbekov

💻

Peter Bittner

🤔 🐛

Justus Saul

🐛 🤔

igreil

🤔

Marco Lopes

🤔

dayzlun

🐛

Tobias Günther

🤔
Peter Bittner
Peter Bittner

🤔 🐛
Justus Saul
Justus Saul

🐛 🤔
igreil
igreil

🤔
Marco Lopes
Marco Lopes

🤔
dayzlun
dayzlun

🐛
Tobias Günther
Tobias Günther

🤔

AGCaesar

📦

xthursdayx

💻 📖 🚇 📦

Gaboris

💬 🐛

Ce

🐛

Stanislav N.

🐛

Patrick Curl

🤔
AGCaesar
AGCaesar

📦
xthursdayx
xthursdayx

💻 📖 🚇 📦
Gaboris
Gaboris

💬 🐛
Ce
Ce

🐛
Stanislav N.
Stanislav N.

🐛
Patrick Curl
Patrick Curl

🤔

Benjamin Staneck

🎨

ammarmalhas

🐛 🛡️

Steliyan Stoyanov

💻 🤔

Bror Winther

📖

Felix W. Dekker

📖

Sauceee

🎨
Benjamin Staneck
Benjamin Staneck

🎨
ammarmalhas
ammarmalhas

🐛 🛡️
Steliyan Stoyanov
Steliyan Stoyanov

💻 🤔
Bror Winther
Bror Winther

📖
Felix W. Dekker
Felix W. Dekker

📖
Sauceee
Sauceee

🎨

Lennart Weller

📦

Andrzej Ressel

💻

Daniel Peukert

💻

Ali M. Shiple

🌍

elviseras

🌍

J370

🌍
Lennart Weller
Lennart Weller

📦
Andrzej Ressel
Andrzej Ressel

💻
Daniel Peukert
Daniel Peukert

💻
Ali M. Shiple
Ali M. Shiple

🌍
elviseras
elviseras

🌍
J370
J370

🌍

Koen

🌍

Leandro Gehlen

🌍

Matthieu42

🌍

Nikita Bibanaev

🌍

Tatjana1998

🌍

tinect

🌍
Koen
Koen

🌍
Leandro Gehlen
Leandro Gehlen

🌍
Matthieu42
Matthieu42

🌍
Nikita Bibanaev
Nikita Bibanaev

🌍
Tatjana1998
Tatjana1998

🌍
tinect
tinect

🌍

Wonsup Yoon

🌍

zutt

🌍

n0emis

💻

gmarec

💻
Wonsup Yoon
Wonsup Yoon

🌍
zutt
zutt

🌍
n0emis
n0emis

💻 🌍
gmarec
gmarec

💻
127oo1
127oo1

🌍
ChTBoner
ChTBoner

🌍
Johan Engstrand
Johan Engstrand

🌍
-- cgit v1.2.3-70-g09d2 From 60c35b90694ee35ec4f7c6468e43d568050b8bae Mon Sep 17 00:00:00 2001 From: Ferdi Bot <56048320+FerdiBot@users.noreply.github.com> Date: Wed, 11 Mar 2020 19:35:51 +0100 Subject: New Crowdin translations (#462) [skip ci] * New translations en-US.json (Dutch) * New translations en-US.json (Dutch) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Swedish) * New translations en-US.json (Swedish) --- src/i18n/locales/nl.json | 20 +- src/i18n/locales/pt-BR.json | 2 +- src/i18n/locales/sv.json | 582 ++++++++++++++++++++++---------------------- 3 files changed, 302 insertions(+), 302 deletions(-) diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 58cf063f0..f77304be0 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -28,13 +28,13 @@ "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "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.", "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", - "feature.publishDebugInfo.privacy": "Privacy policy", - "feature.publishDebugInfo.publish": "Accept and publish", + "feature.publishDebugInfo.privacy": "Privacybeleid", + "feature.publishDebugInfo.publish": "Accepteren en publiceren", "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", "feature.publishDebugInfo.terms": "Gebruiksvoorwaarden", "feature.publishDebugInfo.title": "Publish debug information", "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", - "feature.quickSwitch.search": "Search...", + "feature.quickSwitch.search": "Zoeken...", "feature.quickSwitch.title": "QuickSwitch", "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.", "feature.shareFranz.action.email": "Verstuur als e-mail", @@ -87,8 +87,8 @@ "locked.submit.label": "Ontgrendelen", "locked.touchId": "Unlock with Touch ID", "locked.touchIdPrompt": "unlock via Touch ID", - "locked.unlockWithPassword": "Unlock with Password", - "login.changeServer": "Change server", + "locked.unlockWithPassword": "Ontgrendelen met wachtwoord", + "login.changeServer": "Server wijzigen", "login.customServerQuestion": "Using a custom Ferdi server?", "login.customServerSuggestion": "Try importing your Franz account", "login.email.label": "E-mailadres", @@ -104,7 +104,7 @@ "menu.Todoss.openTodosDrawer": "Open Todos drawer", "menu.app.about": "Over Ferdi", "menu.app.announcement": "Wat is nieuw?", - "menu.app.autohideMenuBar": "Auto-hide menu bar", + "menu.app.autohideMenuBar": "Menubalk automatisch verbergen", "menu.app.checkForUpdates": "Controleer op updates", "menu.app.hide": "Verbergen", "menu.app.hideOthers": "Andere verbergen", @@ -116,7 +116,7 @@ "menu.edit.cut": "Knippen", "menu.edit.delete": "Verwijderen", "menu.edit.emojiSymbols": "Emoji's en symbolen", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "Zoeken op pagina", "menu.edit.paste": "Plakken", "menu.edit.pasteAndMatchStyle": "Plakken en stijl overeen laten komen", "menu.edit.redo": "Opnieuw doen", @@ -145,7 +145,7 @@ "menu.todos": "Todos", "menu.todos.enableTodos": "Enable Todos", "menu.view": "Weergave", - "menu.view.back": "Back", + "menu.view.back": "Terug", "menu.view.enterFullScreen": "Gebruik volledig scherm", "menu.view.exitFullScreen": "Volledig scherm verlaten", "menu.view.forward": "Forward", @@ -177,7 +177,7 @@ "password.successInfo": "Controleer je e-mail", "premiumFeature.button.upgradeAccount": "Upgrade Account", "pricing.features.accountSync": "Account Synchronisation", - "pricing.features.adFree": "Forever ad-free", + "pricing.features.adFree": "Voor altijd reclamevrij", "pricing.features.appDelays": "No Waiting Screens", "pricing.features.customWebsites": "Add Custom Websites", "pricing.features.desktopNotifications": "Desktop Notifications", @@ -492,7 +492,7 @@ "validation.oneRequired": "Minstens één vereist", "validation.required": "{field} is vereist", "validation.url": "{field} is geen geldige URL", - "webControls.back": "Back", + "webControls.back": "Terug", "webControls.forward": "Forward", "webControls.goHome": "Home", "webControls.openInBrowser": "Open in Browser", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 1ae1576ef..f56eaac57 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -352,7 +352,7 @@ "settings.recipes.mostPopular": "Os mais populares", "settings.recipes.nothingFound": "Lamentamos, nenhum serviço corresponde ao termo pesquisado.", "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso", - "settings.searchService": "Pesquisar erviço", + "settings.searchService": "Pesquisar serviço", "settings.service.error.goBack": "Voltar aos serviços", "settings.service.error.headline": "Erro", "settings.service.error.message": "Não foi possível carregar a receita do serviço.", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index eedd34706..ce5403434 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -1,15 +1,15 @@ { - "app.errorHandler.action": "Reload", - "app.errorHandler.headline": "Something went wrong", - "feature.announcements.changelog.headline": "Changes in Ferdi {version}", - "feature.debugger.title": "Publish debugging information", - "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", - "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", + "app.errorHandler.action": "Ladda om", + "app.errorHandler.headline": "Någonting gick snett", + "feature.announcements.changelog.headline": "Ändringar i Ferdi {version}", + "feature.debugger.title": "Skicka felsökningsinformation", + "feature.delayApp.headline": "Vänligen köp en Ferdi Supporter-licens för att slippa vänta", + "feature.delayApp.text": "Ferdi återupptas om {seconds} sekunder.", "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", - "feature.delayApp.upgrade.actionShort": "Upgrade account", + "feature.delayApp.upgrade.action": "Skaffa en Ferdi Supporter-licens", + "feature.delayApp.upgrade.actionShort": "Uppgradera konto", "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", "feature.planSelection.cta.stayOnFree": "Stay on Free", "feature.planSelection.cta.trial": "Start my free 14-days Trial", @@ -26,27 +26,27 @@ "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", - "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.", - "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", - "feature.publishDebugInfo.privacy": "Privacy policy", - "feature.publishDebugInfo.publish": "Accept and publish", - "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", - "feature.publishDebugInfo.terms": "Terms of service", - "feature.publishDebugInfo.title": "Publish debug information", - "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", - "feature.quickSwitch.search": "Search...", - "feature.quickSwitch.title": "QuickSwitch", - "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.", - "feature.shareFranz.action.email": "Send as email", - "feature.shareFranz.action.facebook": "Share on Facebook", - "feature.shareFranz.action.twitter": "Share on Twitter", - "feature.shareFranz.headline": "Ferdi is better together!", - "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", - "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", - "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", - "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", - "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", - "feature.todos.premium.upgrade": "Upgrade Account", + "feature.publishDebugInfo.error": "Ett fel uppstod när felsökningsinformationen skulle skickas. Försök igen senare eller se konsolen för mer information.", + "feature.publishDebugInfo.info": "Genom att skicka oss din felsökningsinformation hjälper du oss att hitta problem och fel i Ferdi. Genom att skicka din felsökningsinformation godkänner du Ferdi-debuggerns sekretesspolicy och användarvillkor", + "feature.publishDebugInfo.privacy": "Integritetspolicy", + "feature.publishDebugInfo.publish": "Godkänn och skicka", + "feature.publishDebugInfo.published": "Din felsökningslogg har skickats och finns nu tillgänglig på", + "feature.publishDebugInfo.terms": "Användarvillkor", + "feature.publishDebugInfo.title": "Skicka felsökningsinformation", + "feature.quickSwitch.info": "Välj en tjänst med TAB, ↑ and ↓. Öppna en tjänst med ENTER.", + "feature.quickSwitch.search": "Sök...", + "feature.quickSwitch.title": "Snabbväxling", + "feature.serviceLimit.limitReached": "Du har lagt till {amount} av {limit} tjänster som ingår i ditt abonnemang. Uppgradera ditt konto för att lägga till fler tjänster.", + "feature.shareFranz.action.email": "Skicka som e-post", + "feature.shareFranz.action.facebook": "Dela på Facebook", + "feature.shareFranz.action.twitter": "Dela på Twitter", + "feature.shareFranz.headline": "Ferdi är bättre tillsammans!", + "feature.shareFranz.shareText.email": "Jag har lagt till {count} tjänster till Ferdi! Skaffa en gratis app för WhatsApp, Messenger, Slack, Skype och många fler på www.getferdi.com", + "feature.shareFranz.shareText.twitter": "Jag har lagt till {count} tjänster till Ferdi! Skaffa en gratis app för WhatsApp, Messenger, Slack, Skype och många fler på www.getferdi.com /cc @FerdiMessenger", + "feature.shareFranz.text": "Berätta för dina vänner och kollegor hur grymt Ferdi är och hjälp oss att sprida ordet.", + "feature.todos.premium.info": "Ferdi Todos är tillgängligt för premiumanvändare nu!", + "feature.todos.premium.rollout": "Alla andra får lov att vänta lite längre.", + "feature.todos.premium.upgrade": "Uppgradera konto", "feature.trialStatusBar.cta": "Upgrade now", "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", @@ -54,143 +54,143 @@ "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.", "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", - "global.api.unhealthy": "Can't connect to Ferdi online services", - "global.franzProRequired": "Ferdi Professional Required", - "global.notConnectedToTheInternet": "You are not connected to the internet.", - "global.spellchecker.useDefault": "Use System Default ({default})", - "global.spellchecking.autodetect": "Detect language automatically", - "global.spellchecking.autodetect.short": "Automatic", - "global.spellchecking.language": "Spell checking language", - "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", - "import.headline": "Import your Ferdi 4 services", - "import.notSupportedHeadline": "Services not yet supported in Ferdi 5", - "import.skip.label": "I want to add services manually", - "import.submit.label": "Import services", - "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", - "infobar.buttonChangelog": "What is new?", - "infobar.buttonInstallUpdate": "Restart & install update", - "infobar.buttonReloadServices": "Reload services", - "infobar.requiredRequestsFailed": "Could not load services and user information", - "infobar.servicesUpdated": "Your services have been updated.", + "global.api.unhealthy": "Kan inte ansluta till Ferdis onlinetjänster", + "global.franzProRequired": "Ferdi Professional krävs", + "global.notConnectedToTheInternet": "Du är inte ansluten till Internet.", + "global.spellchecker.useDefault": "Använd systemstandard ({default})", + "global.spellchecking.autodetect": "Identifiera språk automatiskt", + "global.spellchecking.autodetect.short": "Automatisk", + "global.spellchecking.language": "Rättstavningsspråk", + "global.upgradeButton.upgradeToPro": "Uppgradera till Ferdi Professional", + "import.headline": "Importera dina Ferdi 4-tjänster", + "import.notSupportedHeadline": "Tjänster som ännu inte stöds i Ferdi 5", + "import.skip.label": "Jag vill lägga till tjänster manuellt", + "import.submit.label": "Importera tjänster", + "infobar.authRequestFailed": "Det uppstod fel vid försök då en autentiserad begäran utfördes. Prova att logga ut och in igen om felet kvarstår.", + "infobar.buttonChangelog": "Vad nytt har hänt?", + "infobar.buttonInstallUpdate": "Starta om & installera uppdatering", + "infobar.buttonReloadServices": "Ladda om tjänster", + "infobar.requiredRequestsFailed": "Kunde inte ladda tjänster och användarinformation", + "infobar.servicesUpdated": "Dina tjänster har uppdaterats.", "infobar.trialActivated": "Your trial was successfully activated. Happy messaging!", - "infobar.updateAvailable": "A new update for Ferdi is available.", - "invite.email.label": "Email address", - "invite.headline.friends": "Invite 3 of your friends or colleagues", - "invite.name.label": "Name", + "infobar.updateAvailable": "En ny uppdatering för Ferdi finns tillgänglig.", + "invite.email.label": "E-postadress", + "invite.headline.friends": "Bjud in 3 av dina vänner eller kollegor", + "invite.name.label": "Namn", "invite.skip.label": "I want to do this later", - "invite.submit.label": "Send invites", - "invite.successInfo": "Invitations sent successfully", - "locked.headline": "Locked", + "invite.submit.label": "Skicka inbjudningar", + "invite.successInfo": "Inbjudningar har skickats", + "locked.headline": "Låst", "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", - "locked.invalidCredentials": "Password invalid", - "locked.password.label": "Password", - "locked.submit.label": "Unlock", + "locked.invalidCredentials": "Felaktigt lösenord", + "locked.password.label": "Lösenord", + "locked.submit.label": "Lås upp", "locked.touchId": "Unlock with Touch ID", "locked.touchIdPrompt": "unlock via Touch ID", "locked.unlockWithPassword": "Unlock with Password", - "login.changeServer": "Change server", + "login.changeServer": "Byt server", "login.customServerQuestion": "Using a custom Ferdi server?", "login.customServerSuggestion": "Try importing your Franz account", - "login.email.label": "Email address", - "login.headline": "Sign in", - "login.invalidCredentials": "Email or password not valid", - "login.link.password": "Reset password", + "login.email.label": "E-postadress", + "login.headline": "Logga in", + "login.invalidCredentials": "E-post eller lösenord är felaktigt", + "login.link.password": "Återställ lösenord", "login.link.signup": "Create a free account", - "login.password.label": "Password", + "login.password.label": "Lösenord", "login.serverLogout": "Your session expired, please login again.", - "login.submit.label": "Sign in", + "login.submit.label": "Logga in", "login.tokenExpired": "Your session expired, please login again.", - "menu.Todoss.closeTodosDrawer": "Close Todos drawer", - "menu.Todoss.openTodosDrawer": "Open Todos drawer", - "menu.app.about": "About Ferdi", - "menu.app.announcement": "What's new?", - "menu.app.autohideMenuBar": "Auto-hide menu bar", - "menu.app.checkForUpdates": "Check for updates", - "menu.app.hide": "Hide", - "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", - "menu.app.settings": "Settings", - "menu.app.unhide": "Unhide", - "menu.edit": "Edit", - "menu.edit.copy": "Copy", - "menu.edit.cut": "Cut", - "menu.edit.delete": "Delete", - "menu.edit.emojiSymbols": "Emoji & Symbols", + "menu.Todoss.closeTodosDrawer": "Stäng Todos-lådan", + "menu.Todoss.openTodosDrawer": "Öppna Todos-lådan", + "menu.app.about": "Om Ferdi", + "menu.app.announcement": "Vad nytt har hänt?", + "menu.app.autohideMenuBar": "Dölj menyraden automatiskt", + "menu.app.checkForUpdates": "Sök efter uppdateringar", + "menu.app.hide": "Dölj", + "menu.app.hideOthers": "Dölj övriga", + "menu.app.quit": "Avsluta", + "menu.app.settings": "Inställningar", + "menu.app.unhide": "Sluta dölja", + "menu.edit": "Redigera", + "menu.edit.copy": "Kopiera", + "menu.edit.cut": "Klipp ut", + "menu.edit.delete": "Radera", + "menu.edit.emojiSymbols": "Emojis & symboler", "menu.edit.findInPage": "Find in Page", - "menu.edit.paste": "Paste", + "menu.edit.paste": "Klistra in", "menu.edit.pasteAndMatchStyle": "Paste And Match Style", - "menu.edit.redo": "Redo", - "menu.edit.selectAll": "Select All", - "menu.edit.speech": "Speech", - "menu.edit.startDictation": "Start Dictation", - "menu.edit.startSpeaking": "Start Speaking", + "menu.edit.redo": "Gör om", + "menu.edit.selectAll": "Markera allt", + "menu.edit.speech": "Tal", + "menu.edit.startDictation": "Börja diktera", + "menu.edit.startSpeaking": "Börja tala", "menu.edit.stopSpeaking": "Stop Speaking", - "menu.edit.undo": "Undo", - "menu.file": "File", - "menu.help": "Help", - "menu.help.changelog": "Changelog", + "menu.edit.undo": "Ångra", + "menu.file": "Fil", + "menu.help": "Hjälp", + "menu.help.changelog": "Ändringslogg", "menu.help.debugInfo": "Copy Debug Information", "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", - "menu.help.learnMore": "Learn More", - "menu.help.privacy": "Privacy Statement", + "menu.help.learnMore": "Läs mer", + "menu.help.privacy": "Integritetspolicy", "menu.help.publishDebugInfo": "Publish Debug Information", "menu.help.support": "Support", - "menu.help.tos": "Terms of Service", - "menu.services": "Services", - "menu.services.activatePreviousService": "Activate previous service", - "menu.services.addNewService": "Add New Service...", - "menu.services.goHome": "Home", + "menu.help.tos": "Användarvillkor", + "menu.services": "Tjänster", + "menu.services.activatePreviousService": "Aktivera föregående tjänst", + "menu.services.addNewService": "Lägg till ny tjänst...", + "menu.services.goHome": "Hem", "menu.services.setNextServiceActive": "Activate next service", "menu.todos": "Todos", - "menu.todos.enableTodos": "Enable Todos", - "menu.view": "View", - "menu.view.back": "Back", - "menu.view.enterFullScreen": "Enter Full Screen", - "menu.view.exitFullScreen": "Exit Full Screen", - "menu.view.forward": "Forward", - "menu.view.lockFerdi": "Lock Ferdi", - "menu.view.openQuickSwitch": "Open Quick Switch", + "menu.todos.enableTodos": "Aktivera Todos", + "menu.view": "Visa", + "menu.view.back": "Tillbaka", + "menu.view.enterFullScreen": "Helskärmsläge", + "menu.view.exitFullScreen": "Lämna helskärmsläget", + "menu.view.forward": "Framåt", + "menu.view.lockFerdi": "Lås Ferdi", + "menu.view.openQuickSwitch": "Öppna snabbväxling", "menu.view.reloadFranz": "Reload Ferdi", - "menu.view.reloadService": "Reload Service", - "menu.view.resetZoom": "Actual Size", + "menu.view.reloadService": "Ladda om tjänst", + "menu.view.resetZoom": "Originalstorlek", "menu.view.toggleDevTools": "Toggle Developer Tools", - "menu.view.toggleFullScreen": "Toggle Full Screen", - "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", - "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", - "menu.view.zoomIn": "Zoom In", - "menu.view.zoomOut": "Zoom Out", - "menu.window": "Window", - "menu.window.close": "Close", - "menu.window.minimize": "Minimize", - "menu.workspaces": "Workspaces", + "menu.view.toggleFullScreen": "Växla helskärmsläge", + "menu.view.toggleServiceDevTools": "Växla tjänsteverktyg för utvecklare", + "menu.view.toggleTodosDevTools": "Växla Todos utvecklarverktyg", + "menu.view.zoomIn": "Zooma in", + "menu.view.zoomOut": "Zooma ut", + "menu.window": "Fönster", + "menu.window.close": "Stäng", + "menu.window.minimize": "Minimera", + "menu.workspaces": "Arbetsytor", "menu.workspaces.addNewWorkspace": "Add New Workspace...", "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", "menu.workspaces.defaultWorkspace": "All services", "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", - "password.email.label": "Email address", - "password.headline": "Reset password", + "password.email.label": "E-postadress", + "password.headline": "Återställ lösenord", "password.link.login": "Sign in to your account", "password.link.signup": "Create a free account", "password.noUser": "No user with that email address was found", - "password.submit.label": "Submit", + "password.submit.label": "Skicka", "password.successInfo": "Please check your email", - "premiumFeature.button.upgradeAccount": "Upgrade account", + "premiumFeature.button.upgradeAccount": "Uppgradera konto", "pricing.features.accountSync": "Account Synchronisation", - "pricing.features.adFree": "Forever ad-free", - "pricing.features.appDelays": "No Waiting Screens", - "pricing.features.customWebsites": "Add Custom Websites", + "pricing.features.adFree": "Reklamfritt för alltid", + "pricing.features.appDelays": "Inga vänteskärmar", + "pricing.features.customWebsites": "Lägg till egna webbplatser", "pricing.features.desktopNotifications": "Desktop Notifications", "pricing.features.onPremise": "On-premise & other Hosted Services", "pricing.features.recipes": "Choose from more than 70 Services", - "pricing.features.serviceProxies": "Service Proxies", + "pricing.features.serviceProxies": "Tjänstens proxies", "pricing.features.spellchecker": "Spellchecker support", - "pricing.features.teamManagement": "Team Management", + "pricing.features.teamManagement": "Team-hantering", "pricing.features.thirdPartyServices": "Install 3rd party services", "pricing.features.unlimitedServices": "Add unlimited services", "pricing.features.upToSixServices": "Add up to 6 services", "pricing.features.upToThreeServices": "Add up to 3 services", - "pricing.features.workspaces": "Workspaces", + "pricing.features.workspaces": "Arbetsytor", "pricing.plan.free": "Ferdi Free", "pricing.plan.legacy": "Ferdi Premium", "pricing.plan.personal": "Ferdi Personal", @@ -198,7 +198,7 @@ "pricing.plan.personal-yearly": "Ferdi Personal Yearly", "pricing.plan.pro": "Ferdi Professional", "pricing.plan.pro-monthly": "Ferdi Professional Monthly", - "pricing.plan.pro-yearly": "Ferdi Professional Yearly", + "pricing.plan.pro-yearly": "Ferdi Professional årsvis", "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", "pricing.trial.cta.skip": "Continue to Ferdi", "pricing.trial.cta.start": "Start using Ferdi", @@ -214,108 +214,108 @@ "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", "service.crashHandler.action": "Reload {name}", "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", - "service.crashHandler.headline": "Oh no!", - "service.crashHandler.text": "{name} has caused an error.", + "service.crashHandler.headline": "Åh nej!", + "service.crashHandler.text": "{name} har orsakat ett fel.", "service.disabledHandler.action": "Enable {name}", - "service.disabledHandler.headline": "{name} is disabled", + "service.disabledHandler.headline": "{name} är inaktiverad", "service.errorHandler.action": "Reload {name}", - "service.errorHandler.editAction": "Edit {name}", - "service.errorHandler.headline": "Oh no!", - "service.errorHandler.message": "Error", + "service.errorHandler.editAction": "Redigera {name}", + "service.errorHandler.headline": "Åh nej!", + "service.errorHandler.message": "Fel", "service.errorHandler.text": "{name} has failed to load.", - "service.restrictedHandler.action": "Upgrade Account", - "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", + "service.restrictedHandler.action": "Uppgradera konto", + "service.restrictedHandler.customUrl.headline": "Ferdi Professional krävs", "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", - "service.webviewLoader.loading": "Loading {service}", - "services.getStarted": "Get started", + "service.webviewLoader.loading": "Laddar {service}", + "services.getStarted": "Kom igång", "services.login": "Please login to use Ferdi.", "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", - "services.serverless": "Use Ferdi without an Account", - "services.welcome": "Welcome to Ferdi", + "services.serverless": "Använd Ferdi utan ett konto", + "services.welcome": "Välkommen till Ferdi", "settings.account.account.editButton": "Edit account", "settings.account.accountType.basic": "Basic Account", - "settings.account.accountType.premium": "Premium Supporter Account", + "settings.account.accountType.premium": "Premium Supporterkonto", "settings.account.accountUnavailable": "Account is unavailable", "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.", - "settings.account.buttonSave": "Update profile", - "settings.account.deleteAccount": "Delete account", + "settings.account.buttonSave": "Uppdatera profil", + "settings.account.deleteAccount": "Ta bort ditt användarkonto", "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", - "settings.account.headline": "Account", - "settings.account.headlineAccount": "Account information", - "settings.account.headlineDangerZone": "Danger Zone", - "settings.account.headlineInvoices": "Invoices", - "settings.account.headlinePassword": "Change password", - "settings.account.headlineProfile": "Update profile", - "settings.account.headlineSubscription": "Your subscription", + "settings.account.headline": "Konto", + "settings.account.headlineAccount": "Kontoinformation", + "settings.account.headlineDangerZone": "Högrisksområde", + "settings.account.headlineInvoices": "Fakturor", + "settings.account.headlinePassword": "Ändra lösenord", + "settings.account.headlineProfile": "Uppdatera profil", + "settings.account.headlineSubscription": "Ditt abonnemang", "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", - "settings.account.invoiceDownload": "Download", + "settings.account.invoiceDownload": "Nerladdning", "settings.account.manageSubscription.label": "Manage your subscription", - "settings.account.successInfo": "Your changes have been saved", + "settings.account.successInfo": "Dina ändringar har sparats", "settings.account.trial": "Free Trial", "settings.account.trialEndsIn": "Your free trial ends in {duration}.", "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", - "settings.account.tryReloadServices": "Try again", - "settings.account.tryReloadUserInfoRequest": "Try again", - "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", - "settings.account.userInfoRequestFailed": "Could not load user information", - "settings.account.yourLicense": "Your Ferdi License", + "settings.account.tryReloadServices": "Försök igen", + "settings.account.tryReloadUserInfoRequest": "Försök igen", + "settings.account.upgradeToPro.label": "Uppgradera till Ferdi Professional", + "settings.account.userInfoRequestFailed": "Kunde inte ladda användarinformation", + "settings.account.yourLicense": "Din Ferdi-licens", "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", - "settings.app.buttonClearAllCache": "Clear cache", - "settings.app.buttonInstallUpdate": "Restart & install update", - "settings.app.buttonSearchForUpdate": "Check for updates", + "settings.app.buttonClearAllCache": "Rensa cache", + "settings.app.buttonInstallUpdate": "Starta om & installera uppdatering", + "settings.app.buttonSearchForUpdate": "Sök efter uppdateringar", "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", - "settings.app.currentVersion": "Current version:", + "settings.app.currentVersion": "Nuvarande version:", "settings.app.form.accentColor": "Accent color", "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", - "settings.app.form.autoLaunchInBackground": "Open in background", + "settings.app.form.autoLaunchInBackground": "Öppna i bakgrunden", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", - "settings.app.form.darkMode": "Enable dark mode", + "settings.app.form.darkMode": "Aktivera mörkt läge", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", "settings.app.form.enableSpellchecking": "Enable spell checking", - "settings.app.form.enableSystemTray": "Show Ferdi in system tray", - "settings.app.form.enableTodos": "Enable Ferdi Todos", + "settings.app.form.enableSystemTray": "Visa Ferdi i systemfältet", + "settings.app.form.enableTodos": "Aktivera Ferdi Todos", "settings.app.form.hibernate": "Enable service hibernation", "settings.app.form.hibernationStrategy": "Hibernation strategy", - "settings.app.form.iconSize": "Service icon size", + "settings.app.form.iconSize": "Ikonstorlek för tjänster", "settings.app.form.inactivityLock": "Lock after inactivity", "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", - "settings.app.form.language": "Language", - "settings.app.form.lockPassword": "Password", - "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", - "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.language": "Språk", + "settings.app.form.lockPassword": "Lösenord", + "settings.app.form.minimizeToSystemTray": "Minimera Ferdi till systemfältet", + "settings.app.form.navigationBarBehaviour": "Navigeringsfältets beteende", + "settings.app.form.noUpdates": "Inaktivera uppdateringar", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", - "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", - "settings.app.form.scheduledDNDEnd": "To", - "settings.app.form.scheduledDNDStart": "From", + "settings.app.form.scheduledDNDEnabled": "Aktivera schemalagt Stör ej-läge", + "settings.app.form.scheduledDNDEnd": "Till", + "settings.app.form.scheduledDNDStart": "Från", "settings.app.form.sentry": "Send telemetry data", "settings.app.form.server": "Server", - "settings.app.form.serviceRibbonWidth": "Sidebar width", - "settings.app.form.showDisabledServices": "Display disabled services tabs", + "settings.app.form.serviceRibbonWidth": "Sidofältets bredd", + "settings.app.form.showDisabledServices": "Visa flikar för inaktiverade tjänster", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", "settings.app.form.startMinimized": "Start minimized in tray", "settings.app.form.todoServer": "Todo Server", - "settings.app.form.universalDarkMode": "Enable universal Dark Mode", + "settings.app.form.universalDarkMode": "Aktivera globalt mörkt läge", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", - "settings.app.headline": "Settings", - "settings.app.headlineAdvanced": "Advanced", - "settings.app.headlineAppearance": "Appearance", - "settings.app.headlineGeneral": "General", - "settings.app.headlineLanguage": "Language", - "settings.app.headlineUpdates": "Updates", + "settings.app.headline": "Inställningar", + "settings.app.headlineAdvanced": "Avancerat", + "settings.app.headlineAppearance": "Utseende", + "settings.app.headlineGeneral": "Allmänt", + "settings.app.headlineLanguage": "Språk", + "settings.app.headlineUpdates": "Uppdateringar", "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.", "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", "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.", - "settings.app.lockedPassword": "Password", + "settings.app.lockedPassword": "Lösenord", "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", "settings.app.restartRequired": "Changes require restart", "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.", @@ -327,89 +327,89 @@ "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", - "settings.app.updateStatusAvailable": "Update available, downloading...", + "settings.app.updateStatusAvailable": "Uppdatering tillgänglig, laddar ner...", "settings.app.updateStatusSearching": "Is searching for update", "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi", - "settings.invite.headline": "Invite Friends", - "settings.navigation.account": "Account", - "settings.navigation.availableServices": "Available services", - "settings.navigation.logout": "Logout", - "settings.navigation.settings": "Settings", - "settings.navigation.supportFerdi": "Support Ferdi", + "settings.invite.headline": "Bjud in vänner", + "settings.navigation.account": "Konto", + "settings.navigation.availableServices": "Tillgängliga tjänster", + "settings.navigation.logout": "Logga ut", + "settings.navigation.settings": "Inställningar", + "settings.navigation.supportFerdi": "Stöd Ferdi", "settings.navigation.team": "Manage Team", - "settings.navigation.yourServices": "Your services", - "settings.navigation.yourWorkspaces": "Your workspaces", + "settings.navigation.yourServices": "Dina tjänster", + "settings.navigation.yourWorkspaces": "Dina arbetsytor", "settings.recipes.all": "All services", - "settings.recipes.custom": "Custom Services", + "settings.recipes.custom": "Anpassade tjänster", "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", - "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", + "settings.recipes.customService.headline.devRecipes": "Dina recept för utvecklingsservice", "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", "settings.recipes.customService.openDevDocs": "Developer Documentation", - "settings.recipes.customService.openFolder": "Open folder", - "settings.recipes.headline": "Available services", - "settings.recipes.missingService": "Missing a service?", + "settings.recipes.customService.openFolder": "Öppna mapp", + "settings.recipes.headline": "Tillgängliga tjänster", + "settings.recipes.missingService": "Saknar du en tjänst?", "settings.recipes.mostPopular": "Most popular", "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", - "settings.searchService": "Search service", - "settings.service.error.goBack": "Back to services", - "settings.service.error.headline": "Error", - "settings.service.error.message": "Could not load service recipe.", - "settings.service.form.addServiceHeadline": "Add {name}", - "settings.service.form.availableServices": "Available services", - "settings.service.form.customUrl": "Custom server", + "settings.searchService": "Sök efter tjänst", + "settings.service.error.goBack": "Tillbaka till tjänster", + "settings.service.error.headline": "Fel", + "settings.service.error.message": "Kunde inte ladda servicerecept.", + "settings.service.form.addServiceHeadline": "Lägg till {name}", + "settings.service.form.availableServices": "Tillgängliga tjänster", + "settings.service.form.customUrl": "Anpassad server", "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", - "settings.service.form.deleteButton": "Delete service", - "settings.service.form.editServiceHeadline": "Edit {name}", + "settings.service.form.deleteButton": "Ta bort tjänst", + "settings.service.form.editServiceHeadline": "Redigera {name}", "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", - "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.enableDarkMode": "Aktivera mörkt läge", "settings.service.form.enableNotification": "Enable notifications", - "settings.service.form.enableService": "Enable service", + "settings.service.form.enableService": "Aktivera tjänst", "settings.service.form.headlineBadges": "Unread message badges", - "settings.service.form.headlineGeneral": "General", - "settings.service.form.headlineNotifications": "Notifications", - "settings.service.form.icon": "Custom icon", - "settings.service.form.iconDelete": "Delete", - "settings.service.form.iconUpload": "Drop your image, or click here", + "settings.service.form.headlineGeneral": "Allmänt", + "settings.service.form.headlineNotifications": "Aviseringar", + "settings.service.form.icon": "Anpassad ikon", + "settings.service.form.iconDelete": "Radera", + "settings.service.form.iconUpload": "Släpp din bild, eller klicka här", "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", "settings.service.form.indirectMessages": "Show message badge for all new messages", "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", - "settings.service.form.name": "Name", - "settings.service.form.openDarkmodeCss": "Open darkmode.css", - "settings.service.form.openUserCss": "Open user.css", + "settings.service.form.name": "Namn", + "settings.service.form.openDarkmodeCss": "Öppna darkmode.css", + "settings.service.form.openUserCss": "Öppna user.css", "settings.service.form.openUserJs": "Open user.js", - "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", - "settings.service.form.proxy.host": "Proxy Host/IP", + "settings.service.form.proxy.headline": "Inställningar för HTTP/HTTPS-proxy", + "settings.service.form.proxy.host": "Proxy-värd/IP", "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", - "settings.service.form.proxy.isEnabled": "Use Proxy", - "settings.service.form.proxy.password": "Password (optional)", + "settings.service.form.proxy.isEnabled": "Använd proxy", + "settings.service.form.proxy.password": "Lösenord (frivilligt)", "settings.service.form.proxy.port": "Port", "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", - "settings.service.form.proxy.user": "User (optional)", + "settings.service.form.proxy.user": "Användare (valfritt)", "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.", "settings.service.form.saveButton": "Save service", - "settings.service.form.tabHosted": "Hosted", - "settings.service.form.tabOnPremise": "Self hosted ⭐️", + "settings.service.form.tabHosted": "Värd", + "settings.service.form.tabOnPremise": "Self-hosted ⭐", "settings.service.form.team": "Team", - "settings.service.form.useHostedService": "Use the hosted {name} service.", - "settings.service.form.yourServices": "Your services", - "settings.services.deletedInfo": "Service has been deleted", - "settings.services.discoverServices": "Discover services", - "settings.services.headline": "Your services", + "settings.service.form.useHostedService": "Använd den värd-baserade tjänsten {name}.", + "settings.service.form.yourServices": "Dina tjänster", + "settings.services.deletedInfo": "Tjänsten har tagits bort", + "settings.services.discoverServices": "Upptäck tjänster", + "settings.services.headline": "Dina tjänster", "settings.services.noServicesAdded": "You haven't added any services yet.", - "settings.services.servicesRequestFailed": "Could not load your services", + "settings.services.servicesRequestFailed": "Kunde inte ladda dina tjänster", "settings.services.tooltip.isDisabled": "Service is disabled", "settings.services.tooltip.isMuted": "All sounds are muted", "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", - "settings.services.updatedInfo": "Your changes have been saved", - "settings.supportFerdi.github": "Star on GitHub", - "settings.supportFerdi.headline": "Support Ferdi", - "settings.supportFerdi.openCollective": "Support our Open Collective", - "settings.supportFerdi.share": "Tell your Friends", + "settings.services.updatedInfo": "Dina ändringar har sparats", + "settings.supportFerdi.github": "Stjärnmarkera på GitHub", + "settings.supportFerdi.headline": "Stöd Ferdi", + "settings.supportFerdi.openCollective": "Stöd vårt öppna kollektiv", + "settings.supportFerdi.share": "Tipsa dina vänner om oss", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", "settings.team.contentHeadline": "Ferdi for Teams", "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!", @@ -419,95 +419,95 @@ "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", - "settings.user.form.accountType.company": "Company", + "settings.user.form.accountType.company": "Företag", "settings.user.form.accountType.individual": "Individual", "settings.user.form.accountType.label": "Account type", - "settings.user.form.accountType.non-profit": "Non-Profit", - "settings.user.form.currentPassword": "Current password", - "settings.user.form.email": "Email", - "settings.user.form.firstname": "First Name", - "settings.user.form.lastname": "Last Name", + "settings.user.form.accountType.non-profit": "Ideell organisation", + "settings.user.form.currentPassword": "Nuvarande lösenord", + "settings.user.form.email": "E-post", + "settings.user.form.firstname": "Förnamn", + "settings.user.form.lastname": "Efternamn", "settings.user.form.newPassword": "New password", - "settings.workspace.add.form.name": "Name", - "settings.workspace.add.form.submitButton": "Create workspace", - "settings.workspace.form.buttonDelete": "Delete workspace", - "settings.workspace.form.buttonSave": "Save workspace", - "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", + "settings.workspace.add.form.name": "Namn", + "settings.workspace.add.form.submitButton": "Skapa arbetsyta", + "settings.workspace.form.buttonDelete": "Ta bort arbetsyta", + "settings.workspace.form.buttonSave": "Spara arbetsyta", + "settings.workspace.form.keepLoaded": "Håll denna arbetsyta laddad*", "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", - "settings.workspace.form.name": "Name", + "settings.workspace.form.name": "Namn", "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", - "settings.workspace.form.yourWorkspaces": "Your workspaces", + "settings.workspace.form.yourWorkspaces": "Dina arbetsytor", "settings.workspaces.deletedInfo": "Workspace has been deleted", - "settings.workspaces.headline": "Your workspaces", + "settings.workspaces.headline": "Dina arbetsytor", "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", - "settings.workspaces.tryReloadWorkspaces": "Try again", - "settings.workspaces.updatedInfo": "Your changes have been saved", + "settings.workspaces.tryReloadWorkspaces": "Försök igen", + "settings.workspaces.updatedInfo": "Dina ändringar har sparats", "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", "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.", - "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", - "sidebar.addNewService": "Add new service", - "sidebar.closeTodosDrawer": "Close Ferdi Todos", + "settings.workspaces.workspacesRequestFailed": "Kunde inte ladda dina arbetsytor", + "sidebar.addNewService": "Lägg till ny tjänst", + "sidebar.closeTodosDrawer": "Stäng Ferdi Todos", "sidebar.closeWorkspaceDrawer": "Close workspace drawer", - "sidebar.lockFerdi": "Lock Ferdi", - "sidebar.muteApp": "Disable notifications & audio", - "sidebar.openTodosDrawer": "Open Ferdi Todos", + "sidebar.lockFerdi": "Lås Ferdi", + "sidebar.muteApp": "Inaktivera notifikationer och ljud", + "sidebar.openTodosDrawer": "Öppna Ferdi Todos", "sidebar.openWorkspaceDrawer": "Open workspace drawer", - "sidebar.settings": "Settings", - "sidebar.unmuteApp": "Enable notifications & audio", - "signup.email.label": "Email address", + "sidebar.settings": "Inställningar", + "sidebar.unmuteApp": "Aktivera aviseringar och ljud", + "signup.email.label": "E-postadress", "signup.emailDuplicate": "A user with that email address already exists", - "signup.firstname.label": "First Name", - "signup.headline": "Sign up", - "signup.lastname.label": "Last Name", + "signup.firstname.label": "Förnamn", + "signup.headline": "Registrera dig", + "signup.lastname.label": "Efternamn", "signup.legal.info": "By creating a Ferdi account you accept the", - "signup.legal.privacy": "Privacy Statement", - "signup.legal.terms": "Terms of service", + "signup.legal.privacy": "Integritetspolicy", + "signup.legal.terms": "Användarvillkor", "signup.link.login": "Already have an account, sign in?", - "signup.password.label": "Password", - "signup.submit.label": "Create account", + "signup.password.label": "Lösenord", + "signup.submit.label": "Skapa konto", "subscription.bestValue": "Best value", "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", - "subscription.cta.allOptions": "See all options", - "subscription.cta.choosePlan": "Choose your plan", + "subscription.cta.allOptions": "Se alla alternativ", + "subscription.cta.choosePlan": "Välj abonnemang", "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", "subscription.interval.per": "per {interval}", - "subscription.interval.perMonth": "per month", - "subscription.interval.perMonthPerUser": "per month & user", - "subscription.planItem.upgradeAccount": "Upgrade Account", + "subscription.interval.perMonth": "per månad", + "subscription.interval.perMonthPerUser": "per månad & användare", + "subscription.planItem.upgradeAccount": "Uppgradera konto", "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", "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!", - "subscriptionPopup.buttonCancel": "Cancel", - "subscriptionPopup.buttonDone": "Done", - "tabs.item.deleteService": "Delete service", - "tabs.item.disableAudio": "Disable audio", + "subscriptionPopup.buttonCancel": "Avbryt", + "subscriptionPopup.buttonDone": "Klar", + "tabs.item.deleteService": "Ta bort tjänst", + "tabs.item.disableAudio": "Inaktivera ljud", "tabs.item.disableNotifications": "Disable notifications", - "tabs.item.disableService": "Disable service", - "tabs.item.edit": "Edit", + "tabs.item.disableService": "Inaktivera tjänst", + "tabs.item.edit": "Redigera", "tabs.item.enableAudio": "Enable audio", "tabs.item.enableNotification": "Enable notifications", - "tabs.item.enableService": "Enable service", - "tabs.item.reload": "Reload", + "tabs.item.enableService": "Aktivera tjänst", + "tabs.item.reload": "Ladda om", "validation.email": "{field} is not valid", "validation.minLength": "{field} should be at least {length} characters long", - "validation.oneRequired": "At least one is required", + "validation.oneRequired": "Minst en krävs", "validation.required": "{field} is required", "validation.url": "{field} is not a valid URL", - "webControls.back": "Back", - "webControls.forward": "Forward", - "webControls.goHome": "Home", - "webControls.openInBrowser": "Open in Browser", - "webControls.reload": "Reload", + "webControls.back": "Tillbaka", + "webControls.forward": "Framåt", + "webControls.goHome": "Hem", + "webControls.openInBrowser": "Öppna i webbläsare", + "webControls.reload": "Ladda om", "welcome.loginButton": "Login to your account", "welcome.signupButton": "Create a free account", - "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", + "workspaceDrawer.addNewWorkspaceLabel": "Skapa ny arbetsyta", "workspaceDrawer.allServices": "All services", - "workspaceDrawer.headline": "Workspaces", - "workspaceDrawer.item.contextMenuEdit": "edit", + "workspaceDrawer.headline": "Arbetsytor", + "workspaceDrawer.item.contextMenuEdit": "redigera", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", - "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", - "workspaceDrawer.proFeatureBadge": "Premium feature", + "workspaceDrawer.premiumCtaButtonLabel": "Skapa din första arbetsyta", + "workspaceDrawer.proFeatureBadge": "Premium-funktion", "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", "workspaceDrawer.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.

", - "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", + "workspaceDrawer.workspacesSettingsTooltip": "Redigera inställningar för arbetsytor", "workspaces.switchingIndicator.switchingTo": "Switching to" } -- cgit v1.2.3-70-g09d2 From 9994a8a1034cd6b9099680c1c3824091572b6525 Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Wed, 11 Mar 2020 19:41:51 +0100 Subject: Update submodules --- recipes | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/recipes b/recipes index de6545a08..fc3e248af 160000 --- a/recipes +++ b/recipes @@ -1 +1 @@ -Subproject commit de6545a0858fa1aca1cea4b69764656bd583a80a +Subproject commit fc3e248afa57b0cd13f96b54a7546ad09ceeef98 -- cgit v1.2.3-70-g09d2 From 267d192aaa2cf4fe362f07269896ebd5b569e9e3 Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Thu, 19 Mar 2020 01:32:38 +0100 Subject: Review custom window draggable height Reduces conflicts with underlying webview content. --- src/styles/layout.scss | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/styles/layout.scss b/src/styles/layout.scss index c09d69f6c..de00c01b4 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss @@ -90,7 +90,7 @@ body.win32:not(.isFullScreen) .app .app__content { .electron-app-title-bar { z-index: 99999999; } .window-draggable { - height: 35px; + height: 22px; left: 0; pointer-events: none; position: absolute; -- cgit v1.2.3-70-g09d2 From e7e31e644107a4dd3a58248a0018400310eaf06c Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Thu, 19 Mar 2020 03:14:23 +0100 Subject: Upgrade Electron-related depndencies To include latest fixes. --- package-lock.json | 991 +++++++++++++++++++++++++++++++++++++++--------------- package.json | 6 +- 2 files changed, 721 insertions(+), 276 deletions(-) diff --git a/package-lock.json b/package-lock.json index fd434bb90..2200d61d1 100644 --- a/package-lock.json +++ b/package-lock.json @@ -2592,9 +2592,9 @@ } }, "@electron/get": { - "version": "1.7.6", - "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.7.6.tgz", - "integrity": "sha512-zlNikt6ziVLNcm4lly1L4y62fJd/eYpEBjF5DiV/VAQq2vdPjH4sbUphXt9upmHz86lAhAj8g9lTnWrxJ/KBZw==", + "version": "1.9.0", + "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.9.0.tgz", + "integrity": "sha512-OBIKtF6ttIJotDXe4KJMUyTBO4xMii+mFjlA8R4CORuD4HvCUaCK3lPjhdTRCvuEv6gzWNbAvd9DNBv0v780lw==", "dev": true, "requires": { "debug": "^4.1.1", @@ -2603,6 +2603,7 @@ "global-agent": "^2.0.2", "global-tunnel-ng": "^2.7.1", "got": "^9.6.0", + "progress": "^2.0.3", "sanitize-filename": "^1.6.2", "sumchecker": "^3.0.1" }, @@ -4763,6 +4764,15 @@ "integrity": "sha512-EaObqwIvayI5a8dCzhFrjKzVwKLxjoG9T6Ppd5CEo07LRKfQ8Yokw54r5+Wq7FaBQ+yXRvQAYPrHwya1/UFt9g==", "dev": true }, + "@types/fs-extra": { + "version": "8.1.0", + "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-8.1.0.tgz", + "integrity": "sha512-UoOfVEzAUpeSPmjm7h1uk5MH6KZma2z2O7a75onTGjnNvAvMVrPzPL/vBbT65iIGHWj6rokwfmYcmxmlSf2uwg==", + "dev": true, + "requires": { + "@types/node": "*" + } + }, "@types/glob": { "version": "7.1.1", "resolved": "https://registry.npmjs.org/@types/glob/-/glob-7.1.1.tgz", @@ -4824,8 +4834,7 @@ "@types/node": { "version": "12.7.5", "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz", - "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==", - "dev": true + "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==" }, "@types/prop-types": { "version": "15.7.3", @@ -4865,9 +4874,12 @@ } }, "@types/semver": { - "version": "6.2.0", - "resolved": "https://registry.npmjs.org/@types/semver/-/semver-6.2.0.tgz", - "integrity": "sha512-1OzrNb4RuAzIT7wHSsgZRlMBlNsJl+do6UblR7JMW4oB7bbR+uBEYtUh7gEc/jM84GGilh68lSOokyM/zNUlBA==" + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz", + "integrity": "sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA==", + "requires": { + "@types/node": "*" + } }, "@types/stack-utils": { "version": "1.0.1", @@ -5759,39 +5771,39 @@ } }, "app-builder-bin": { - "version": "3.4.3", - "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.4.3.tgz", - "integrity": "sha512-qMhayIwi3juerQEVJMQ76trObEbfQT0nhUdxZz9a26/3NLT3pE6awmQ8S1cEnrGugaaM5gYqR8OElcDezfmEsg==", + "version": "3.5.5", + "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.5.tgz", + "integrity": "sha512-ZcHzJ9Xl+azPqdKzXZKdRZmkNmbxHHZyl4cbobNf8qMQpoPChpcov8riVrZSbu/0cT/JqJ8LOwJjy1OAwbChaQ==", "dev": true }, "app-builder-lib": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-21.2.0.tgz", - "integrity": "sha512-aOX/nv77/Bti6NymJDg7p9T067xD8m1ipIEJR7B4Mm1GsJWpMm9PZdXtCRiMNRjHtQS5KIljT0g17781y6qn5A==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.4.1.tgz", + "integrity": "sha512-epwUzIM+2pcdy/If9koTP74CKx4v7xGPj75a2Z5cM4rrGN9yVZ3eDUBbfF0e0qE4Qmcv5pd0BAZJ26bGm8NWsQ==", "dev": true, "requires": { "7zip-bin": "~5.0.3", "@develar/schema-utils": "~2.1.0", "async-exit-hook": "^2.0.1", "bluebird-lst": "^1.0.9", - "builder-util": "21.2.0", - "builder-util-runtime": "8.3.0", + "builder-util": "22.4.1", + "builder-util-runtime": "8.6.2", "chromium-pickle-js": "^0.2.0", "debug": "^4.1.1", - "ejs": "^2.6.2", - "electron-publish": "21.2.0", + "ejs": "^3.0.1", + "electron-publish": "22.4.1", "fs-extra": "^8.1.0", - "hosted-git-info": "^2.7.1", + "hosted-git-info": "^3.0.4", "is-ci": "^2.0.0", - "isbinaryfile": "^4.0.2", + "isbinaryfile": "^4.0.4", "js-yaml": "^3.13.1", "lazy-val": "^1.0.4", "minimatch": "^3.0.4", "normalize-package-data": "^2.5.0", - "read-config-file": "5.0.0", - "sanitize-filename": "^1.6.2", - "semver": "^6.3.0", - "temp-file": "^3.3.4" + "read-config-file": "5.0.2", + "sanitize-filename": "^1.6.3", + "semver": "^7.1.3", + "temp-file": "^3.3.7" }, "dependencies": { "fs-extra": { @@ -5805,10 +5817,28 @@ "universalify": "^0.1.0" } }, + "hosted-git-info": { + "version": "3.0.4", + "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", + "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", + "dev": true, + "requires": { + "lru-cache": "^5.1.1" + } + }, + "lru-cache": { + "version": "5.1.1", + "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", + "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", + "dev": true, + "requires": { + "yallist": "^3.0.2" + } + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==", "dev": true } } @@ -6757,46 +6787,114 @@ } }, "boxen": { - "version": "3.2.0", - "resolved": "https://registry.npmjs.org/boxen/-/boxen-3.2.0.tgz", - "integrity": "sha512-cU4J/+NodM3IHdSL2yN8bqYqnmlBTidDR4RC7nJs61ZmtGz8VZzM3HLQX0zY5mrSmPtR3xWwsq2jOUQqFZN8+A==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/boxen/-/boxen-4.2.0.tgz", + "integrity": "sha512-eB4uT9RGzg2odpER62bBwSLvUeGC+WbRjjyyFhGsKnc8wp/m0+hQsMUvUe3H2V0D5vw0nBdO1hCJoZo5mKeuIQ==", "dev": true, "requires": { "ansi-align": "^3.0.0", "camelcase": "^5.3.1", - "chalk": "^2.4.2", + "chalk": "^3.0.0", "cli-boxes": "^2.2.0", - "string-width": "^3.0.0", - "term-size": "^1.2.0", - "type-fest": "^0.3.0", - "widest-line": "^2.0.0" + "string-width": "^4.1.0", + "term-size": "^2.1.0", + "type-fest": "^0.8.1", + "widest-line": "^3.1.0" }, "dependencies": { "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" } + }, + "type-fest": { + "version": "0.8.1", + "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", + "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", + "dev": true } } }, @@ -7042,26 +7140,62 @@ "dev": true }, "builder-util": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-21.2.0.tgz", - "integrity": "sha512-Nd6CUb6YgDY8EXAXEIegx+1kzKqyFQ5ZM5BoYkeunAlwz/zDJoH1UCyULjoS5wQe5czNClFQy07zz2bzYD0Z4A==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.4.1.tgz", + "integrity": "sha512-+ysLc7cC4w6P7rBxmZ5X2aU3QvcwFoWCl1us+mcUKdsGmJAtFUMPJqueeptdxjyPrPShIUOKHzA8uk5A3d1fHg==", "dev": true, "requires": { "7zip-bin": "~5.0.3", - "@types/debug": "^4.1.4", - "app-builder-bin": "3.4.3", + "@types/debug": "^4.1.5", + "@types/fs-extra": "^8.1.0", + "app-builder-bin": "3.5.5", "bluebird-lst": "^1.0.9", - "builder-util-runtime": "8.3.0", - "chalk": "^2.4.2", + "builder-util-runtime": "8.6.2", + "chalk": "^3.0.0", "debug": "^4.1.1", "fs-extra": "^8.1.0", "is-ci": "^2.0.0", "js-yaml": "^3.13.1", - "source-map-support": "^0.5.13", - "stat-mode": "^0.3.0", - "temp-file": "^3.3.4" + "source-map-support": "^0.5.16", + "stat-mode": "^1.0.0", + "temp-file": "^3.3.7" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -7072,14 +7206,38 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "source-map-support": { + "version": "0.5.16", + "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.16.tgz", + "integrity": "sha512-efyLRJDr68D9hBBNIPWFjhpFzURh+KJykQwvMyW5UiZzYwoF6l4YMMDIJJEyFWxWCqfyxLzz6tSfUFR+kXXsVQ==", + "dev": true, + "requires": { + "buffer-from": "^1.0.0", + "source-map": "^0.6.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, "builder-util-runtime": { - "version": "8.3.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.3.0.tgz", - "integrity": "sha512-CSOdsYqf4RXIHh1HANPbrZHlZ9JQJXSuDDloblZPcWQVN62inyYoTQuSmY3KrgefME2Sv3Kn2MxHvbGQHRf8Iw==", - "dev": true, + "version": "8.6.2", + "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz", + "integrity": "sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A==", "requires": { "debug": "^4.1.1", "sax": "^1.2.4" @@ -8007,26 +8165,59 @@ } }, "configstore": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/configstore/-/configstore-4.0.0.tgz", - "integrity": "sha512-CmquAXFBocrzaSM8mtGPMM/HiWmyIpr4CcJl/rgY2uCObZ/S7cKU0silxslqJejl+t/T9HS8E0PUNQD81JGUEQ==", + "version": "5.0.1", + "resolved": "https://registry.npmjs.org/configstore/-/configstore-5.0.1.tgz", + "integrity": "sha512-aMKprgk5YhBNyH25hj8wGt2+D52Sw1DRRIzqBwLp2Ya9mFmY8KPvvtvmna8SxVR9JMZ4kzMD68N22vlaRpkeFA==", "dev": true, "requires": { - "dot-prop": "^4.1.0", + "dot-prop": "^5.2.0", "graceful-fs": "^4.1.2", - "make-dir": "^1.0.0", - "unique-string": "^1.0.0", - "write-file-atomic": "^2.0.0", - "xdg-basedir": "^3.0.0" + "make-dir": "^3.0.0", + "unique-string": "^2.0.0", + "write-file-atomic": "^3.0.0", + "xdg-basedir": "^4.0.0" }, "dependencies": { "dot-prop": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-4.2.0.tgz", - "integrity": "sha512-tUMXrxlExSW6U2EXiiKGSBVdYgtV8qlHL+C10TsW4PURY/ic+eaysnSkwB4kA/mBlCyy/IKDJ+Lc3wbWeaXtuQ==", + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.2.0.tgz", + "integrity": "sha512-uEUyaDKoSQ1M4Oq8l45hSE26SnTxL6snNnqvK/VWx5wJhmff5z0FUVJDKDanor/6w3kzE3i7XZOk+7wC0EXr1A==", "dev": true, "requires": { - "is-obj": "^1.0.0" + "is-obj": "^2.0.0" + } + }, + "is-obj": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", + "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", + "dev": true + }, + "make-dir": { + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-3.0.2.tgz", + "integrity": "sha512-rYKABKutXa6vXTXhoV18cBE7PaewPXHe/Bdq4v+ZLMhxbWApkFFplT0LcbMW+6BbjnQXzZ/sAvSE/JdguApG5w==", + "dev": true, + "requires": { + "semver": "^6.0.0" + } + }, + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + }, + "write-file-atomic": { + "version": "3.0.3", + "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-3.0.3.tgz", + "integrity": "sha512-AvHcyZ5JnSfq3ioSyjrBkH9yW4m7Ayk8/9My/DD9onKeu/94fwrMocemO2QAJFAlnnDN+ZDS+ZjAR5ua1/PV/Q==", + "dev": true, + "requires": { + "imurmurhash": "^0.1.4", + "is-typedarray": "^1.0.0", + "signal-exit": "^3.0.2", + "typedarray-to-buffer": "^3.1.5" } } } @@ -8724,9 +8915,9 @@ } }, "crypto-random-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-1.0.0.tgz", - "integrity": "sha1-ojD2T1aDEOFJgAmUB5DsmVRbyn4=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/crypto-random-string/-/crypto-random-string-2.0.0.tgz", + "integrity": "sha512-v1plID3y9r/lPhviJ1wrXpLeyUIGAZ2SHNYTEapm7/8A9nLPoyvVp3RK/EPFqn5kEznyWgYZNsRtYYIWbuG8KA==", "dev": true }, "csrf": { @@ -9282,18 +9473,18 @@ } }, "dmg-builder": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-21.2.0.tgz", - "integrity": "sha512-9cJEclnGy7EyKFCoHDYDf54pub/t92CQapyiUxU0w9Bj2vUvfoDagP1PMiX4XD5rPp96141h9A+QN0OB4VgvQg==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.4.1.tgz", + "integrity": "sha512-hEemh7n0zoVt7zPPwvn7iOttP03oENjJ4ApttPmt8oDnX8T4q42MjGWyDlLkPMplMJfoTxkkNqmm296f0OYM8Q==", "dev": true, "requires": { - "app-builder-lib": "~21.2.0", + "app-builder-lib": "~22.4.1", "bluebird-lst": "^1.0.9", - "builder-util": "~21.2.0", + "builder-util": "~22.4.1", "fs-extra": "^8.1.0", - "iconv-lite": "^0.5.0", + "iconv-lite": "^0.5.1", "js-yaml": "^3.13.1", - "sanitize-filename": "^1.6.2" + "sanitize-filename": "^1.6.3" }, "dependencies": { "fs-extra": { @@ -9308,9 +9499,9 @@ } }, "iconv-lite": { - "version": "0.5.0", - "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.0.tgz", - "integrity": "sha512-NnEhI9hIEKHOzJ4f697DMz9IQEXr/MMJ5w64vN2/4Ai+wRnvV7SBrL0KLoRlwaKVghOc7LQ5YkPLuX146b6Ydw==", + "version": "0.5.1", + "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.1.tgz", + "integrity": "sha512-ONHr16SQvKZNSqjQT9gy5z24Jw+uqfO02/ngBSBoqChZ+W8qXX7GPRa1RoUnzGADw8K63R1BXUMzarCVQBpY8Q==", "dev": true, "requires": { "safer-buffer": ">= 2.1.2 < 3" @@ -9618,15 +9809,15 @@ "dev": true }, "ejs": { - "version": "2.7.1", - "resolved": "https://registry.npmjs.org/ejs/-/ejs-2.7.1.tgz", - "integrity": "sha512-kS/gEPzZs3Y1rRsbGX4UOSjtP/CeJP0CxSNZHYxGfVM/VgLcv0ZqM7C45YyTj2DI2g7+P9Dd24C+IMIg6D0nYQ==", + "version": "3.0.1", + "resolved": "https://registry.npmjs.org/ejs/-/ejs-3.0.1.tgz", + "integrity": "sha512-cuIMtJwxvzumSAkqaaoGY/L6Fc/t6YvoP9/VIaK0V/CyqKLEQ8sqODmYfy/cjXEdZ9+OOL8TecbJu+1RsofGDw==", "dev": true }, "electron": { - "version": "8.0.0", - "resolved": "https://registry.npmjs.org/electron/-/electron-8.0.0.tgz", - "integrity": "sha512-vBXUKRqTUq0jv1upvISdvScDDH3uCPwXj4eA5BeR3UDbJp2hOhq7eJxwjIQbfLQql98aYz4X6pSlzBnhfyQqHA==", + "version": "8.1.1", + "resolved": "https://registry.npmjs.org/electron/-/electron-8.1.1.tgz", + "integrity": "sha512-t+5zzFo7VOgckJc9YpImHJkpqeWxwpmEjywWbAa4IT5MULS7h1XU52H9gMswK/y8xc5lBNwxLhJSty/15+gi1A==", "dev": true, "requires": { "@electron/get": "^1.0.1", @@ -9635,41 +9826,102 @@ } }, "electron-builder": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-21.2.0.tgz", - "integrity": "sha512-x8EXrqFbAb2L3N22YlGar3dGh8vwptbB3ovo3OF6K7NTpcsmM2zEoJv7GhFyX73rNzSG2HaWpXwGAtOp2JWiEw==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.4.1.tgz", + "integrity": "sha512-13CjZcGeJS+c3EKRwFT/Oty5Niif5g1FwDioBLEbjkPCPQgxdtDsr+rJtCu9qxkiKDYpAoPS+t/clNk0efONvQ==", "dev": true, "requires": { - "app-builder-lib": "21.2.0", + "@types/yargs": "^15.0.4", + "app-builder-lib": "22.4.1", "bluebird-lst": "^1.0.9", - "builder-util": "21.2.0", - "builder-util-runtime": "8.3.0", - "chalk": "^2.4.2", - "dmg-builder": "21.2.0", + "builder-util": "22.4.1", + "builder-util-runtime": "8.6.2", + "chalk": "^3.0.0", + "dmg-builder": "22.4.1", "fs-extra": "^8.1.0", "is-ci": "^2.0.0", "lazy-val": "^1.0.4", - "read-config-file": "5.0.0", - "sanitize-filename": "^1.6.2", - "update-notifier": "^3.0.1", - "yargs": "^13.3.0" + "read-config-file": "5.0.2", + "sanitize-filename": "^1.6.3", + "update-notifier": "^4.1.0", + "yargs": "^15.1.0" }, "dependencies": { + "@types/yargs": { + "version": "15.0.4", + "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.4.tgz", + "integrity": "sha512-9T1auFmbPZoxHz0enUFlUuKRy3it01R+hlggyVUMtnCTQRunsQYifnSGb8hET4Xo8yiC0o0r1paW3ud5+rbURg==", + "dev": true, + "requires": { + "@types/yargs-parser": "*" + } + }, "ansi-regex": { - "version": "4.1.0", - "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", - "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", "dev": true }, + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, "cliui": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", - "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/cliui/-/cliui-6.0.0.tgz", + "integrity": "sha512-t6wbgtoCXvAzst7QgXxJYqPt0usEfbgQdftEPbLL/cvv6HPE5VgvqCuAIDR0NgU52ds6rFwqrgakNLrHEjCbrQ==", "dev": true, "requires": { - "string-width": "^3.1.0", - "strip-ansi": "^5.2.0", - "wrap-ansi": "^5.1.0" + "string-width": "^4.2.0", + "strip-ansi": "^6.0.0", + "wrap-ansi": "^6.2.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "find-up": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", + "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", + "dev": true, + "requires": { + "locate-path": "^5.0.0", + "path-exists": "^4.0.0" } }, "fs-extra": { @@ -9689,6 +9941,42 @@ "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", "dev": true }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "locate-path": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", + "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", + "dev": true, + "requires": { + "p-locate": "^4.1.0" + } + }, + "p-locate": { + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", + "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", + "dev": true, + "requires": { + "p-limit": "^2.2.0" + } + }, + "path-exists": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", + "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", + "dev": true + }, "require-main-filename": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", @@ -9696,58 +9984,68 @@ "dev": true }, "string-width": { - "version": "3.1.0", - "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", - "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", "dev": true, "requires": { - "emoji-regex": "^7.0.1", - "is-fullwidth-code-point": "^2.0.0", - "strip-ansi": "^5.1.0" + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" } }, "strip-ansi": { - "version": "5.2.0", - "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", - "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", "dev": true, "requires": { - "ansi-regex": "^4.1.0" + "has-flag": "^4.0.0" } }, "wrap-ansi": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", - "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", + "version": "6.2.0", + "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-6.2.0.tgz", + "integrity": "sha512-r6lPcBGxZXlIcymEu7InxDMhdW0KDxpLgoFLcguasxCaJ/SOIZwINatK9KY/tf+ZrlywOKU0UDj3ATXUBfxJXA==", "dev": true, "requires": { - "ansi-styles": "^3.2.0", - "string-width": "^3.0.0", - "strip-ansi": "^5.0.0" + "ansi-styles": "^4.0.0", + "string-width": "^4.1.0", + "strip-ansi": "^6.0.0" } }, "yargs": { - "version": "13.3.0", - "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.0.tgz", - "integrity": "sha512-2eehun/8ALW8TLoIl7MVaRUrg+yCnenu8B4kBlRxj3GJGDKU1Og7sMXPNm1BYyM1DOJmTZ4YeN/Nwxv+8XJsUA==", + "version": "15.3.1", + "resolved": "https://registry.npmjs.org/yargs/-/yargs-15.3.1.tgz", + "integrity": "sha512-92O1HWEjw27sBfgmXiixJWT5hRBp2eobqXicLtPBIDBhYB+1HpwZlXmbW2luivBJHBzki+7VyCLRtAkScbTBQA==", "dev": true, "requires": { - "cliui": "^5.0.0", - "find-up": "^3.0.0", + "cliui": "^6.0.0", + "decamelize": "^1.2.0", + "find-up": "^4.1.0", "get-caller-file": "^2.0.1", "require-directory": "^2.1.1", "require-main-filename": "^2.0.0", "set-blocking": "^2.0.0", - "string-width": "^3.0.0", + "string-width": "^4.2.0", "which-module": "^2.0.0", "y18n": "^4.0.0", - "yargs-parser": "^13.1.1" + "yargs-parser": "^18.1.1" } }, "yargs-parser": { - "version": "13.1.1", - "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.1.tgz", - "integrity": "sha512-oVAVsHz6uFrg3XQheFII8ESO2ssAf9luWuAd6Wexsu4F3OtIW0o8IribPXYrD4WC24LWtPrJlGy87y5udK+dxQ==", + "version": "18.1.1", + "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.1.tgz", + "integrity": "sha512-KRHEsOM16IX7XuLnMOqImcPNbLVXMNHYAoFc3BKR8Ortl5gzDbtXvvEoGx9imk5E+X1VeNKNlcHr8B8vi+7ipA==", "dev": true, "requires": { "camelcase": "^5.0.0", @@ -9845,20 +10143,56 @@ } }, "electron-publish": { - "version": "21.2.0", - "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-21.2.0.tgz", - "integrity": "sha512-mWavuoWJe87iaeKd0I24dNWIaR+0yRzshjNVqGyK019H766fsPWl3caQJnVKFaEyrZRP397v4JZVG0e7s16AxA==", + "version": "22.4.1", + "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.4.1.tgz", + "integrity": "sha512-nwKNum3KXm+01rtWX2pc1jhazdzDy2zYnQx+zmXphZchjd6UOMX3ZN0xyZUCKugw5ZliflT6LkgbrcBXBtYD3A==", "dev": true, "requires": { + "@types/fs-extra": "^8.1.0", "bluebird-lst": "^1.0.9", - "builder-util": "~21.2.0", - "builder-util-runtime": "8.3.0", - "chalk": "^2.4.2", + "builder-util": "~22.4.1", + "builder-util-runtime": "8.6.2", + "chalk": "^3.0.0", "fs-extra": "^8.1.0", "lazy-val": "^1.0.4", "mime": "^2.4.4" }, "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -9869,6 +10203,21 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } } } }, @@ -10140,29 +10489,20 @@ "dev": true }, "electron-updater": { - "version": "4.2.0", - "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.0.tgz", - "integrity": "sha512-GuS3g7HDh17x/SaFjxjswlWUaKHczksYkV2Xc5CKj/bZH0YCvTSHtOmnBAdAmCk99u/71p3zP8f0jIqDfGcjww==", + "version": "4.2.5", + "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.5.tgz", + "integrity": "sha512-ir8SI3capF5pN4LTQY79bP7oqiBKjgtdDW378xVId5VcGUZ+Toei2j+fgx1mq3y4Qg19z4HqLxEZ9FqMD0T0RA==", "requires": { - "@types/semver": "^6.0.2", - "builder-util-runtime": "8.4.0", + "@types/semver": "^7.1.0", + "builder-util-runtime": "8.6.2", "fs-extra": "^8.1.0", "js-yaml": "^3.13.1", "lazy-val": "^1.0.4", "lodash.isequal": "^4.5.0", - "pako": "^1.0.10", - "semver": "^6.3.0" + "pako": "^1.0.11", + "semver": "^7.1.3" }, "dependencies": { - "builder-util-runtime": { - "version": "8.4.0", - "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.4.0.tgz", - "integrity": "sha512-CJB/eKfPf2vHrkmirF5eicVnbDCkMBbwd5tRYlTlgud16zFeqD7QmrVUAOEXdnsrcNkiLg9dbuUsQKtl/AwsYQ==", - "requires": { - "debug": "^4.1.1", - "sax": "^1.2.4" - } - }, "fs-extra": { "version": "8.1.0", "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", @@ -10173,10 +10513,15 @@ "universalify": "^0.1.0" } }, + "pako": { + "version": "1.0.11", + "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", + "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" + }, "semver": { - "version": "6.3.0", - "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", - "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==" + "version": "7.1.3", + "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", + "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" } } }, @@ -10588,6 +10933,12 @@ "es6-symbol": "^3.1.1" } }, + "escape-goat": { + "version": "2.1.1", + "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", + "integrity": "sha512-8/uIhbG12Csjy2JEW7D9pHbreaVaS/OpN3ycnyvElTdwM5n6GY6W6e2IPemfvGZeUMqZ9A/3GqIZMgKnBhAw/Q==", + "dev": true + }, "escape-html": { "version": "1.0.1", "resolved": "https://registry.npmjs.org/escape-html/-/escape-html-1.0.1.tgz", @@ -13520,12 +13871,12 @@ } }, "global-dirs": { - "version": "0.1.1", - "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-0.1.1.tgz", - "integrity": "sha1-sxnA3UYH81PzvpzKTHL8FIxJ9EU=", + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/global-dirs/-/global-dirs-2.0.1.tgz", + "integrity": "sha512-5HqUqdhkEovj2Of/ms3IeS/EekcO54ytHRLV4PEY2rhRwrHXLQjeVEES0Lhka0xwNDtGYn58wyC4s5+MHsOO6A==", "dev": true, "requires": { - "ini": "^1.3.4" + "ini": "^1.3.5" } }, "global-modules": { @@ -16116,13 +16467,13 @@ "integrity": "sha1-Vv9NtoOgeMYILrldrX3GLh0E+DU=" }, "is-installed-globally": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.1.0.tgz", - "integrity": "sha1-Df2Y9akRFxbdU13aZJL2e/PSWoA=", + "version": "0.3.1", + "resolved": "https://registry.npmjs.org/is-installed-globally/-/is-installed-globally-0.3.1.tgz", + "integrity": "sha512-oiEcGoQbGc+3/iijAijrK2qFpkNoNjsHOm/5V5iaeydyrS/hnwaRCEgH5cpW0P3T1lSjV5piB7S5b5lEugNLhg==", "dev": true, "requires": { - "global-dirs": "^0.1.0", - "is-path-inside": "^1.0.0" + "global-dirs": "^2.0.1", + "is-path-inside": "^3.0.1" } }, "is-negated-glob": { @@ -16132,9 +16483,9 @@ "dev": true }, "is-npm": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-3.0.0.tgz", - "integrity": "sha512-wsigDr1Kkschp2opC4G3yA6r9EgVA6NjRpWzIi9axXqeIaAATPRJc4uLujXe3Nd9uO8KoDyA4MD6aZSeXTADhA==", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/is-npm/-/is-npm-4.0.0.tgz", + "integrity": "sha512-96ECIfh9xtDDlPylNPXhzjsykHsMJZ18ASpaWzQyBr4YRTcVjUvzaHayDAES2oU/3KpljhHUjtSRNiDwi0F0ig==", "dev": true }, "is-number": { @@ -16188,13 +16539,10 @@ } }, "is-path-inside": { - "version": "1.0.1", - "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-1.0.1.tgz", - "integrity": "sha1-jvW33lBDej/cprToZe96pVy0gDY=", - "dev": true, - "requires": { - "path-is-inside": "^1.0.1" - } + "version": "3.0.2", + "resolved": "https://registry.npmjs.org/is-path-inside/-/is-path-inside-3.0.2.tgz", + "integrity": "sha512-/2UGPSgmtqwo1ktx8NDHjuPwZWmHhO+gj0f93EkhLB5RgW9RZevWYYlIkS6zePc6U2WpOdQYIwHe9YC4DWEBVg==", + "dev": true }, "is-plain-obj": { "version": "1.1.0", @@ -16321,9 +16669,9 @@ "integrity": "sha1-u5NdSFgsuhaMBoNJV6VKPgcSTxE=" }, "isbinaryfile": { - "version": "4.0.2", - "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.2.tgz", - "integrity": "sha512-C3FSxJdNrEr2F4z6uFtNzECDM5hXk+46fxaa+cwBe5/XrWSmzdG8DDgyjfX6/NRdBB21q2JXuRAzPCUs+fclnQ==", + "version": "4.0.5", + "resolved": "https://registry.npmjs.org/isbinaryfile/-/isbinaryfile-4.0.5.tgz", + "integrity": "sha512-Jvz0gpTh1AILHMCBUyqq7xv1ZOQrxTDwyp1/QUq1xFpOBvp4AH5uEobPePJht8KnBGqQIH7We6OR73mXsjG0cA==", "dev": true }, "isexe": { @@ -20577,7 +20925,8 @@ "pako": { "version": "1.0.10", "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", - "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==" + "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", + "dev": true }, "parallel-transform": { "version": "1.2.0", @@ -22195,23 +22544,23 @@ } }, "read-config-file": { - "version": "5.0.0", - "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.0.tgz", - "integrity": "sha512-jIKUu+C84bfnKxyJ5j30CxCqgXWYjZLXuVE/NYlMEpeni+dhESgAeZOZd0JZbg1xTkMmnCdxksDoarkOyfEsOg==", + "version": "5.0.2", + "resolved": "https://registry.npmjs.org/read-config-file/-/read-config-file-5.0.2.tgz", + "integrity": "sha512-tVt1lsiSjs+FtL/vtfCivqtKR1UNk3BB3uPJQvJqkgtAYDvZjo0xyXFYSVmzaTcO+Jdi5G7O2K2vDV+p1M/oug==", "dev": true, "requires": { - "dotenv": "^8.0.0", + "dotenv": "^8.2.0", "dotenv-expand": "^5.1.0", "fs-extra": "^8.1.0", "js-yaml": "^3.13.1", - "json5": "^2.1.0", + "json5": "^2.1.1", "lazy-val": "^1.0.4" }, "dependencies": { "dotenv": { - "version": "8.1.0", - "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.1.0.tgz", - "integrity": "sha512-GUE3gqcDCaMltj2++g6bRQ5rBJWtkWTmqmD0fo1RnnMuUqHNCt2oTPeDnS9n6fKYvlhn7AeBkb38lymBtWBQdA==", + "version": "8.2.0", + "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-8.2.0.tgz", + "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", "dev": true }, "fs-extra": { @@ -22224,6 +22573,21 @@ "jsonfile": "^4.0.0", "universalify": "^0.1.0" } + }, + "json5": { + "version": "2.1.2", + "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.2.tgz", + "integrity": "sha512-MoUOQ4WdiN3yxhm7NEVJSJrieAo5hNSLQ5sj05OTRHPL9HOBy8u4Bu88jsC1jvqAdN+E1bJmsUcZH+1HQxliqQ==", + "dev": true, + "requires": { + "minimist": "^1.2.5" + } + }, + "minimist": { + "version": "1.2.5", + "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", + "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", + "dev": true } } }, @@ -22606,13 +22970,12 @@ } }, "registry-auth-token": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.0.0.tgz", - "integrity": "sha512-lpQkHxd9UL6tb3k/aHAVfnVtn+Bcs9ob5InuFLLEDqSqeq+AljB8GZW9xY0x7F+xYwEcjKe07nyoxzEYz6yvkw==", + "version": "4.1.1", + "resolved": "https://registry.npmjs.org/registry-auth-token/-/registry-auth-token-4.1.1.tgz", + "integrity": "sha512-9bKS7nTl9+/A1s7tnPeGrUpRcVY+LUh7bfFgzpndALdPfXQBfQV77rQVtqgUV3ti4vc/Ik81Ex8UJDWDQ12zQA==", "dev": true, "requires": { - "rc": "^1.2.8", - "safe-buffer": "^5.0.1" + "rc": "^1.2.8" } }, "registry-url": { @@ -23457,12 +23820,20 @@ "dev": true }, "semver-diff": { - "version": "2.1.0", - "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-2.1.0.tgz", - "integrity": "sha1-S7uEN8jTfksM8aaP1ybsbWRdbTY=", + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/semver-diff/-/semver-diff-3.1.1.tgz", + "integrity": "sha512-GX0Ix/CJcHyB8c4ykpHGIAvLyOwOobtM/8d+TQkAd81/bEjgPHrfba41Vpesr7jX/t8Uh+R3EX9eAS5be+jQYg==", "dev": true, "requires": { - "semver": "^5.0.3" + "semver": "^6.3.0" + }, + "dependencies": { + "semver": { + "version": "6.3.0", + "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", + "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", + "dev": true + } } }, "semver-greatest-satisfied-range": { @@ -24332,9 +24703,9 @@ "dev": true }, "stat-mode": { - "version": "0.3.0", - "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.3.0.tgz", - "integrity": "sha512-QjMLR0A3WwFY2aZdV0okfFEJB5TRjkggXZjxP3A1RsWsNHNu3YPv8btmtc6iCFZ0Rul3FE93OYogvhOUClU+ng==", + "version": "1.0.0", + "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-1.0.0.tgz", + "integrity": "sha512-jH9EhtKIjuXZ2cWxmXS8ZP80XyC3iasQxMDV8jzhNJpfDb7VbQLVW4Wvsxz9QZvzV+G4YoSfBUVKDOyxLzi/sg==", "dev": true }, "static-extend": { @@ -24817,9 +25188,9 @@ "dev": true }, "temp-file": { - "version": "3.3.4", - "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.4.tgz", - "integrity": "sha512-qSZ5W5q54iyGnP8cNl49RE0jTJc5CrzNocux5APD5yIxcgonoMuMSbsZfaZy8rTGCYo0Xz6ySVv3adagZ8gffg==", + "version": "3.3.7", + "resolved": "https://registry.npmjs.org/temp-file/-/temp-file-3.3.7.tgz", + "integrity": "sha512-9tBJKt7GZAQt/Rg0QzVWA8Am8c1EFl+CAv04/aBVqlx5oyfQ508sFIABshQ0xbZu6mBrFLWIUXO/bbLYghW70g==", "dev": true, "requires": { "async-exit-hook": "^2.0.1", @@ -24872,47 +25243,10 @@ } }, "term-size": { - "version": "1.2.0", - "resolved": "https://registry.npmjs.org/term-size/-/term-size-1.2.0.tgz", - "integrity": "sha1-RYuDiH8oj8Vtb/+/rSYuJmOO+mk=", - "dev": true, - "requires": { - "execa": "^0.7.0" - }, - "dependencies": { - "cross-spawn": { - "version": "5.1.0", - "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-5.1.0.tgz", - "integrity": "sha1-6L0O/uWPz/b4+UUQoKVUu/ojVEk=", - "dev": true, - "requires": { - "lru-cache": "^4.0.1", - "shebang-command": "^1.2.0", - "which": "^1.2.9" - } - }, - "execa": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/execa/-/execa-0.7.0.tgz", - "integrity": "sha1-lEvs00zEHuMqY6n68nrVpl/Fl3c=", - "dev": true, - "requires": { - "cross-spawn": "^5.0.1", - "get-stream": "^3.0.0", - "is-stream": "^1.1.0", - "npm-run-path": "^2.0.0", - "p-finally": "^1.0.0", - "signal-exit": "^3.0.0", - "strip-eof": "^1.0.0" - } - }, - "get-stream": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-3.0.0.tgz", - "integrity": "sha1-jpQ9E1jcN1VQVOy+LtsFqhdO3hQ=", - "dev": true - } - } + "version": "2.2.0", + "resolved": "https://registry.npmjs.org/term-size/-/term-size-2.2.0.tgz", + "integrity": "sha512-a6sumDlzyHVJWb8+YofY4TW112G6p2FCPEAFk+59gIYHv3XHRhm9ltVQ9kli4hNWeQBwSpe8cRN25x0ROunMOw==", + "dev": true }, "terminal-paginator": { "version": "2.0.2", @@ -25743,6 +26077,15 @@ "integrity": "sha1-hnrHTjhkGHsdPUfZlqeOxciDB3c=", "dev": true }, + "typedarray-to-buffer": { + "version": "3.1.5", + "resolved": "https://registry.npmjs.org/typedarray-to-buffer/-/typedarray-to-buffer-3.1.5.tgz", + "integrity": "sha512-zdu8XMNEDepKKR+XYOXAVPtWui0ly0NtohUscw+UmaHiAWT8hrV1rr//H6V+0DvJ3OQ19S979M0laLfX8rm82Q==", + "dev": true, + "requires": { + "is-typedarray": "^1.0.0" + } + }, "typescript": { "version": "3.7.2", "resolved": "https://registry.npmjs.org/typescript/-/typescript-3.7.2.tgz", @@ -25890,12 +26233,12 @@ } }, "unique-string": { - "version": "1.0.0", - "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-1.0.0.tgz", - "integrity": "sha1-nhBXzKhRq7kzmPizOuGHuZyuwRo=", + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/unique-string/-/unique-string-2.0.0.tgz", + "integrity": "sha512-uNaeirEPvpZWSgzwsPGtU2zVSTrn/8L5q/IexZmH0eH6SA73CmAA5U4GwORTxQAZs95TAXLNqeLoPPNO5gZfWg==", "dev": true, "requires": { - "crypto-random-string": "^1.0.0" + "crypto-random-string": "^2.0.0" } }, "universal-user-agent": { @@ -25990,23 +26333,85 @@ } }, "update-notifier": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-3.0.1.tgz", - "integrity": "sha512-grrmrB6Zb8DUiyDIaeRTBCkgISYUgETNe7NglEbVsrLWXeESnlCSP50WfRSj/GmzMPl6Uchj24S/p80nP/ZQrQ==", + "version": "4.1.0", + "resolved": "https://registry.npmjs.org/update-notifier/-/update-notifier-4.1.0.tgz", + "integrity": "sha512-w3doE1qtI0/ZmgeoDoARmI5fjDoT93IfKgEGqm26dGUOh8oNpaSTsGNdYRN/SjOuo10jcJGwkEL3mroKzktkew==", "dev": true, "requires": { - "boxen": "^3.0.0", - "chalk": "^2.0.1", - "configstore": "^4.0.0", + "boxen": "^4.2.0", + "chalk": "^3.0.0", + "configstore": "^5.0.1", "has-yarn": "^2.1.0", "import-lazy": "^2.1.0", "is-ci": "^2.0.0", - "is-installed-globally": "^0.1.0", - "is-npm": "^3.0.0", + "is-installed-globally": "^0.3.1", + "is-npm": "^4.0.0", "is-yarn-global": "^0.3.0", "latest-version": "^5.0.0", - "semver-diff": "^2.0.0", - "xdg-basedir": "^3.0.0" + "pupa": "^2.0.1", + "semver-diff": "^3.1.1", + "xdg-basedir": "^4.0.0" + }, + "dependencies": { + "ansi-styles": { + "version": "4.2.1", + "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", + "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", + "dev": true, + "requires": { + "@types/color-name": "^1.1.1", + "color-convert": "^2.0.1" + } + }, + "chalk": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/chalk/-/chalk-3.0.0.tgz", + "integrity": "sha512-4D3B6Wf41KOYRFdszmDqMCGq5VV/uMAB273JILmO+3jAlh8X4qDtdtgCR3fxtbLEMzSx22QdhnDcJvu2u1fVwg==", + "dev": true, + "requires": { + "ansi-styles": "^4.1.0", + "supports-color": "^7.1.0" + } + }, + "color-convert": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", + "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", + "dev": true, + "requires": { + "color-name": "~1.1.4" + } + }, + "color-name": { + "version": "1.1.4", + "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", + "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", + "dev": true + }, + "has-flag": { + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", + "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", + "dev": true + }, + "pupa": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/pupa/-/pupa-2.0.1.tgz", + "integrity": "sha512-hEJH0s8PXLY/cdXh66tNEQGndDrIKNqNC5xmrysZy3i5C3oEoLna7YAOad+7u125+zH1HNXUmGEkrhb3c2VriA==", + "dev": true, + "requires": { + "escape-goat": "^2.0.0" + } + }, + "supports-color": { + "version": "7.1.0", + "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", + "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", + "dev": true, + "requires": { + "has-flag": "^4.0.0" + } + } } }, "upper-case": { @@ -26936,12 +27341,52 @@ } }, "widest-line": { - "version": "2.0.1", - "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-2.0.1.tgz", - "integrity": "sha512-Ba5m9/Fa4Xt9eb2ELXt77JxVDV8w7qQrH0zS/TWSJdLyAwQjWoOzpzj5lwVftDz6n/EOu3tNACS84v509qwnJA==", + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/widest-line/-/widest-line-3.1.0.tgz", + "integrity": "sha512-NsmoXalsWVDMGupxZ5R08ka9flZjjiLvHVAWYOKtiKM8ujtZWr9cRffak+uSE48+Ob8ObalXpwyeUiyDD6QFgg==", "dev": true, "requires": { - "string-width": "^2.1.1" + "string-width": "^4.0.0" + }, + "dependencies": { + "ansi-regex": { + "version": "5.0.0", + "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-5.0.0.tgz", + "integrity": "sha512-bY6fj56OUQ0hU1KjFNDQuJFezqKdrAyFdIevADiqrWHwSlbmBNMHp5ak2f40Pm8JTFyM2mqxkG6ngkHO11f/lg==", + "dev": true + }, + "emoji-regex": { + "version": "8.0.0", + "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", + "integrity": "sha512-MSjYzcWNOA0ewAHpz0MxpYFvwg6yjy1NG3xteoqz644VCo/RPgnr1/GGt+ic3iJTzQ8Eu3TdM14SawnVUmGE6A==", + "dev": true + }, + "is-fullwidth-code-point": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-3.0.0.tgz", + "integrity": "sha512-zymm5+u+sCsSWyD9qNaejV3DFvhCKclKdizYaJUuHA83RLjb7nSuGnddCHGv0hk+KY7BMAlsWeK4Ueg6EV6XQg==", + "dev": true + }, + "string-width": { + "version": "4.2.0", + "resolved": "https://registry.npmjs.org/string-width/-/string-width-4.2.0.tgz", + "integrity": "sha512-zUz5JD+tgqtuDjMhwIg5uFVV3dtqZ9yQJlZVfq4I01/K5Paj5UHj7VyrQOJvzawSVlKpObApbfD0Ed6yJc+1eg==", + "dev": true, + "requires": { + "emoji-regex": "^8.0.0", + "is-fullwidth-code-point": "^3.0.0", + "strip-ansi": "^6.0.0" + } + }, + "strip-ansi": { + "version": "6.0.0", + "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-6.0.0.tgz", + "integrity": "sha512-AuvKTrTfQNYNIctbR1K/YGTR1756GycPsg7b9bdV9Duqur4gv6aKqHXah67Z8ImS7WEz5QVcOtlfW2rZEugt6w==", + "dev": true, + "requires": { + "ansi-regex": "^5.0.0" + } + } } }, "win-ca": { @@ -27258,9 +27703,9 @@ "dev": true }, "xdg-basedir": { - "version": "3.0.0", - "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-3.0.0.tgz", - "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", + "version": "4.0.0", + "resolved": "https://registry.npmjs.org/xdg-basedir/-/xdg-basedir-4.0.0.tgz", + "integrity": "sha512-PSNhEJDejZYV7h50BohL09Er9VaIefr2LMAf3OEmpCkjOi34eYyQYAXUTjEQtZJTKcF0E2UKTh+osDLsgNim9Q==", "dev": true }, "xml-name-validator": { diff --git a/package.json b/package.json index 9f4f4b63e..53b4f742f 100644 --- a/package.json +++ b/package.json @@ -76,7 +76,7 @@ "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git", "electron-react-titlebar": "0.8.2", "electron-spellchecker": "2.2.1", - "electron-updater": "4.2.0", + "electron-updater": "4.2.5", "electron-window-state": "5.0.3", "fs-extra": "7.0.1", "gulp-csso": "3.0.1", @@ -154,8 +154,8 @@ "cross-env": "^5.0.5", "cz-conventional-changelog": "2.1.0", "dotenv": "^4.0.0", - "electron": "8.0.0", - "electron-builder": "21.2.0", + "electron": "8.1.1", + "electron-builder": "22.4.1", "electron-notarize": "0.2.1", "electron-rebuild": "1.10.0", "eslint": "5.10.0", -- cgit v1.2.3-70-g09d2 From dd3627641d3387d9f8c23c1f54e899a198abfe2f Mon Sep 17 00:00:00 2001 From: Bennett Date: Fri, 20 Mar 2020 08:50:06 +0100 Subject: Add GitHub to sponsor methods --- .github/FUNDING.yml | 1 + 1 file changed, 1 insertion(+) diff --git a/.github/FUNDING.yml b/.github/FUNDING.yml index 5200e7101..879864ac3 100644 --- a/.github/FUNDING.yml +++ b/.github/FUNDING.yml @@ -1 +1,2 @@ +github: getferdi open_collective: getferdi -- cgit v1.2.3-70-g09d2 From d810272384e1816ef7883e2d9a5b7d4c94b3bb3a Mon Sep 17 00:00:00 2001 From: Ferdi Bot <56048320+FerdiBot@users.noreply.github.com> Date: Mon, 23 Mar 2020 10:00:42 +0100 Subject: New Crowdin translations (#464) * New translations en-US.json (Ukrainian) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (French) * New translations en-US.json (Spanish) --- src/i18n/locales/es.json | 20 ++++++++++---------- src/i18n/locales/fr.json | 2 +- src/i18n/locales/it.json | 4 ++-- src/i18n/locales/pt-BR.json | 10 +++++----- src/i18n/locales/uk.json | 24 ++++++++++++------------ 5 files changed, 30 insertions(+), 30 deletions(-) diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 654b1300f..76a917290 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -28,8 +28,8 @@ "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", "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.", "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", - "feature.publishDebugInfo.privacy": "Privacy policy", - "feature.publishDebugInfo.publish": "Accept and publish", + "feature.publishDebugInfo.privacy": "Política de Privacidad", + "feature.publishDebugInfo.publish": "Aceptar y publicar", "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", "feature.publishDebugInfo.terms": "Términos de servicio", "feature.publishDebugInfo.title": "Publish debug information", @@ -85,9 +85,9 @@ "locked.invalidCredentials": "Contraseña incorrecta", "locked.password.label": "Contraseña", "locked.submit.label": "Desbloquear", - "locked.touchId": "Unlock with Touch ID", - "locked.touchIdPrompt": "unlock via Touch ID", - "locked.unlockWithPassword": "Unlock with Password", + "locked.touchId": "Desbloquear con Touch ID", + "locked.touchIdPrompt": "desbloquear con Touch ID", + "locked.unlockWithPassword": "Desbloquear con contraseña", "login.changeServer": "Cambiar servidor", "login.customServerQuestion": "Using a custom Ferdi server?", "login.customServerSuggestion": "Try importing your Franz account", @@ -116,7 +116,7 @@ "menu.edit.cut": "Cortar", "menu.edit.delete": "Borrar", "menu.edit.emojiSymbols": "Emoji y Símbolos", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "Buscar en la página", "menu.edit.paste": "Pegar", "menu.edit.pasteAndMatchStyle": "Pegar con el mismo estilo", "menu.edit.redo": "Rehacer", @@ -274,7 +274,7 @@ "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano", "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi al iniciar", "settings.app.form.beta": "Incluir versiones beta", - "settings.app.form.darkMode": "Enable dark mode", + "settings.app.form.darkMode": "Activar tema oscuro", "settings.app.form.enableGPUAcceleration": "Habilitar aceleración de GPU", "settings.app.form.enableLock": "Activar bloqueo por contraseña", "settings.app.form.enableSpellchecking": "Activar corrección ortográfica", @@ -283,7 +283,7 @@ "settings.app.form.hibernate": "Habilitar hibernación del servicio", "settings.app.form.hibernationStrategy": "Estrategia de hibernación", "settings.app.form.iconSize": "Service icon size", - "settings.app.form.inactivityLock": "Lock after inactivity", + "settings.app.form.inactivityLock": "Bloquear tras inactividad", "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas", "settings.app.form.language": "Idioma", "settings.app.form.lockPassword": "Contraseña", @@ -296,7 +296,7 @@ "settings.app.form.scheduledDNDEnabled": "Activar programación \"No molestar\"", "settings.app.form.scheduledDNDEnd": "A", "settings.app.form.scheduledDNDStart": "De", - "settings.app.form.sentry": "Send telemetry data", + "settings.app.form.sentry": "Enviar datos de telemetría", "settings.app.form.server": "Servidor", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados", @@ -345,7 +345,7 @@ "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", - "settings.recipes.customService.openDevDocs": "Developer Documentation", + "settings.recipes.customService.openDevDocs": "Documentación para desarrolladores", "settings.recipes.customService.openFolder": "Open folder", "settings.recipes.headline": "Servicios disponibles", "settings.recipes.missingService": "¿Echas de menos algún servicio?", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index f8d945ec0..665295e5a 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -116,7 +116,7 @@ "menu.edit.cut": "Couper", "menu.edit.delete": "Supprimer", "menu.edit.emojiSymbols": "Emoji & Symboles", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "Rechercher dans la page", "menu.edit.paste": "Coller", "menu.edit.pasteAndMatchStyle": "Coller et fusionner le style", "menu.edit.redo": "Rétablir", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index e473de0cf..35bd4cd4e 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -274,7 +274,7 @@ "settings.app.form.autoLaunchInBackground": "Apri in background", "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio", "settings.app.form.beta": "Includi versioni beta", - "settings.app.form.darkMode": "Enable dark mode", + "settings.app.form.darkMode": "Attiva modalità scura", "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU", "settings.app.form.enableLock": "Enable Password Lock", "settings.app.form.enableSpellchecking": "Attiva controllo ortografico", @@ -495,7 +495,7 @@ "webControls.back": "Back", "webControls.forward": "Forward", "webControls.goHome": "Home", - "webControls.openInBrowser": "Open in Browser", + "webControls.openInBrowser": "Apri nel Browser", "webControls.reload": "Ricarica", "welcome.loginButton": "Accedi al tuo account", "welcome.signupButton": "Crea un account gratuito", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index f56eaac57..7693baa1a 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -77,7 +77,7 @@ "invite.email.label": "Endereço de e-mail", "invite.headline.friends": "Convide 3 amigos ou colegas", "invite.name.label": "Nome", - "invite.skip.label": "Pretendo fazer isto mais tarde", + "invite.skip.label": "Desejo fazer isto mais tarde", "invite.submit.label": "Enviar convites", "invite.successInfo": "Convites enviados com sucesso", "locked.headline": "Bloqueado", @@ -89,11 +89,11 @@ "locked.touchIdPrompt": "desbloquear via Touch ID", "locked.unlockWithPassword": "Desbloquear com Senha", "login.changeServer": "Alterar servidor", - "login.customServerQuestion": "Using a custom Ferdi server?", - "login.customServerSuggestion": "Try importing your Franz account", + "login.customServerQuestion": "Usando uma conta do Franz para entrar?", + "login.customServerSuggestion": "Tente importar sua conta Franz no Ferdi", "login.email.label": "Endereço de e-mail", "login.headline": "Iniciar Sessão", - "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos", + "login.invalidCredentials": "O email ou a palavra-passe incorretos", "login.link.password": "Repor a minha palavra-passe", "login.link.signup": "Criar uma conta gratuita", "login.password.label": "Senha", @@ -181,7 +181,7 @@ "pricing.features.appDelays": "Sem Telas de Espera", "pricing.features.customWebsites": "Adicionar Websites Personalizados", "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", - "pricing.features.onPremise": "On-premise & other Hosted Services", + "pricing.features.onPremise": "On-Premise & Outros serviços hospedados", "pricing.features.recipes": "Escolha entre mais de 70 serviços", "pricing.features.serviceProxies": "Serviços de proxy", "pricing.features.spellchecker": "Suporte ao corretor ortográfico", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 2cfbdb501..50c1aa80e 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -1,7 +1,7 @@ { "app.errorHandler.action": "Перезавантажити", "app.errorHandler.headline": "Щось пішло не так", - "feature.announcements.changelog.headline": "Changes in Ferdi {version}", + "feature.announcements.changelog.headline": "Зміни у Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Будь ласка, придбайте ліцензію Ferdi Supporter аби пропустити очікування", "feature.delayApp.text": "Ferdi відновить роботу за {seconds} секунд", @@ -77,13 +77,13 @@ "invite.email.label": "Email адреса", "invite.headline.friends": "Запросіть 3-х ваших друзів або колег", "invite.name.label": "Ім'я", - "invite.skip.label": "Я хочу зробити це пізніше", - "invite.submit.label": "Відправити запрошення", + "invite.skip.label": "Я зроблю це пізніше", + "invite.submit.label": "Надіслати запрошення", "invite.successInfo": "Запрошення успішно надіслані", "locked.headline": "Locked", "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", "locked.invalidCredentials": "Password invalid", - "locked.password.label": "Password", + "locked.password.label": "Пароль", "locked.submit.label": "Unlock", "locked.touchId": "Unlock with Touch ID", "locked.touchIdPrompt": "unlock via Touch ID", @@ -96,7 +96,7 @@ "login.invalidCredentials": "Email або пароль некоректні", "login.link.password": "Скинути пароль", "login.link.signup": "Створити безплатний акаунт", - "login.password.label": "Password", + "login.password.label": "Пароль", "login.serverLogout": "Ваша сесія закінчилась, будь ласка, увійдіть знову.", "login.submit.label": "Увійти", "login.tokenExpired": "Ваша сесія закінчилась, будь ласка, увійдіть знову.", @@ -159,14 +159,14 @@ "menu.view.toggleServiceDevTools": "Переключити інструменти розробника сервісу", "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", "menu.view.zoomIn": "Збільшити масштаб", - "menu.view.zoomOut": "Зменьшити масштаб", + "menu.view.zoomOut": "Зменшити масштаб", "menu.window": "Вікно", "menu.window.close": "Закрити", "menu.window.minimize": "Згорнути", "menu.workspaces": "Workspaces", "menu.workspaces.addNewWorkspace": "Add New Workspace...", "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", - "menu.workspaces.defaultWorkspace": "Всі сервіси", + "menu.workspaces.defaultWorkspace": "Усі сервіси", "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", "password.email.label": "Email адреса", "password.headline": "Скинути пароль", @@ -286,7 +286,7 @@ "settings.app.form.inactivityLock": "Lock after inactivity", "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", "settings.app.form.language": "Мова", - "settings.app.form.lockPassword": "Password", + "settings.app.form.lockPassword": "Пароль", "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", "settings.app.form.noUpdates": "Disable updates", @@ -315,7 +315,7 @@ "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", "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.", - "settings.app.lockedPassword": "Password", + "settings.app.lockedPassword": "Пароль", "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", "settings.app.restartRequired": "Зміни потребують перезапуску", "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.", @@ -339,7 +339,7 @@ "settings.navigation.team": "Manage Team", "settings.navigation.yourServices": "Ваші сервіси", "settings.navigation.yourWorkspaces": "Your workspaces", - "settings.recipes.all": "Всі сервіси", + "settings.recipes.all": "Усі сервіси", "settings.recipes.custom": "Custom Services", "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", @@ -463,7 +463,7 @@ "signup.legal.privacy": "Заява про конфіденційність", "signup.legal.terms": "Умови використання", "signup.link.login": "У вас вже є обліковий запис, увійти?", - "signup.password.label": "Password", + "signup.password.label": "Пароль", "signup.submit.label": "Створити акаунт", "subscription.bestValue": "Best value", "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", @@ -500,7 +500,7 @@ "welcome.loginButton": "Увійдіть до свого акаунту", "welcome.signupButton": "Створити безплатний акаунт", "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", - "workspaceDrawer.allServices": "Всі сервіси", + "workspaceDrawer.allServices": "Усі сервіси", "workspaceDrawer.headline": "Workspaces", "workspaceDrawer.item.contextMenuEdit": "edit", "workspaceDrawer.item.noServicesAddedYet": "No services added yet", -- cgit v1.2.3-70-g09d2 From b410ff3c69604f88dfe24f40fabf2b59982ed938 Mon Sep 17 00:00:00 2001 From: Bennett Date: Mon, 23 Mar 2020 10:24:49 +0100 Subject: Improve feature list (#488) * Improve feature list * Add general features section * Improve table of contents * Rephrasing * Unify feature list to use "-s" form * Fix missing rephrasing --- README.md | 122 ++++++++++++++++++++++++++++++++++++++++++-------------------- 1 file changed, 84 insertions(+), 38 deletions(-) diff --git a/README.md b/README.md index 78d2e8813..f9480bb4d 100644 --- a/README.md +++ b/README.md @@ -30,18 +30,14 @@ - [Ferdi](#ferdi) - [Table of contents](#table-of-contents) - [What is Ferdi?](#what-is-ferdi) + - [Features](#features) - [What does Ferdi look like?](#what-does-ferdi-look-like) - [Download Ferdi](#download-ferdi) - [Or use homebrew (macOS only)](#or-use-homebrew-macos-only) - [Or use AUR (Arch Linux)](#or-use-aur-arch-linux) - - [Ferdi-specific Features](#ferdi-specific-features) + - [What makes Ferdi different from Franz?](#what-makes-ferdi-different-from-franz) - [Development](#development) - [Install OS dependencies](#install-os-dependencies) - - [Node.js](#nodejs) - - [Git](#git) - - [Debian/Ubuntu](#debianubuntu) - - [Fedora](#fedora) - - [Windows](#windows) - [Clone repository with submodule](#clone-repository-with-submodule) - [Install dependencies](#install-dependencies) - [Fix native modules to match current electron node version](#fix-native-modules-to-match-current-electron-node-version) @@ -57,6 +53,21 @@ Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additonal features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com). +## Features +- [x] Ferdi puts all your messaging services into one place +- [x] Native support for 100+ services +- [x] Workspaces to keep your personal and work life seperated +- [x] Support for multiple accounts on any service +- [x] Dark Mode support for all of your services +- [x] Optional cloud sync to keep your services synchronized between devices +- [x] Better control over when you get which notifications +- [x] Cross-platform so you can view your services on all your computers +- [x] Full proxy support to work in every network environment +- [x] Ferdi speaks your language: Support for 20+ languages + +...and best of all: +- [x] Its completely free! There are no restrictions on features, no paywalls + ### What does Ferdi look like?
@@ -92,44 +103,79 @@ Ferdi has three seperate AUR packages you can use: If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`. -## Ferdi-specific Features +## What makes Ferdi different from Franz? +### Removes unproductive paywalls and other other interruptions - [x] Removes the counter-productive fullscreen app delay inviting users to upgrade - [x] Removes pages begging you to donate after registration -- [x] Remove "Franz is better together" popup -- [x] Remove bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd)) +- [x] Removes "Franz is better together" popup - [x] Makes all users Premium by default ([#15](https://github.com/getferdi/ferdi/issues/15)) -- [x] Using the Ferdi API instead of Franz's servers -- [x] Upgrading to Electron 7 -- [x] Add several new services -- [x] [Add option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) -- [x] Add option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5)) -- [x] Add "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879)) -- [x] Add Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430)) -- [x] Add an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37)) -- [x] Add Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71)) -- [x] Add adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173)) -- [x] Add an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833)) -- [x] Add "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher)) -- [x] Add "Service Hibernation" that will automatically unload services when they are unused -- [x] Add "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours)) -- [x] Add CTRL+← and CTRL+→ shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39)) -- [x] Add option to show a browser-like navigation bar on all services -- [x] Add option to change accent color -- [x] Add local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server -- [x] Add portable version for Windows -- [x] Add Process Manager to find services using a lot of resources -- [x] Add "npm run prepare-code" command for development to lint and beautify code -- [x] Add button to open darkmode.css for a service + +### Adds features to increase your productivity +- [x] Adds 30+ new services +- [x] Adds "Find in Page" feature ([#67](https://github.com/getferdi/ferdi/issues/67)) +- [x] Adds an option to keep individual workspaces always loaded ([#37](https://github.com/getferdi/ferdi/issues/37)) +- [x] Adds "Quick Switch" feature to help you navigate a long list of services (similar to Rambox's [Quick Switcher](https://rambox.pro/#feature-details/quick_switcher)) +- [x] Adds "Service Hibernation" that will automatically unload services when they are unused to keep your computer running fast - [x] [Add `user.css` and `user.js` that allows users to inject custom code into services](https://github.com/getferdi/ferdi/wiki/Using-user.css-and-user.js) ([#83](https://github.com/getferdi/ferdi/issues/83)) -- [x] Allow SVGs for service custom icon -- [x] Switch to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size -- [x] Improve "About Ferdi" screen to better display versions -- [x] Minifying build files to improve app size -- [x] [Makes it possible to edit the "Franz Todos" service](https://github.com/getferdi/ferdi/wiki/Custom-Todo) (e.g. Todoist via https://todoist.com/app) -- [x] Makes RocketChat self-hosted generally available ([#6](https://github.com/getferdi/ferdi/issues/6)) +- [x] Adds Process Manager to find services using a lot of resources +- [x] Adds CTRL+← and CTRL+→ shortcuts and menu options to go back and forward in the service browsing history([#39](https://github.com/getferdi/ferdi/issues/39)) +- [x] Adds "Scheduled Do-not-Disturb" feature in which you won't get notifications (similar to Rambox's [Work Hours](https://rambox.pro/#feature-details/work_hours)) +- [x] Allows you to [use any Todo service inside "Franz Todo" panel](https://github.com/getferdi/ferdi/wiki/Custom-Todo) (e.g. Todoist via https://todoist.com/app) instead of being limited to using Franz Todo + +### Adds features to improve your privacy +- [x] [Adds option to change server to a custom](https://github.com/getferdi/ferdi/wiki/Custom-Server) [ferdi-server](https://github.com/getferdi/server) +- [x] Adds option to use Ferdi without an account ([#5](https://github.com/getferdi/ferdi/issues/5)) +- [x] Uses the Ferdi API instead of Franz's servers +- [x] Adds "Private Notification"-Mode, that hides message content from notifications ([franz#879](https://github.com/meetfranz/franz/issues/879)) +- [x] Adds Password Lock feature to keep your messages protected ([#41](https://github.com/getferdi/ferdi/issues/41), [franz#810](https://github.com/meetfranz/franz/issues/810), [franz#950](https://github.com/meetfranz/franz/issues/950), [franz#1430](https://github.com/meetfranz/franz/issues/1430)) +- [x] Adds support for unlocking with Touch ID ([#367](https://github.com/getferdi/ferdi/issues/367)) +- [x] Adds inactivity lock that automatically locks Ferdi after a specified amount of time ([#179](https://github.com/getferdi/ferdi/issues/179)) +- [x] Adds local [recipe repository](https://github.com/getferdi/recipes) that removes the need of downloading recipes from a remote server + +### Adds features to improve your experience using Ferdi +- [x] Adds Universal Dark Mode via the [DarkReader extension](https://github.com/darkreader/darkreader) ([#71](https://github.com/getferdi/ferdi/issues/71)) +- [x] Adds adaptable Dark Mode that will respect the system's Dark Mode setting ([#173](https://github.com/getferdi/ferdi/issues/173)) +- [x] Adds ability to change the services icons size and sidebar width ([#153](https://github.com/getferdi/ferdi/issues/153)) +- [x] Adds an option to auto-hide the menubar ([#7](https://github.com/getferdi/ferdi/issues/7), [franz#833](https://github.com/meetfranz/franz/issues/833)) +- [x] Enhances system tray icon behaviour ([#307](https://github.com/getferdi/ferdi/issues/307)) +- [x] Adds option to show a browser-like navigation bar on all services +- [x] Adds option to change accent color +- [x] Reflects your currently opened service name to the window title to improve support for Password Managers ([#213](https://github.com/getferdi/ferdi/issues/213)) +- [x] Allows using SVGs for service custom icon +- [x] Adds button to open darkmode.css for a service +- [x] Improves "About Ferdi" screen to better display versions +- [x] Adds option to start Ferdi in system tray ([#331](https://github.com/getferdi/ferdi/issues/331)) +- [x] Fixes and enhances context menu (#357 #413 #452 #354 #227) +- [x] Adds better support for macOS dark mode +- [x] Adds option to disable reload of services after resuming Ferdi ([#442](https://github.com/getferdi/ferdi/issues/442)) - [x] Comes with a custom branding proper to Ferdi -- [x] UI improvements +- [x] Adds better seperation in settings +- [x] Adds various other UI improvements +- [x] Improves documentation of development so more developers can help making Ferdi even better + +### Removed bugs +- [x] Fixes bug that would incorrectly display unread messages count on some services (more info in [7566ccd](https://github.com/getferdi/ferdi/commit/7566ccd)) +- [x] Fixes zooming +- [x] Fixes login problems in Google services +- [x] Fixes missing Slack services custom icons ([#290](https://github.com/getferdi/ferdi/issues/290)) +- [x] Fixes bug that marked valid domains as invalid ([#276](https://github.com/getferdi/ferdi/issues/276)) +- [x] Fixes microphone/camera access on some versions of macOS ([#193](https://github.com/getferdi/ferdi/issues/193)) + +### Adds new platforms +- [x] Adds portable version for Windows so you can use Ferdi without even installing it +- [x] Adds Arch Linux AUR packages +- [x] Adds Ferdi as a Flatpak on Flathub ([#323](https://github.com/getferdi/ferdi/issues/323)) + +### Adds internal changes +- [x] Upgrades to Electron 8 +- [x] Switches to [`electron-spellchecker`](https://github.com/electron-userland/electron-spellchecker) to improve application size +- [x] Minifies build files to improve app size +- [x] Adds "npm run prepare-code" command for development to lint and beautify code +- [x] Fixes incorrect body closing tag ([#330](https://github.com/getferdi/ferdi/issues/330)) +- [x] Uses CrowdIn to improve i18n + +> Thanks to all our [contributors](#contributors-) who helped realize all these amazing features! 💖 ## Development -- cgit v1.2.3-70-g09d2 From d269249aebb32465dccf66c030a5993f18e4fbfd Mon Sep 17 00:00:00 2001 From: Bennett Date: Mon, 23 Mar 2020 20:17:29 +0100 Subject: Support new recipe repository hierarchy (#492) --- gulpfile.babel.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gulpfile.babel.js b/gulpfile.babel.js index dda198c18..bf3b85083 100644 --- a/gulpfile.babel.js +++ b/gulpfile.babel.js @@ -41,7 +41,7 @@ const paths = { tmp: '.tmp', package: `out/${config.version}`, recipes: { - src: 'recipes/*.tar.gz', + src: 'recipes/archives/*.tar.gz', dest: 'build/recipes/', }, recipeInfo: { -- cgit v1.2.3-70-g09d2 From 1cc9c70e4774f4da8b1ad927d6cb7f74c0ce730a Mon Sep 17 00:00:00 2001 From: Bennett Date: Wed, 25 Mar 2020 10:30:08 +0100 Subject: Improve user onboarding (#493) Until now, new users have started on the Ferdi dashboard and not on the Welcome screen like Franz does it. This change was made, as users needed to be ablet to change their server before logging in. This commit will change this onboarding process to bring users to the welcome screen on first login and it adds a new "Change Server" screen during authentication that allows the user to change the server without going to the full settings screen. This way, the onboarding experience for new users is a lot easier to go though while also improving the experience for experienced users who want to change their server as they only get the option they are looking for and not the whole settings list. --- recipes | 2 +- src/app.js | 2 + src/components/auth/ChangeServer.js | 80 ++++++++++++++++++++++ src/components/auth/Login.js | 4 +- src/components/auth/Signup.js | 7 +- src/components/auth/Welcome.js | 4 +- src/containers/auth/ChangeServerScreen.js | 50 ++++++++++++++ src/containers/auth/LoginScreen.js | 1 + src/containers/auth/SignupScreen.js | 1 + src/containers/auth/WelcomeScreen.js | 1 + src/i18n/locales/defaultMessages.json | 44 ++++++++++++ src/i18n/locales/en-US.json | 3 + .../messages/src/components/auth/ChangeServer.json | 41 +++++++++++ src/internal-server | 2 +- src/stores/UserStore.js | 8 ++- 15 files changed, 243 insertions(+), 7 deletions(-) create mode 100644 src/components/auth/ChangeServer.js create mode 100644 src/containers/auth/ChangeServerScreen.js create mode 100644 src/i18n/messages/src/components/auth/ChangeServer.json diff --git a/recipes b/recipes index fc3e248af..4bd9247f4 160000 --- a/recipes +++ b/recipes @@ -1 +1 @@ -Subproject commit fc3e248afa57b0cd13f96b54a7546ad09ceeef98 +Subproject commit 4bd9247f4b3efc92808552a851be10ad6546cc94 diff --git a/src/app.js b/src/app.js index d8fa37014..0e24420c3 100644 --- a/src/app.js +++ b/src/app.js @@ -35,6 +35,7 @@ import WelcomeScreen from './containers/auth/WelcomeScreen'; import LoginScreen from './containers/auth/LoginScreen'; import LockedScreen from './containers/auth/LockedScreen'; import PasswordScreen from './containers/auth/PasswordScreen'; +import ChangeServerScreen from './containers/auth/ChangeServerScreen'; import SignupScreen from './containers/auth/SignupScreen'; import ImportScreen from './containers/auth/ImportScreen'; import PricingScreen from './containers/auth/PricingScreen'; @@ -97,6 +98,7 @@ window.addEventListener('load', () => { + diff --git a/src/components/auth/ChangeServer.js b/src/components/auth/ChangeServer.js new file mode 100644 index 000000000..433334b6c --- /dev/null +++ b/src/components/auth/ChangeServer.js @@ -0,0 +1,80 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import { defineMessages, intlShape } from 'react-intl'; + +import Form from '../../lib/Form'; +import Input from '../ui/Input'; +import Button from '../ui/Button'; + +const messages = defineMessages({ + headline: { + id: 'changeserver.headline', + defaultMessage: '!!!Change server', + }, + label: { + id: 'changeserver.label', + defaultMessage: '!!!Server', + }, + submit: { + id: 'changeserver.submit', + defaultMessage: '!!!Submit', + }, +}); + +export default @observer class ChangeServer extends Component { + static propTypes = { + onSubmit: PropTypes.func.isRequired, + server: PropTypes.string.isRequired, + }; + + static contextTypes = { + intl: intlShape, + }; + + form = new Form({ + fields: { + server: { + label: this.context.intl.formatMessage(messages.label), + value: '', + }, + }, + }, this.context.intl); + + componentDidMount() { + this.form.$('server').value = this.props.server; + } + + submit(e) { + e.preventDefault(); + this.form.submit({ + onSuccess: (form) => { + this.props.onSubmit(form.values()); + }, + onError: () => { }, + }); + } + + render() { + const { form } = this; + const { intl } = this.context; + + return ( +
+
this.submit(e)}> +

{intl.formatMessage(messages.headline)}

+ + +
+ ); + } +} diff --git a/src/components/auth/Login.js b/src/components/auth/Login.js index e25121de0..f33d134c8 100644 --- a/src/components/auth/Login.js +++ b/src/components/auth/Login.js @@ -78,6 +78,7 @@ export default @inject('actions') @observer class Login extends Component { isServerLogout: PropTypes.bool.isRequired, signupRoute: PropTypes.string.isRequired, passwordRoute: PropTypes.string.isRequired, + changeServerRoute: PropTypes.string.isRequired, error: globalErrorPropType.isRequired, actions: PropTypes.object.isRequired, }; @@ -127,6 +128,7 @@ export default @inject('actions') @observer class Login extends Component { isServerLogout, signupRoute, passwordRoute, + changeServerRoute, error, } = this.props; @@ -194,7 +196,7 @@ export default @inject('actions') @observer class Login extends Component { )}
- {intl.formatMessage(messages.changeServer)} + {intl.formatMessage(messages.changeServer)} {intl.formatMessage(messages.serverless)} {intl.formatMessage(messages.signupLink)} {intl.formatMessage(messages.passwordLink)} diff --git a/src/components/auth/Signup.js b/src/components/auth/Signup.js index a166155a7..6a7db5cde 100644 --- a/src/components/auth/Signup.js +++ b/src/components/auth/Signup.js @@ -79,6 +79,7 @@ export default @inject('actions') @observer class Signup extends Component { onSubmit: PropTypes.func.isRequired, isSubmitting: PropTypes.bool.isRequired, loginRoute: PropTypes.string.isRequired, + changeServerRoute: PropTypes.string.isRequired, error: globalErrorPropType.isRequired, actions: PropTypes.object.isRequired, }; @@ -130,7 +131,9 @@ export default @inject('actions') @observer class Signup extends Component { render() { const { form } = this; const { intl } = this.context; - const { isSubmitting, loginRoute, error } = this.props; + const { + isSubmitting, loginRoute, error, changeServerRoute, + } = this.props; const termsBase = window.ferdi.stores.settings.all.app.server !== 'https://api.franzinfra.com' ? window.ferdi.stores.settings.all.app.server : 'https://meetfranz.com'; @@ -198,7 +201,7 @@ export default @inject('actions') @observer class Signup extends Component {

- {intl.formatMessage(messages.changeServer)} + {intl.formatMessage(messages.changeServer)} {intl.formatMessage(messages.serverless)} {intl.formatMessage(messages.loginLink)}
diff --git a/src/components/auth/Welcome.js b/src/components/auth/Welcome.js index 1453c1d7c..6e742e0c1 100644 --- a/src/components/auth/Welcome.js +++ b/src/components/auth/Welcome.js @@ -26,6 +26,7 @@ export default @inject('actions') @observer class Login extends Component { static propTypes = { loginRoute: PropTypes.string.isRequired, signupRoute: PropTypes.string.isRequired, + changeServerRoute: PropTypes.string.isRequired, recipes: MobxPropTypes.arrayOrObservableArray.isRequired, actions: PropTypes.object.isRequired, }; @@ -43,6 +44,7 @@ export default @inject('actions') @observer class Login extends Component { const { loginRoute, signupRoute, + changeServerRoute, recipes, } = this.props; @@ -71,7 +73,7 @@ export default @inject('actions') @observer class Login extends Component {
- + + ); + } +} + +ChangeServerScreen.wrappedComponent.propTypes = { + actions: PropTypes.shape({ + settings: PropTypes.shape({ + update: PropTypes.func.isRequired, + }).isRequired, + }).isRequired, + stores: PropTypes.shape({ + settings: PropTypes.instanceOf(SettingsStore).isRequired, + router: PropTypes.instanceOf(RouterStore).isRequired, + }).isRequired, +}; diff --git a/src/containers/auth/LoginScreen.js b/src/containers/auth/LoginScreen.js index e5ee10785..d17820ad6 100644 --- a/src/containers/auth/LoginScreen.js +++ b/src/containers/auth/LoginScreen.js @@ -21,6 +21,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends isServerLogout={stores.user.logoutReason === stores.user.logoutReasonTypes.SERVER} signupRoute={stores.user.signupRoute} passwordRoute={stores.user.passwordRoute} + changeServerRoute={stores.user.changeServerRoute} error={error} /> ); diff --git a/src/containers/auth/SignupScreen.js b/src/containers/auth/SignupScreen.js index f93498be2..803fe1cd9 100644 --- a/src/containers/auth/SignupScreen.js +++ b/src/containers/auth/SignupScreen.js @@ -36,6 +36,7 @@ export default @inject('stores', 'actions') @observer class SignupScreen extends onSubmit={values => this.onSignup(values)} isSubmitting={stores.user.signupRequest.isExecuting} loginRoute={stores.user.loginRoute} + changeServerRoute={stores.user.changeServerRoute} error={error} /> ); diff --git a/src/containers/auth/WelcomeScreen.js b/src/containers/auth/WelcomeScreen.js index 75182345a..6f2d0eee6 100644 --- a/src/containers/auth/WelcomeScreen.js +++ b/src/containers/auth/WelcomeScreen.js @@ -14,6 +14,7 @@ export default @inject('stores', 'actions') @observer class LoginScreen extends ); diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index be0cd008b..f825d773b 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -43,6 +43,50 @@ ], "path": "src/components/AppUpdateInfoBar.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Change server", + "end": { + "column": 3, + "line": 14 + }, + "file": "src/components/auth/ChangeServer.js", + "id": "changeserver.headline", + "start": { + "column": 12, + "line": 11 + } + }, + { + "defaultMessage": "!!!Server", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/auth/ChangeServer.js", + "id": "changeserver.label", + "start": { + "column": 9, + "line": 15 + } + }, + { + "defaultMessage": "!!!Submit", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/auth/ChangeServer.js", + "id": "changeserver.submit", + "start": { + "column": 10, + "line": 19 + } + } + ], + "path": "src/components/auth/ChangeServer.json" + }, { "descriptors": [ { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 4c14c8f90..d9613dc43 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", diff --git a/src/i18n/messages/src/components/auth/ChangeServer.json b/src/i18n/messages/src/components/auth/ChangeServer.json new file mode 100644 index 000000000..3a122d50c --- /dev/null +++ b/src/i18n/messages/src/components/auth/ChangeServer.json @@ -0,0 +1,41 @@ +[ + { + "id": "changeserver.headline", + "defaultMessage": "!!!Change server", + "file": "src/components/auth/ChangeServer.js", + "start": { + "line": 11, + "column": 12 + }, + "end": { + "line": 14, + "column": 3 + } + }, + { + "id": "changeserver.label", + "defaultMessage": "!!!Server", + "file": "src/components/auth/ChangeServer.js", + "start": { + "line": 15, + "column": 9 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "changeserver.submit", + "defaultMessage": "!!!Submit", + "file": "src/components/auth/ChangeServer.js", + "start": { + "line": 19, + "column": 10 + }, + "end": { + "line": 22, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/internal-server b/src/internal-server index 3ad266e13..38fc9925d 160000 --- a/src/internal-server +++ b/src/internal-server @@ -1 +1 @@ -Subproject commit 3ad266e1371075612ce866332472595bfd89a5d6 +Subproject commit 38fc9925d88971cee26cc08343da2f0e153c053a diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index ec0b0cf8d..3a53d150d 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js @@ -34,6 +34,8 @@ export default class UserStore extends Store { PASSWORD_ROUTE = `${this.BASE_ROUTE}/password`; + CHANGE_SERVER_ROUTE = `${this.BASE_ROUTE}/server`; + @observable loginRequest = new Request(this.api.user, 'login'); @observable signupRequest = new Request(this.api.user, 'signup'); @@ -97,7 +99,7 @@ export default class UserStore extends Store { // Reactions this.registerReactions([ - // this._requireAuthenticatedUser, + this._requireAuthenticatedUser, this._getUserData.bind(this), this._resetTrialActivationState.bind(this), ]); @@ -137,6 +139,10 @@ export default class UserStore extends Store { return this.PASSWORD_ROUTE; } + get changeServerRoute() { + return this.CHANGE_SERVER_ROUTE; + } + // Data @computed get isLoggedIn() { return Boolean(localStorage.getItem('authToken')); -- cgit v1.2.3-70-g09d2 From f00f32f91e69566dc38a1e3db892bb14c6c0dc5a Mon Sep 17 00:00:00 2001 From: vantezzen Date: Wed, 25 Mar 2020 17:13:47 +0100 Subject: Improve information about premium As seen in #496, the current way Ferdi displays information about the Premium status may be irritating to new users. This commit will: - Hide all premium sections if we are not using the Franz server - Hide teams section if we are not using the Franz server - Update the description on the Teams page to reflect the use of Teams in Ferdi - Fix accessing the Team Management page to go to meetfranz.com instead of getferdi.com --- .../settings/account/AccountDashboard.js | 41 ++++++++++++---------- .../settings/navigation/SettingsNavigation.js | 25 +++++++------ src/components/settings/team/TeamDashboard.js | 6 ++-- src/containers/settings/TeamScreen.js | 3 +- src/i18n/apply-branding.js | 4 +++ src/i18n/locales/defaultMessages.json | 6 ++-- src/i18n/locales/en-US.json | 8 ++--- .../components/settings/team/TeamDashboard.json | 6 ++-- 8 files changed, 54 insertions(+), 45 deletions(-) diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 7d6bad883..809bfda6e 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -154,6 +154,7 @@ class AccountDashboard extends Component { } const isUsingWithoutAccount = server === LOCAL_SERVER; + const isUsingFranzServer = server === 'https://api.franzinfra.com'; return (
@@ -243,7 +244,7 @@ class AccountDashboard extends Component { )}
- {user.isPremium && user.isSubscriptionOwner && ( + {user.isPremium && user.isSubscriptionOwner && isUsingFranzServer && (

{intl.formatMessage(messages.yourLicense)}

@@ -322,25 +323,27 @@ class AccountDashboard extends Component { )} -
-
-

{intl.formatMessage(messages.headlineDangerZone)}

- {!isDeleteAccountSuccessful && ( -
-

{intl.formatMessage(messages.deleteInfo)}

-
- )} - {isDeleteAccountSuccessful && ( -

{intl.formatMessage(messages.deleteEmailSent)}

- )} + {isUsingFranzServer && ( +
+
+

{intl.formatMessage(messages.headlineDangerZone)}

+ {!isDeleteAccountSuccessful && ( +
+

{intl.formatMessage(messages.deleteInfo)}

+
+ )} + {isDeleteAccountSuccessful && ( +

{intl.formatMessage(messages.deleteEmailSent)}

+ )} +
-
+ )} )} diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index eb3249fa0..6b03f05be 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js @@ -105,6 +105,7 @@ export default @inject('stores', 'actions') @observer class SettingsNavigation e const { intl } = this.context; const isLoggedIn = Boolean(localStorage.getItem('authToken')); const isUsingWithoutAccount = stores.settings.app.server === LOCAL_SERVER; + const isUsingFranzServer = stores.settings.app.server === 'https://api.franzinfra.com'; return (
@@ -154,17 +155,19 @@ export default @inject('stores', 'actions') @observer class SettingsNavigation e > {intl.formatMessage(messages.account)} - - {intl.formatMessage(messages.team)} - {!user.data.isPremium && ( - - )} - + {isUsingFranzServer && ( + + {intl.formatMessage(messages.team)} + {!user.data.isPremium && ( + + )} + + )} Date: Wed, 25 Mar 2020 18:15:51 +0100 Subject: Add retry commands to flaky build steps --- .travis.yml | 6 +++--- appveyor.yml | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.travis.yml b/.travis.yml index 81d250c3c..29bdd5ba8 100644 --- a/.travis.yml +++ b/.travis.yml @@ -23,10 +23,10 @@ before_install: install: - echo do nothing before_script: - - npx lerna bootstrap - - npm install node-sass -g + - travis_retry npx lerna bootstrap + - travis_retry npm install node-sass -g script: - - travis_wait 100 npm run build + - travis_retry travis_wait 100 npm run build cache: npm branches: diff --git a/appveyor.yml b/appveyor.yml index 2499b324b..ecf12899c 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -16,7 +16,7 @@ before_build: - cmd: set NODE_ENV=production build_script: - - npm run build + - appveyor-retry npm run build branches: except: -- cgit v1.2.3-70-g09d2 From aac09ccbacb05b9d50c0f1a74227e06c80bfe94b Mon Sep 17 00:00:00 2001 From: vantezzen Date: Sat, 28 Mar 2020 09:37:21 +0100 Subject: Hide user lastname on Ferdi servers as it is not stored --- src/components/settings/account/AccountDashboard.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 809bfda6e..5c3dc21d0 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js @@ -209,7 +209,7 @@ class AccountDashboard extends Component {

- {`${user.firstname} ${user.lastname}`} + {`${user.firstname} ${isUsingFranzServer ? user.lastname : ''}`} {user.isPremium && ( <> {' '} -- cgit v1.2.3-70-g09d2 From 88d2146add65a2c239c0d3c7cfce720d1dafab7f Mon Sep 17 00:00:00 2001 From: Marouane Rassili Date: Sun, 29 Mar 2020 12:20:44 +0100 Subject: Remove server setting from settings screen --- .../settings/settings/EditSettingsForm.js | 64 ---------- .../settings/settings/EditSettingsForm.json | 142 +++++++++------------ 2 files changed, 58 insertions(+), 148 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 9564d837b..5478ce8bf 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -18,15 +18,6 @@ const { systemPreferences, } = remote; -function escapeHtml(unsafe) { - return unsafe - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); -} - const messages = defineMessages({ headline: { id: 'settings.app.headline', @@ -48,14 +39,6 @@ const messages = defineMessages({ id: 'settings.app.inactivityLockInfo', defaultMessage: '!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable', }, - serverInfo: { - id: 'settings.app.serverInfo', - defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.', - }, - serverMoneyInfo: { - id: 'settings.app.serverMoneyInfo', - 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.', - }, todoServerInfo: { id: 'settings.app.todoServerInfo', defaultMessage: '!!!This server will be used for the "Franz Todo" feature. (default: https://app.franztodos.com)', @@ -174,7 +157,6 @@ export default @observer class EditSettingsForm extends Component { isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, isTodosEnabled: PropTypes.bool.isRequired, isWorkspaceEnabled: PropTypes.bool.isRequired, - server: PropTypes.string.isRequired, noUpdates: PropTypes.bool.isRequired, hibernationEnabled: PropTypes.bool.isRequired, isDarkmodeEnabled: PropTypes.bool.isRequired, @@ -214,7 +196,6 @@ export default @observer class EditSettingsForm extends Component { isSpellcheckerIncludedInCurrentPlan, isTodosEnabled, isWorkspaceEnabled, - server, noUpdates, hibernationEnabled, isDarkmodeEnabled, @@ -232,8 +213,6 @@ export default @observer class EditSettingsForm extends Component { updateButtonLabelMessage = messages.buttonSearchForUpdate; } - const isLoggedIn = Boolean(localStorage.getItem('authToken')); - const { lockingFeatureEnabled, scheduledDNDEnabled, @@ -287,53 +266,10 @@ export default @observer class EditSettingsForm extends Component {
- this.submit(e)} - field={form.$('server')} - autoFocus - /> - {isLoggedIn && ( -

- { intl.formatMessage(messages.serverInfo) } -

- )} - {server === 'https://api.franzinfra.com' && ( -

- ') - .replace('[Link 2]', '') - .replace(/\[\/Link]/g, ''), - }} - style={{ - whiteSpace: 'pre-wrap', - }} - /> -

- )} - -
- {isWorkspaceEnabled && ( )} -
{isTodosEnabled && ( diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json index 994bb4fa5..cdc6ded7e 100644 --- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json +++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Settings", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 31, + "line": 22, "column": 12 }, "end": { - "line": 34, + "line": 25, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!General", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 35, + "line": 26, "column": 19 }, "end": { - "line": 38, + "line": 29, "column": 3 } }, @@ -30,11 +30,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 39, + "line": 30, "column": 14 }, "end": { - "line": 42, + "line": 33, "column": 3 } }, @@ -43,11 +43,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 43, + "line": 34, "column": 17 }, "end": { - "line": 46, + "line": 37, "column": 3 } }, @@ -56,37 +56,11 @@ "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 47, + "line": 38, "column": 22 }, "end": { - "line": 50, - "column": 3 - } - }, - { - "id": "settings.app.serverInfo", - "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 51, - "column": 14 - }, - "end": { - "line": 54, - "column": 3 - } - }, - { - "id": "settings.app.serverMoneyInfo", - "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.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 55, - "column": 19 - }, - "end": { - "line": 58, + "line": 41, "column": 3 } }, @@ -95,11 +69,11 @@ "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 59, + "line": 42, "column": 18 }, "end": { - "line": 62, + "line": 45, "column": 3 } }, @@ -108,11 +82,11 @@ "defaultMessage": "!!!Password", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 63, + "line": 46, "column": 18 }, "end": { - "line": 66, + "line": 49, "column": 3 } }, @@ -121,11 +95,11 @@ "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 67, + "line": 50, "column": 22 }, "end": { - "line": 70, + "line": 53, "column": 3 } }, @@ -134,11 +108,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 71, + "line": 54, "column": 12 }, "end": { - "line": 74, + "line": 57, "column": 3 } }, @@ -147,11 +121,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 75, + "line": 58, "column": 24 }, "end": { - "line": 78, + "line": 61, "column": 3 } }, @@ -160,11 +134,11 @@ "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 79, + "line": 62, "column": 20 }, "end": { - "line": 82, + "line": 65, "column": 3 } }, @@ -173,11 +147,11 @@ "defaultMessage": "!!!Language", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 83, + "line": 66, "column": 20 }, "end": { - "line": 86, + "line": 69, "column": 3 } }, @@ -186,11 +160,11 @@ "defaultMessage": "!!!Updates", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 87, + "line": 70, "column": 19 }, "end": { - "line": 90, + "line": 73, "column": 3 } }, @@ -199,11 +173,11 @@ "defaultMessage": "!!!Appearance", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 91, + "line": 74, "column": 22 }, "end": { - "line": 94, + "line": 77, "column": 3 } }, @@ -212,11 +186,11 @@ "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 95, + "line": 78, "column": 25 }, "end": { - "line": 98, + "line": 81, "column": 3 } }, @@ -225,11 +199,11 @@ "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 99, + "line": 82, "column": 19 }, "end": { - "line": 102, + "line": 85, "column": 3 } }, @@ -238,11 +212,11 @@ "defaultMessage": "!!!Advanced", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 103, + "line": 86, "column": 20 }, "end": { - "line": 106, + "line": 89, "column": 3 } }, @@ -251,11 +225,11 @@ "defaultMessage": "!!!Help us to translate Ferdi into your language.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 107, + "line": 90, "column": 19 }, "end": { - "line": 110, + "line": 93, "column": 3 } }, @@ -264,11 +238,11 @@ "defaultMessage": "!!!Cache", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 111, + "line": 94, "column": 20 }, "end": { - "line": 114, + "line": 97, "column": 3 } }, @@ -277,11 +251,11 @@ "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 115, + "line": 98, "column": 13 }, "end": { - "line": 118, + "line": 101, "column": 3 } }, @@ -290,11 +264,11 @@ "defaultMessage": "!!!Clear cache", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 119, + "line": 102, "column": 23 }, "end": { - "line": 122, + "line": 105, "column": 3 } }, @@ -303,11 +277,11 @@ "defaultMessage": "!!!Check for updates", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 123, + "line": 106, "column": 25 }, "end": { - "line": 126, + "line": 109, "column": 3 } }, @@ -316,11 +290,11 @@ "defaultMessage": "!!!Restart & install update", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 127, + "line": 110, "column": 23 }, "end": { - "line": 130, + "line": 113, "column": 3 } }, @@ -329,11 +303,11 @@ "defaultMessage": "!!!Is searching for update", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 131, + "line": 114, "column": 25 }, "end": { - "line": 134, + "line": 117, "column": 3 } }, @@ -342,11 +316,11 @@ "defaultMessage": "!!!Update available, downloading...", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 135, + "line": 118, "column": 25 }, "end": { - "line": 138, + "line": 121, "column": 3 } }, @@ -355,11 +329,11 @@ "defaultMessage": "!!!You are using the latest version of Ferdi", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 139, + "line": 122, "column": 24 }, "end": { - "line": 142, + "line": 125, "column": 3 } }, @@ -368,11 +342,11 @@ "defaultMessage": "!!!Current version:", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 143, + "line": 126, "column": 18 }, "end": { - "line": 146, + "line": 129, "column": 3 } }, @@ -381,11 +355,11 @@ "defaultMessage": "!!!Changes require restart", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 147, + "line": 130, "column": 29 }, "end": { - "line": 150, + "line": 133, "column": 3 } }, @@ -394,11 +368,11 @@ "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 151, + "line": 134, "column": 22 }, "end": { - "line": 154, + "line": 137, "column": 3 } } -- cgit v1.2.3-70-g09d2 From 5893fd4fe7a97448d4edd38761aa10f17014d04c Mon Sep 17 00:00:00 2001 From: Marouane Rassili Date: Sun, 29 Mar 2020 12:20:44 +0100 Subject: Remove server setting from settings screen --- .../settings/settings/EditSettingsForm.js | 64 ---------- src/containers/settings/EditSettingsScreen.js | 1 - src/i18n/locales/defaultMessages.json | 142 +++++++++------------ src/i18n/locales/en-US.json | 2 - .../settings/settings/EditSettingsForm.json | 142 +++++++++------------ 5 files changed, 116 insertions(+), 235 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 9564d837b..5478ce8bf 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -18,15 +18,6 @@ const { systemPreferences, } = remote; -function escapeHtml(unsafe) { - return unsafe - .replace(/&/g, '&') - .replace(//g, '>') - .replace(/"/g, '"') - .replace(/'/g, '''); -} - const messages = defineMessages({ headline: { id: 'settings.app.headline', @@ -48,14 +39,6 @@ const messages = defineMessages({ id: 'settings.app.inactivityLockInfo', defaultMessage: '!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable', }, - serverInfo: { - id: 'settings.app.serverInfo', - defaultMessage: '!!!We advice you to logout after changing your server as your settings might not be saved otherwise.', - }, - serverMoneyInfo: { - id: 'settings.app.serverMoneyInfo', - 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.', - }, todoServerInfo: { id: 'settings.app.todoServerInfo', defaultMessage: '!!!This server will be used for the "Franz Todo" feature. (default: https://app.franztodos.com)', @@ -174,7 +157,6 @@ export default @observer class EditSettingsForm extends Component { isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, isTodosEnabled: PropTypes.bool.isRequired, isWorkspaceEnabled: PropTypes.bool.isRequired, - server: PropTypes.string.isRequired, noUpdates: PropTypes.bool.isRequired, hibernationEnabled: PropTypes.bool.isRequired, isDarkmodeEnabled: PropTypes.bool.isRequired, @@ -214,7 +196,6 @@ export default @observer class EditSettingsForm extends Component { isSpellcheckerIncludedInCurrentPlan, isTodosEnabled, isWorkspaceEnabled, - server, noUpdates, hibernationEnabled, isDarkmodeEnabled, @@ -232,8 +213,6 @@ export default @observer class EditSettingsForm extends Component { updateButtonLabelMessage = messages.buttonSearchForUpdate; } - const isLoggedIn = Boolean(localStorage.getItem('authToken')); - const { lockingFeatureEnabled, scheduledDNDEnabled, @@ -287,53 +266,10 @@ export default @observer class EditSettingsForm extends Component {
- this.submit(e)} - field={form.$('server')} - autoFocus - /> - {isLoggedIn && ( -

- { intl.formatMessage(messages.serverInfo) } -

- )} - {server === 'https://api.franzinfra.com' && ( -

- ') - .replace('[Link 2]', '') - .replace(/\[\/Link]/g, ''), - }} - style={{ - whiteSpace: 'pre-wrap', - }} - /> -

- )} - -
- {isWorkspaceEnabled && ( )} -
{isTodosEnabled && ( diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 5221b0694..ffefdda77 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -541,7 +541,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e isSpellcheckerIncludedInCurrentPlan={spellcheckerConfig.isIncludedInCurrentPlan} isTodosEnabled={todos.isFeatureActive} isWorkspaceEnabled={workspaces.isFeatureActive} - server={this.props.stores.settings.app.server} lockingFeatureEnabled={lockingFeatureEnabled} noUpdates={this.props.stores.settings.app.noUpdates} hibernationEnabled={this.props.stores.settings.app.hibernate} diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 274bebc3d..47bda3b1e 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -2756,403 +2756,377 @@ "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 34 + "line": 25 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headline", "start": { "column": 12, - "line": 31 + "line": 22 } }, { "defaultMessage": "!!!General", "end": { "column": 3, - "line": 38 + "line": 29 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headlineGeneral", "start": { "column": 19, - "line": 35 + "line": 26 } }, { "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.", "end": { "column": 3, - "line": 42 + "line": 33 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.sentryInfo", "start": { "column": 14, - "line": 39 + "line": 30 } }, { "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.", "end": { "column": 3, - "line": 46 + "line": 37 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.hibernateInfo", "start": { "column": 17, - "line": 43 + "line": 34 } }, { "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", "end": { "column": 3, - "line": 50 + "line": 41 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.inactivityLockInfo", "start": { "column": 22, - "line": 47 - } - }, - { - "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.", - "end": { - "column": 3, - "line": 54 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.serverInfo", - "start": { - "column": 14, - "line": 51 - } - }, - { - "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.", - "end": { - "column": 3, - "line": 58 - }, - "file": "src/components/settings/settings/EditSettingsForm.js", - "id": "settings.app.serverMoneyInfo", - "start": { - "column": 19, - "line": 55 + "line": 38 } }, { "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", "end": { "column": 3, - "line": 62 + "line": 45 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.todoServerInfo", "start": { "column": 18, - "line": 59 + "line": 42 } }, { "defaultMessage": "!!!Password", "end": { "column": 3, - "line": 66 + "line": 49 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.lockedPassword", "start": { "column": 18, - "line": 63 + "line": 46 } }, { "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", "end": { "column": 3, - "line": 70 + "line": 53 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.lockedPasswordInfo", "start": { "column": 22, - "line": 67 + "line": 50 } }, { "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.", "end": { "column": 3, - "line": 74 + "line": 57 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.lockInfo", "start": { "column": 12, - "line": 71 + "line": 54 } }, { "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.", "end": { "column": 3, - "line": 78 + "line": 61 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.scheduledDNDTimeInfo", "start": { "column": 24, - "line": 75 + "line": 58 } }, { "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", "end": { "column": 3, - "line": 82 + "line": 65 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.scheduledDNDInfo", "start": { "column": 20, - "line": 79 + "line": 62 } }, { "defaultMessage": "!!!Language", "end": { "column": 3, - "line": 86 + "line": 69 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headlineLanguage", "start": { "column": 20, - "line": 83 + "line": 66 } }, { "defaultMessage": "!!!Updates", "end": { "column": 3, - "line": 90 + "line": 73 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headlineUpdates", "start": { "column": 19, - "line": 87 + "line": 70 } }, { "defaultMessage": "!!!Appearance", "end": { "column": 3, - "line": 94 + "line": 77 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headlineAppearance", "start": { "column": 22, - "line": 91 + "line": 74 } }, { "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "end": { "column": 3, - "line": 98 + "line": 81 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.universalDarkModeInfo", "start": { "column": 25, - "line": 95 + "line": 78 } }, { "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", "end": { "column": 3, - "line": 102 + "line": 85 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.accentColorInfo", "start": { "column": 19, - "line": 99 + "line": 82 } }, { "defaultMessage": "!!!Advanced", "end": { "column": 3, - "line": 106 + "line": 89 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.headlineAdvanced", "start": { "column": 20, - "line": 103 + "line": 86 } }, { "defaultMessage": "!!!Help us to translate Ferdi into your language.", "end": { "column": 3, - "line": 110 + "line": 93 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.translationHelp", "start": { "column": 19, - "line": 107 + "line": 90 } }, { "defaultMessage": "!!!Cache", "end": { "column": 3, - "line": 114 + "line": 97 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.subheadlineCache", "start": { "column": 20, - "line": 111 + "line": 94 } }, { "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", "end": { "column": 3, - "line": 118 + "line": 101 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.cacheInfo", "start": { "column": 13, - "line": 115 + "line": 98 } }, { "defaultMessage": "!!!Clear cache", "end": { "column": 3, - "line": 122 + "line": 105 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.buttonClearAllCache", "start": { "column": 23, - "line": 119 + "line": 102 } }, { "defaultMessage": "!!!Check for updates", "end": { "column": 3, - "line": 126 + "line": 109 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.buttonSearchForUpdate", "start": { "column": 25, - "line": 123 + "line": 106 } }, { "defaultMessage": "!!!Restart & install update", "end": { "column": 3, - "line": 130 + "line": 113 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.buttonInstallUpdate", "start": { "column": 23, - "line": 127 + "line": 110 } }, { "defaultMessage": "!!!Is searching for update", "end": { "column": 3, - "line": 134 + "line": 117 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.updateStatusSearching", "start": { "column": 25, - "line": 131 + "line": 114 } }, { "defaultMessage": "!!!Update available, downloading...", "end": { "column": 3, - "line": 138 + "line": 121 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.updateStatusAvailable", "start": { "column": 25, - "line": 135 + "line": 118 } }, { "defaultMessage": "!!!You are using the latest version of Ferdi", "end": { "column": 3, - "line": 142 + "line": 125 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.updateStatusUpToDate", "start": { "column": 24, - "line": 139 + "line": 122 } }, { "defaultMessage": "!!!Current version:", "end": { "column": 3, - "line": 146 + "line": 129 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.currentVersion", "start": { "column": 18, - "line": 143 + "line": 126 } }, { "defaultMessage": "!!!Changes require restart", "end": { "column": 3, - "line": 150 + "line": 133 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.restartRequired", "start": { "column": 29, - "line": 147 + "line": 130 } }, { "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", "end": { "column": 3, - "line": 154 + "line": 137 }, "file": "src/components/settings/settings/EditSettingsForm.js", "id": "settings.app.languageDisclaimer", "start": { "column": 22, - "line": 151 + "line": 134 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 504018891..20b785fed 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -324,8 +324,6 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json index 994bb4fa5..cdc6ded7e 100644 --- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json +++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Settings", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 31, + "line": 22, "column": 12 }, "end": { - "line": 34, + "line": 25, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!General", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 35, + "line": 26, "column": 19 }, "end": { - "line": 38, + "line": 29, "column": 3 } }, @@ -30,11 +30,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 39, + "line": 30, "column": 14 }, "end": { - "line": 42, + "line": 33, "column": 3 } }, @@ -43,11 +43,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 43, + "line": 34, "column": 17 }, "end": { - "line": 46, + "line": 37, "column": 3 } }, @@ -56,37 +56,11 @@ "defaultMessage": "!!!Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 47, + "line": 38, "column": 22 }, "end": { - "line": 50, - "column": 3 - } - }, - { - "id": "settings.app.serverInfo", - "defaultMessage": "!!!We advice you to logout after changing your server as your settings might not be saved otherwise.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 51, - "column": 14 - }, - "end": { - "line": 54, - "column": 3 - } - }, - { - "id": "settings.app.serverMoneyInfo", - "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.", - "file": "src/components/settings/settings/EditSettingsForm.js", - "start": { - "line": 55, - "column": 19 - }, - "end": { - "line": 58, + "line": 41, "column": 3 } }, @@ -95,11 +69,11 @@ "defaultMessage": "!!!This server will be used for the \"Franz Todo\" feature. (default: https://app.franztodos.com)", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 59, + "line": 42, "column": 18 }, "end": { - "line": 62, + "line": 45, "column": 3 } }, @@ -108,11 +82,11 @@ "defaultMessage": "!!!Password", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 63, + "line": 46, "column": 18 }, "end": { - "line": 66, + "line": 49, "column": 3 } }, @@ -121,11 +95,11 @@ "defaultMessage": "!!!Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 67, + "line": 50, "column": 22 }, "end": { - "line": 70, + "line": 53, "column": 3 } }, @@ -134,11 +108,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 71, + "line": 54, "column": 12 }, "end": { - "line": 74, + "line": 57, "column": 3 } }, @@ -147,11 +121,11 @@ "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.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 75, + "line": 58, "column": 24 }, "end": { - "line": 78, + "line": 61, "column": 3 } }, @@ -160,11 +134,11 @@ "defaultMessage": "!!!Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 79, + "line": 62, "column": 20 }, "end": { - "line": 82, + "line": 65, "column": 3 } }, @@ -173,11 +147,11 @@ "defaultMessage": "!!!Language", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 83, + "line": 66, "column": 20 }, "end": { - "line": 86, + "line": 69, "column": 3 } }, @@ -186,11 +160,11 @@ "defaultMessage": "!!!Updates", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 87, + "line": 70, "column": 19 }, "end": { - "line": 90, + "line": 73, "column": 3 } }, @@ -199,11 +173,11 @@ "defaultMessage": "!!!Appearance", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 91, + "line": 74, "column": 22 }, "end": { - "line": 94, + "line": 77, "column": 3 } }, @@ -212,11 +186,11 @@ "defaultMessage": "!!!Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 95, + "line": 78, "column": 25 }, "end": { - "line": 98, + "line": 81, "column": 3 } }, @@ -225,11 +199,11 @@ "defaultMessage": "!!!Write your accent color in a CSS-compatible format. (Default: #7367f0)", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 99, + "line": 82, "column": 19 }, "end": { - "line": 102, + "line": 85, "column": 3 } }, @@ -238,11 +212,11 @@ "defaultMessage": "!!!Advanced", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 103, + "line": 86, "column": 20 }, "end": { - "line": 106, + "line": 89, "column": 3 } }, @@ -251,11 +225,11 @@ "defaultMessage": "!!!Help us to translate Ferdi into your language.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 107, + "line": 90, "column": 19 }, "end": { - "line": 110, + "line": 93, "column": 3 } }, @@ -264,11 +238,11 @@ "defaultMessage": "!!!Cache", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 111, + "line": 94, "column": 20 }, "end": { - "line": 114, + "line": 97, "column": 3 } }, @@ -277,11 +251,11 @@ "defaultMessage": "!!!Ferdi cache is currently using {size} of disk space.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 115, + "line": 98, "column": 13 }, "end": { - "line": 118, + "line": 101, "column": 3 } }, @@ -290,11 +264,11 @@ "defaultMessage": "!!!Clear cache", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 119, + "line": 102, "column": 23 }, "end": { - "line": 122, + "line": 105, "column": 3 } }, @@ -303,11 +277,11 @@ "defaultMessage": "!!!Check for updates", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 123, + "line": 106, "column": 25 }, "end": { - "line": 126, + "line": 109, "column": 3 } }, @@ -316,11 +290,11 @@ "defaultMessage": "!!!Restart & install update", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 127, + "line": 110, "column": 23 }, "end": { - "line": 130, + "line": 113, "column": 3 } }, @@ -329,11 +303,11 @@ "defaultMessage": "!!!Is searching for update", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 131, + "line": 114, "column": 25 }, "end": { - "line": 134, + "line": 117, "column": 3 } }, @@ -342,11 +316,11 @@ "defaultMessage": "!!!Update available, downloading...", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 135, + "line": 118, "column": 25 }, "end": { - "line": 138, + "line": 121, "column": 3 } }, @@ -355,11 +329,11 @@ "defaultMessage": "!!!You are using the latest version of Ferdi", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 139, + "line": 122, "column": 24 }, "end": { - "line": 142, + "line": 125, "column": 3 } }, @@ -368,11 +342,11 @@ "defaultMessage": "!!!Current version:", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 143, + "line": 126, "column": 18 }, "end": { - "line": 146, + "line": 129, "column": 3 } }, @@ -381,11 +355,11 @@ "defaultMessage": "!!!Changes require restart", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 147, + "line": 130, "column": 29 }, "end": { - "line": 150, + "line": 133, "column": 3 } }, @@ -394,11 +368,11 @@ "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", "file": "src/components/settings/settings/EditSettingsForm.js", "start": { - "line": 151, + "line": 134, "column": 22 }, "end": { - "line": 154, + "line": 137, "column": 3 } } -- cgit v1.2.3-70-g09d2 From d0c6db6dab117059d81e2f8a6fcf47ddf5c12f2b Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2020 14:18:35 +0200 Subject: docs: add mrassili as a contributor (#517) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 11 ++++++- README.md | 91 +++++++++++++++++++++++++++-------------------------- 2 files changed, 57 insertions(+), 45 deletions(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index bc263512b..ba4131203 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -447,8 +447,17 @@ "contributions": [ "translation" ] + }, + { + "login": "mrassili", + "name": "Marouane R", + "avatar_url": "https://avatars0.githubusercontent.com/u/25288435?v=4", + "profile": "https://mrassili.com", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, "skipCi": true -} \ No newline at end of file +} diff --git a/README.md b/README.md index f9480bb4d..864e26b5e 100644 --- a/README.md +++ b/README.md @@ -13,7 +13,9 @@

GitHub Releases -Contributors + +Contributors + Open Collective backers Open Collective sponsors Build Status Windows @@ -282,63 +284,64 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - - - - - - + + + + + + - + +
Bennett
Bennett

💻 🎨 📖 🤔 🌍 💡 🐛 🖋 🚇 📓 💬 📆 👀
Amine Mouafik
Amine Mouafik

💻 🎨 📖 🤔 🐛 🖋 🚇 📓 💬 📆 👀 🚧 📦 🔍 📝 🌍
Stefan Malzner
Stefan Malzner

💻 🖋 🎨 📖 🤔 🚇 📆 ⚠️ 🌍
Makazzz
Makazzz

🐛 💻 🌍 🖋 📖 📦
ZeroCool
ZeroCool

💻 🤔
rseitbekov
rseitbekov

💻

Bennett

💻 🎨 📖 🤔 🌍 💡 🐛 🖋 🚇 📓 💬 📆 👀

Amine Mouafik

💻 🎨 📖 🤔 🐛 🖋 🚇 📓 💬 📆 👀 🚧 📦 🔍 📝 🌍

Stefan Malzner

💻 🖋 🎨 📖 🤔 🚇 📆 ⚠️ 🌍

Makazzz

🐛 💻 🌍 🖋 📖 📦

ZeroCool

💻 🤔

rseitbekov

💻
Peter Bittner
Peter Bittner

🤔 🐛
Justus Saul
Justus Saul

🐛 🤔
igreil
igreil

🤔
Marco Lopes
Marco Lopes

🤔
dayzlun
dayzlun

🐛
Tobias Günther
Tobias Günther

🤔

Peter Bittner

🤔 🐛

Justus Saul

🐛 🤔

igreil

🤔

Marco Lopes

🤔

dayzlun

🐛

Tobias Günther

🤔
AGCaesar
AGCaesar

📦
xthursdayx
xthursdayx

💻 📖 🚇 📦
Gaboris
Gaboris

💬 🐛
Ce
Ce

🐛
Stanislav N.
Stanislav N.

🐛
Patrick Curl
Patrick Curl

🤔

AGCaesar

📦

xthursdayx

💻 📖 🚇 📦

Gaboris

💬 🐛

Ce

🐛

Stanislav N.

🐛

Patrick Curl

🤔
Benjamin Staneck
Benjamin Staneck

🎨
ammarmalhas
ammarmalhas

🐛 🛡️
Steliyan Stoyanov
Steliyan Stoyanov

💻 🤔
Bror Winther
Bror Winther

📖
Felix W. Dekker
Felix W. Dekker

📖
Sauceee
Sauceee

🎨

Benjamin Staneck

🎨

ammarmalhas

🐛 🛡️

Steliyan Stoyanov

💻 🤔

Bror Winther

📖

Felix W. Dekker

📖

Sauceee

🎨
Lennart Weller
Lennart Weller

📦
Andrzej Ressel
Andrzej Ressel

💻
Daniel Peukert
Daniel Peukert

💻
Ali M. Shiple
Ali M. Shiple

🌍
elviseras
elviseras

🌍
J370
J370

🌍

Lennart Weller

📦

Andrzej Ressel

💻

Daniel Peukert

💻

Ali M. Shiple

🌍

elviseras

🌍

J370

🌍
Koen
Koen

🌍
Leandro Gehlen
Leandro Gehlen

🌍
Matthieu42
Matthieu42

🌍
Nikita Bibanaev
Nikita Bibanaev

🌍
Tatjana1998
Tatjana1998

🌍
tinect
tinect

🌍

Koen

🌍

Leandro Gehlen

🌍

Matthieu42

🌍

Nikita Bibanaev

🌍

Tatjana1998

🌍

tinect

🌍
Wonsup Yoon
Wonsup Yoon

🌍
zutt
zutt

🌍
n0emis
n0emis

💻 🌍
gmarec
gmarec

💻
127oo1
127oo1

🌍
ChTBoner
ChTBoner

🌍

Wonsup Yoon

🌍

zutt

🌍

n0emis

💻 🌍

gmarec

💻

127oo1

🌍

ChTBoner

🌍
Johan Engstrand
Johan Engstrand

🌍

Johan Engstrand

🌍

Marouane R

💻
-- cgit v1.2.3-70-g09d2 From a9bafcfcc7d6cee99891e39b75be457a15fb6489 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2020 12:45:48 +0000 Subject: docs: update README.md [skip ci] --- README.md | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/README.md b/README.md index 864e26b5e..f9cd366a5 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -342,6 +342,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Johan Engstrand

🌍
Marouane R

💻 +
Roman

💻 -- cgit v1.2.3-70-g09d2 From d49579f57dbed5ed3d96dd81badfc3a412691b3a Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sun, 29 Mar 2020 12:45:49 +0000 Subject: docs: update .all-contributorsrc [skip ci] --- .all-contributorsrc | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/.all-contributorsrc b/.all-contributorsrc index ba4131203..f5e9bde76 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -456,6 +456,15 @@ "contributions": [ "code" ] + }, + { + "login": "yourcontact", + "name": "Roman", + "avatar_url": "https://avatars2.githubusercontent.com/u/46404814?v=4", + "profile": "https://github.com/yourcontact", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, -- cgit v1.2.3-70-g09d2 From 56a7085adca22cb32ea318f199a7e8ee60b4797f Mon Sep 17 00:00:00 2001 From: Marouane Rassili Date: Sun, 29 Mar 2020 16:20:44 +0100 Subject: Clean up unused locales and props --- src/containers/settings/EditSettingsScreen.js | 12 +-- .../containers/settings/EditSettingsScreen.json | 105 +++++++++------------ 2 files changed, 47 insertions(+), 70 deletions(-) diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index ffefdda77..be251aa8b 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -20,7 +20,7 @@ import { getSelectOptions } from '../../helpers/i18n-helpers'; import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -import { API, TODOS_FRONTEND } from '../../environment'; +import { TODOS_FRONTEND } from '../../environment'; import globalMessages from '../../i18n/globalMessages'; import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; @@ -76,10 +76,6 @@ const messages = defineMessages({ id: 'settings.app.form.hibernationStrategy', defaultMessage: '!!!Hibernation strategy', }, - server: { - id: 'settings.app.form.server', - defaultMessage: '!!!Server', - }, todoServer: { id: 'settings.app.form.todoServer', defaultMessage: '!!!Todo Server', @@ -207,7 +203,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e sentry: settingsData.sentry, hibernate: settingsData.hibernate, hibernationStrategy: settingsData.hibernationStrategy, - server: settingsData.server, todoServer: settingsData.todoServer, lockingFeatureEnabled: settingsData.lockingFeatureEnabled, lockedPassword: settingsData.lockedPassword, @@ -359,11 +354,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e options: hibernationStrategies, default: DEFAULT_APP_SETTINGS.hibernationStrategy, }, - server: { - label: intl.formatMessage(messages.server), - value: settings.all.app.server || API, - default: API, - }, todoServer: { label: intl.formatMessage(messages.todoServer), value: settings.all.app.todoServer, diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 0d3265c51..6777a0d83 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -155,29 +155,16 @@ "column": 3 } }, - { - "id": "settings.app.form.server", - "defaultMessage": "!!!Server", - "file": "src/containers/settings/EditSettingsScreen.js", - "start": { - "line": 79, - "column": 10 - }, - "end": { - "line": 82, - "column": 3 - } - }, { "id": "settings.app.form.todoServer", "defaultMessage": "!!!Todo Server", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 83, + "line": 79, "column": 14 }, "end": { - "line": 86, + "line": 82, "column": 3 } }, @@ -186,11 +173,11 @@ "defaultMessage": "!!!Enable Password Lock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 87, + "line": 83, "column": 14 }, "end": { - "line": 90, + "line": 86, "column": 3 } }, @@ -199,11 +186,11 @@ "defaultMessage": "!!!Password", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 91, + "line": 87, "column": 16 }, "end": { - "line": 94, + "line": 90, "column": 3 } }, @@ -212,11 +199,11 @@ "defaultMessage": "!!!Allow using Touch ID to unlock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 95, + "line": 91, "column": 22 }, "end": { - "line": 98, + "line": 94, "column": 3 } }, @@ -225,11 +212,11 @@ "defaultMessage": "!!!Lock after inactivity", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 99, + "line": 95, "column": 18 }, "end": { - "line": 102, + "line": 98, "column": 3 } }, @@ -238,11 +225,11 @@ "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 103, + "line": 99, "column": 23 }, "end": { - "line": 106, + "line": 102, "column": 3 } }, @@ -251,11 +238,11 @@ "defaultMessage": "!!!From", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 107, + "line": 103, "column": 21 }, "end": { - "line": 110, + "line": 106, "column": 3 } }, @@ -264,11 +251,11 @@ "defaultMessage": "!!!To", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 111, + "line": 107, "column": 19 }, "end": { - "line": 114, + "line": 110, "column": 3 } }, @@ -277,11 +264,11 @@ "defaultMessage": "!!!Language", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 115, + "line": 111, "column": 12 }, "end": { - "line": 118, + "line": 114, "column": 3 } }, @@ -290,11 +277,11 @@ "defaultMessage": "!!!Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 119, + "line": 115, "column": 12 }, "end": { - "line": 122, + "line": 118, "column": 3 } }, @@ -303,11 +290,11 @@ "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 123, + "line": 119, "column": 21 }, "end": { - "line": 126, + "line": 122, "column": 3 } }, @@ -316,11 +303,11 @@ "defaultMessage": "!!!Enable universal Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 127, + "line": 123, "column": 21 }, "end": { - "line": 130, + "line": 126, "column": 3 } }, @@ -329,11 +316,11 @@ "defaultMessage": "!!!Sidebar width", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 131, + "line": 127, "column": 22 }, "end": { - "line": 134, + "line": 130, "column": 3 } }, @@ -342,11 +329,11 @@ "defaultMessage": "!!!Service icon size", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 135, + "line": 131, "column": 12 }, "end": { - "line": 138, + "line": 134, "column": 3 } }, @@ -355,11 +342,11 @@ "defaultMessage": "!!!Accent color", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 139, + "line": 135, "column": 15 }, "end": { - "line": 142, + "line": 138, "column": 3 } }, @@ -368,11 +355,11 @@ "defaultMessage": "!!!Display disabled services tabs", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 143, + "line": 139, "column": 24 }, "end": { - "line": 146, + "line": 142, "column": 3 } }, @@ -381,11 +368,11 @@ "defaultMessage": "!!!Show unread message badge when notifications are disabled", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 147, + "line": 143, "column": 29 }, "end": { - "line": 150, + "line": 146, "column": 3 } }, @@ -394,11 +381,11 @@ "defaultMessage": "!!!Enable spell checking", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 151, + "line": 147, "column": 23 }, "end": { - "line": 154, + "line": 150, "column": 3 } }, @@ -407,11 +394,11 @@ "defaultMessage": "!!!Enable GPU Acceleration", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 155, + "line": 151, "column": 25 }, "end": { - "line": 158, + "line": 154, "column": 3 } }, @@ -420,11 +407,11 @@ "defaultMessage": "!!!Include beta versions", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 159, + "line": 155, "column": 8 }, "end": { - "line": 162, + "line": 158, "column": 3 } }, @@ -433,11 +420,11 @@ "defaultMessage": "!!!Disable updates", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 163, + "line": 159, "column": 13 }, "end": { - "line": 166, + "line": 162, "column": 3 } }, @@ -446,11 +433,11 @@ "defaultMessage": "!!!Enable Franz Todos", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 167, + "line": 163, "column": 15 }, "end": { - "line": 170, + "line": 166, "column": 3 } }, @@ -459,11 +446,11 @@ "defaultMessage": "!!!Keep all workspaces loaded", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 171, + "line": 167, "column": 27 }, "end": { - "line": 174, + "line": 170, "column": 3 } } -- cgit v1.2.3-70-g09d2 From 2625ca0e34f7f5b35ef7fde86fdecb3b58f0f7e4 Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Mon, 30 Mar 2020 00:41:37 +0100 Subject: #515 Run utility scripts pre-commit instead of pre-push --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 53b4f742f..c267f6ae2 100644 --- a/package.json +++ b/package.json @@ -203,7 +203,7 @@ ], "husky": { "hooks": { - "pre-push": "npm run lint && npm run reformat-files && npm run manage-translations && npm run apply-branding" + "pre-commit": "npm run lint && npm run reformat-files && npm run manage-translations && npm run apply-branding" } } } -- cgit v1.2.3-70-g09d2 From 12149b8fa714fed991bb5fade205e7156fea312d Mon Sep 17 00:00:00 2001 From: Amine Mouafik Date: Mon, 30 Mar 2020 00:47:18 +0100 Subject: #514 Document 'gyp: No Xcode or CLT version' error --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index f9cd366a5..792c5bb63 100644 --- a/README.md +++ b/README.md @@ -227,7 +227,7 @@ Run the following command to install all dependencies, and link sibling modules $ npx lerna bootstrap ``` -If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. +If you previously ran `npm install` it sometimes is necessary to delete your `node_modules` folder before running `npx lerna bootstrap`. If you encounter the `gyp: No Xcode or CLT version` error on macOS at this step, please have a look [here](https://medium.com/flawless-app-stories/gyp-no-xcode-or-clt-version-detected-macos-catalina-anansewaa-38b536389e8d). ### Fix native modules to match current electron node version -- cgit v1.2.3-70-g09d2 From 3f0076b09d1625df120dbecf29ec4a7d5a5c2455 Mon Sep 17 00:00:00 2001 From: Bennett Date: Tue, 31 Mar 2020 12:14:21 +0200 Subject: Update stale bot configuration (#524) * Update stale.yml * Remove bugs from list of exempt labels * Update stale comment --- .github/stale.yml | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/.github/stale.yml b/.github/stale.yml index 88f863d74..4737cae86 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -1,7 +1,7 @@ # Configuration for probot-stale - https://github.com/probot/stale # Number of days of inactivity before an Issue or Pull Request becomes stale -daysUntilStale: 365 # 1 year +daysUntilStale: 60 # Number of days of inactivity before an Issue or Pull Request with the stale label is closed. # Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. @@ -11,8 +11,6 @@ daysUntilClose: -1 # Close the issue almost immediately. See: https://github.com exemptLabels: - blocker - security - - feature request - - bug # Label to use when marking an issue as stale staleLabel: "[Status] Stale" @@ -20,8 +18,9 @@ staleLabel: "[Status] Stale" # Comment to post when marking an issue as stale. Set to `false` to disable markComment: > This issue has been automatically marked as stale because it has not had - recent activity. It will be closed if no further activity occurs. Thank you - for your contributions. + recent activity. Please check if this issue is still relevant and please close it if it's not. + This will make sure that our open issues are actually of use and reduce the list of obsolete issues. + Thank you for your contributions. # Comment to post when closing a stale issue. Set to `false` to disable closeComment: false -- cgit v1.2.3-70-g09d2 From 6353066ccd2606db9a034d3d11f24957cce19f68 Mon Sep 17 00:00:00 2001 From: Amine Date: Tue, 31 Mar 2020 11:43:03 +0100 Subject: Retry flaky commands on AppVeyor (#526) To avoid having to manually re-run https://ci.appveyor.com/project/kytwb/ferdi/builds/31820339 --- appveyor.yml | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/appveyor.yml b/appveyor.yml index ecf12899c..1985835ef 100644 --- a/appveyor.yml +++ b/appveyor.yml @@ -4,9 +4,9 @@ environment: version: 5.4.1-beta.4.{build} install: - - git submodule update --init --recursive + - appveyor-retry git submodule update --init --recursive - ps: Install-Product node 10 - - npx lerna bootstrap + - appveyor-retry npx lerna bootstrap cache: - '%APPDATA%\npm-cache' -- cgit v1.2.3-70-g09d2 From 899d2bf551e111bdc68608dba02e93782eec9f85 Mon Sep 17 00:00:00 2001 From: Amine Date: Tue, 31 Mar 2020 14:09:05 +0100 Subject: #418 #477 Refactor Todo settings, add predefined Todo apps list * add condition if on todo options * add drop down for todo server * fix error TODOS_FRONTEND * add todo list apps' * update name of dropdown menu to Todo Service * add other service to dropdown menu and subsetting field for user to input url * add Other Service to drop down * fixed typos * reverted wording * fix custom field * fix linting * fix linting * Delete tsconfig.tsbuildinfo * Delete tsconfig.tsbuildinfo * Delete tsconfig.tsbuildinfo * Add regex to validate custom todo url * Add note with source of regex function * Move regex function declaration to function body root * Apply code style * Add migration for todo settings * Apply code style Co-authored-by: romain Co-authored-by: Roman <46404814+yourcontact@users.noreply.github.com> Co-authored-by: romain --- .../settings/settings/EditSettingsForm.js | 38 ++++++++++++++-------- src/config.js | 14 +++++++- src/containers/settings/EditSettingsScreen.js | 36 ++++++++++++++------ src/features/todos/components/TodosWebview.js | 27 +++++++++++++-- src/i18n/locales/defaultMessages.json | 27 +++++++++++---- src/i18n/locales/en-US.json | 7 ++-- src/i18n/locales/whitelist_en-US.json | 3 +- .../containers/settings/EditSettingsScreen.json | 17 ++++++++-- .../features/todos/components/TodosWebview.json | 12 +++---- src/stores/SettingsStore.js | 19 +++++++++++ 10 files changed, 155 insertions(+), 45 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 5478ce8bf..f76378a3e 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -156,6 +156,7 @@ export default @observer class EditSettingsForm extends Component { cacheSize: PropTypes.string.isRequired, isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, isTodosEnabled: PropTypes.bool.isRequired, + isTodosActivated: PropTypes.bool.isRequired, isWorkspaceEnabled: PropTypes.bool.isRequired, noUpdates: PropTypes.bool.isRequired, hibernationEnabled: PropTypes.bool.isRequired, @@ -201,6 +202,7 @@ export default @observer class EditSettingsForm extends Component { isDarkmodeEnabled, isTrayEnabled, openProcessManager, + isTodosActivated, } = this.props; const { intl } = this.context; @@ -275,22 +277,32 @@ export default @observer class EditSettingsForm extends Component { {isTodosEnabled && ( <> - this.submit(e)} - field={form.$('todoServer')} - /> -

- { intl.formatMessage(messages.todoServerInfo) } -

+ {isTodosActivated && ( +
+ this.submit(e)} + field={form.$('customTodoServer')} + /> +

+ { intl.formatMessage(messages.todoServerInfo) } +

+
+ )} +

+ )} )} +
diff --git a/src/config.js b/src/config.js index af304232e..f617555df 100644 --- a/src/config.js +++ b/src/config.js @@ -51,6 +51,18 @@ export const NAVIGATION_BAR_BEHAVIOURS = { never: 'Never show navigation bar', }; +export const TODO_APPS = { + 'https://todoist.com/app': 'Todoist', + 'https://app.franztodos.com': 'Franz Todo', + 'https://ticktick.com/signin': 'TickTick', + 'https://todo.microsoft.com/?app#': 'Microsoft To Do', + 'https://habitica.com/login': 'Habitica', + 'https://app.nozbe.com/#login': 'Nozbe', + 'https://www.rememberthemilk.com/login/': 'Remember The Milk', + 'https://desktop.any.do/': 'Any.do', + isUsingCustomTodoService: 'Other service', +}; + export const SIDEBAR_WIDTH = { 35: 'Extemely slim sidebar', 45: 'Very slim sidebar', @@ -95,7 +107,7 @@ export const DEFAULT_APP_SETTINGS = { // Ferdi specific options server: LIVE_API, - todoServer: PRODUCTION_TODOS_FRONTEND_URL, + predefinedTodoServer: 'https://app.franztodos.com', autohideMenuBar: false, lockingFeatureEnabled: false, locked: false, diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index be251aa8b..64303e54f 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -11,7 +11,7 @@ import TodosStore from '../../features/todos/store'; import Form from '../../lib/Form'; import { APP_LOCALES, SPELLCHECKER_LOCALES } from '../../i18n/languages'; import { - DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, + DEFAULT_APP_SETTINGS, HIBERNATION_STRATEGIES, SIDEBAR_WIDTH, ICON_SIZES, NAVIGATION_BAR_BEHAVIOURS, TODO_APPS, } from '../../config'; import { config as spellcheckerConfig } from '../../features/spellchecker'; @@ -20,8 +20,6 @@ import { getSelectOptions } from '../../helpers/i18n-helpers'; import EditSettingsForm from '../../components/settings/settings/EditSettingsForm'; import ErrorBoundary from '../../components/util/ErrorBoundary'; -import { TODOS_FRONTEND } from '../../environment'; - import globalMessages from '../../i18n/globalMessages'; import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; import WorkspacesStore from '../../features/workspaces/store'; @@ -76,10 +74,14 @@ const messages = defineMessages({ id: 'settings.app.form.hibernationStrategy', defaultMessage: '!!!Hibernation strategy', }, - todoServer: { - id: 'settings.app.form.todoServer', + predefinedTodoServer: { + id: 'settings.app.form.predefinedTodoServer', defaultMessage: '!!!Todo Server', }, + customTodoServer: { + id: 'settings.app.form.customTodoServer', + defaultMessage: '!!!Custom TodoServer', + }, enableLock: { id: 'settings.app.form.enableLock', defaultMessage: '!!!Enable Password Lock', @@ -203,7 +205,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e sentry: settingsData.sentry, hibernate: settingsData.hibernate, hibernationStrategy: settingsData.hibernationStrategy, - todoServer: settingsData.todoServer, + predefinedTodoServer: settingsData.predefinedTodoServer, + customTodoServer: settingsData.customTodoServer, lockingFeatureEnabled: settingsData.lockingFeatureEnabled, lockedPassword: settingsData.lockedPassword, useTouchIdToUnlock: settingsData.useTouchIdToUnlock, @@ -275,6 +278,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e sort: false, }); + const todoApp = getSelectOptions({ + locales: TODO_APPS, + sort: false, + }); + const sidebarWidth = getSelectOptions({ locales: SIDEBAR_WIDTH, sort: false, @@ -354,10 +362,16 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e options: hibernationStrategies, default: DEFAULT_APP_SETTINGS.hibernationStrategy, }, - todoServer: { - label: intl.formatMessage(messages.todoServer), - value: settings.all.app.todoServer, - default: TODOS_FRONTEND, + predefinedTodoServer: { + label: intl.formatMessage(messages.predefinedTodoServer), + value: settings.all.app.predefinedTodoServer, + default: DEFAULT_APP_SETTINGS.predefinedTodoServer, + options: todoApp, + }, + customTodoServer: { + label: intl.formatMessage(messages.customTodoServer), + value: settings.all.app.customTodoServer, + default: DEFAULT_APP_SETTINGS.customTodoServer, }, lockingFeatureEnabled: { label: intl.formatMessage(messages.enableLock), @@ -537,6 +551,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e isDarkmodeEnabled={this.props.stores.settings.app.darkMode} isTrayEnabled={this.props.stores.settings.app.enableSystemTray} isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} + isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser} + isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} openProcessManager={() => this.openProcessManager()} /> diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js index e9b1963f7..2626186e9 100644 --- a/src/features/todos/components/TodosWebview.js +++ b/src/features/todos/components/TodosWebview.js @@ -9,10 +9,20 @@ import { defineMessages, intlShape } from 'react-intl'; import { mdiCheckAll } from '@mdi/js'; import SettingsStore from '../../../stores/SettingsStore'; -import * as environment from '../../../environment'; import Appear from '../../../components/ui/effects/Appear'; import UpgradeButton from '../../../components/ui/UpgradeButton'; +// NOTE: https://stackoverflow.com/questions/5717093/check-if-a-javascript-string-is-a-url +function validURL(str) { + const pattern = new RegExp('^(https?:\\/\\/)?' // protocol + + '((([a-z\\d]([a-z\\d-]*[a-z\\d])*)\\.)+[a-z]{2,}|' // domain name + + '((\\d{1,3}\\.){3}\\d{1,3}))' // OR ip (v4) address + + '(\\:\\d+)?(\\/[-a-z\\d%_.~+]*)*' // port and path + + '(\\?[;&a-z\\d%_.~+=-]*)?' // query string + + '(\\#[-a-z\\d_]*)?$', 'i'); // fragment locator + return !!pattern.test(str); +} + const messages = defineMessages({ premiumInfo: { id: 'feature.todos.premium.info', @@ -194,6 +204,16 @@ class TodosWebview extends Component { const { intl } = this.context; + const isUsingPredefinedTodoServer = stores.settings.all.app.predefinedTodoServer !== 'isUsingCustomTodoService'; + const todoUrl = isUsingPredefinedTodoServer + ? stores.settings.all.app.predefinedTodoServer + : stores.settings.all.app.customTodoServer; + let isTodoUrlValid = true; + if (isUsingPredefinedTodoServer === false) { + isTodoUrlValid = validURL(todoUrl); + } + + return (
)} {isTodosIncludedInCurrentPlan ? ( + isTodoUrlValid + && ( { @@ -223,8 +245,9 @@ class TodosWebview extends Component { partition="persist:todos" preload="./features/todos/preload.js" ref={(webview) => { this.webview = webview ? webview.view : null; }} - src={stores.settings.all.app.todoServer || environment.TODOS_FRONTEND} + src={todoUrl} /> + ) ) : (
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index a5c83d7ab..906172221 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4342,7 +4342,20 @@ "line": 82 }, "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.todoServer", + "id": "settings.app.form.predefinedTodoServer", + "start": { + "column": 14, + "line": 79 + } + }, + { + "defaultMessage": "!!!Custom Todo Server", + "end": { + "column": 3, + "line": 82 + }, + "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.customTodoServer", "start": { "column": 14, "line": 79 @@ -5449,39 +5462,39 @@ "defaultMessage": "!!!Franz Todos are available to premium users now!", "end": { "column": 3, - "line": 20 + "line": 30 }, "file": "src/features/todos/components/TodosWebview.js", "id": "feature.todos.premium.info", "start": { "column": 15, - "line": 17 + "line": 27 } }, { "defaultMessage": "!!!Upgrade Account", "end": { "column": 3, - "line": 24 + "line": 34 }, "file": "src/features/todos/components/TodosWebview.js", "id": "feature.todos.premium.upgrade", "start": { "column": 14, - "line": 21 + "line": 31 } }, { "defaultMessage": "!!!Everyone else will have to wait a little longer.", "end": { "column": 3, - "line": 28 + "line": 38 }, "file": "src/features/todos/components/TodosWebview.js", "id": "feature.todos.premium.rollout", "start": { "column": 15, - "line": 25 + "line": 35 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 0762e855f..3306febe1 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -277,6 +277,7 @@ "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -293,6 +294,7 @@ "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -304,7 +306,6 @@ "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -324,7 +325,7 @@ "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.", "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -510,4 +511,4 @@ "workspaceDrawer.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.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index fe51488c7..32960f8ce 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json @@ -1 +1,2 @@ -[] +[ +] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 6777a0d83..4293c93b4 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -156,7 +156,7 @@ } }, { - "id": "settings.app.form.todoServer", + "id": "settings.app.form.predefinedTodoServer", "defaultMessage": "!!!Todo Server", "file": "src/containers/settings/EditSettingsScreen.js", "start": { @@ -168,6 +168,19 @@ "column": 3 } }, + { + "id": "settings.app.form.customTodoServer", + "defaultMessage": "!!!Custom Todo Server", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 79, + "column": 14 + }, + "end": { + "line": 82, + "column": 3 + } + }, { "id": "settings.app.form.enableLock", "defaultMessage": "!!!Enable Password Lock", @@ -454,4 +467,4 @@ "column": 3 } } -] \ No newline at end of file +] diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json index 19ea81171..173389570 100644 --- a/src/i18n/messages/src/features/todos/components/TodosWebview.json +++ b/src/i18n/messages/src/features/todos/components/TodosWebview.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Franz Todos are available to premium users now!", "file": "src/features/todos/components/TodosWebview.js", "start": { - "line": 17, + "line": 27, "column": 15 }, "end": { - "line": 20, + "line": 30, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Upgrade Account", "file": "src/features/todos/components/TodosWebview.js", "start": { - "line": 21, + "line": 31, "column": 14 }, "end": { - "line": 24, + "line": 34, "column": 3 } }, @@ -30,11 +30,11 @@ "defaultMessage": "!!!Everyone else will have to wait a little longer.", "file": "src/features/todos/components/TodosWebview.js", "start": { - "line": 25, + "line": 35, "column": 15 }, "end": { - "line": 28, + "line": 38, "column": 3 } } diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index 71d4e1702..f83bc21ad 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js @@ -263,5 +263,24 @@ export default class SettingsStore extends Store { }, }); } + + if (!this.all.migration['5.4.4-beta.4-settings']) { + this.actions.settings.update({ + type: 'app', + data: { + todoServer: 'isUsingCustomTodoService', + customTodoServer: legacySettings.todoServer, + }, + }); + + this.actions.settings.update({ + type: 'migration', + data: { + '5.4.4-beta.4-settings': true, + }, + }); + + debug('Migrated old todo setting to new custom todo setting'); + } } } -- cgit v1.2.3-70-g09d2 From 3b22b62b991d616cad59a58dc1df98566c464aef Mon Sep 17 00:00:00 2001 From: Bennett Date: Tue, 31 Mar 2020 15:12:06 +0200 Subject: Update Stalebot configuration to not close stale issues (#528) --- .github/stale.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/stale.yml b/.github/stale.yml index 4737cae86..c6026240d 100644 --- a/.github/stale.yml +++ b/.github/stale.yml @@ -5,7 +5,7 @@ daysUntilStale: 60 # Number of days of inactivity before an Issue or Pull Request with the stale label is closed. # Set to false to disable. If disabled, issues still need to be closed manually, but will remain marked as stale. -daysUntilClose: -1 # Close the issue almost immediately. See: https://github.com/probot/stale/issues/131 +daysUntilClose: 999999 # Issues with these labels will never be considered stale exemptLabels: -- cgit v1.2.3-70-g09d2 From 53b659259eda3adbeffe430b6ed2eb3d9ab87109 Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Sun, 5 Apr 2020 11:26:26 +0530 Subject: #530 Dark Mode Hotkey (#537) * Bump version number * feat: Add a new menu item for toggling between Dark Mode and Light Mode - Add a new sub menu entry under 'View' in src/lib/Menu.js named toggleDarkMode - Add an accelerator hotkey of '${cmdKey}+Shift+D' as the feature request was to have a hot key for dark mode. See #530 - Update intl locales for 'menu.view.toggleDarkMode' in en.json and en-US.json. Co-authored-by: Amine Mouafik Co-authored-by: vantezzen Co-authored-by: Mahadevan Sreenivasan --- src/i18n/locales/en-US.json | 1 + src/i18n/locales/en.json | 1 + src/i18n/messages/src/lib/Menu.json | 13 +++++++++++++ src/lib/Menu.js | 32 ++++++++++++++++++++++++++++++++ 4 files changed, 47 insertions(+) diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 3306febe1..d9a191982 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -158,6 +158,7 @@ "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", "menu.view.toggleDevTools": "Toggle Developer Tools", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index 235e12146..fb2cb3d7e 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -116,6 +116,7 @@ "menu.view.reloadService": "Athlódáil seirbhís", "menu.view.resetZoom": "Fíormhéid", "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin", "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse", "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 15f5ff75f..587754463 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json @@ -324,6 +324,19 @@ "column": 3 } }, + { + "id": "menu.view.toggleDarkMode", + "defaultMessage": "!!!Toggle Dark Mode", + "file": "src/lib/Menu.js", + "start": { + "line": 114, + "column": 18 + }, + "end": { + "line": 117, + "column": 3 + } + }, { "id": "menu.view.toggleTodosDevTools", "defaultMessage": "!!!Toggle Todos Developer Tools", diff --git a/src/lib/Menu.js b/src/lib/Menu.js index 4547e84f9..07a29a224 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js @@ -111,6 +111,10 @@ const menuItems = defineMessages({ id: 'menu.view.toggleFullScreen', defaultMessage: '!!!Toggle Full Screen', }, + toggleDarkMode: { + id: 'menu.view.toggleDarkMode', + defaultMessage: '!!!Toggle Dark Mode', + }, toggleDevTools: { id: 'menu.view.toggleDevTools', defaultMessage: '!!!Toggle Developer Tools', @@ -457,6 +461,20 @@ const _templateFactory = (intl, locked) => [ : intl.formatMessage(menuItems.enterFullScreen), role: 'togglefullscreen', }, + { + label: intl.formatMessage(menuItems.toggleDarkMode), + type: 'checkbox', + accelerator: `${cmdKey}+Shift+D`, + checked: window.ferdi.stores.settings.app.darkMode, + click: () => { + window.ferdi.actions.settings.update({ + type: 'app', + data: { + darkMode: !window.ferdi.stores.settings.app.darkMode, + }, + }); + }, + }, ], }, { @@ -689,6 +707,20 @@ const _titleBarTemplateFactory = (intl, locked) => [ browserWindow.setFullScreen(!browserWindow.isFullScreen()); }, }, + { + label: intl.formatMessage(menuItems.toggleDarkMode), + type: 'checkbox', + accelerator: `${cmdKey}+Shift+D`, + checked: window.ferdi.stores.settings.app.darkMode, + click: () => { + window.ferdi.actions.settings.update({ + type: 'app', + data: { + darkMode: !window.ferdi.stores.settings.app.darkMode, + }, + }); + }, + }, { label: intl.formatMessage(menuItems.autohideMenuBar), type: 'checkbox', -- cgit v1.2.3-70-g09d2 From 461f4205a804ea431e445ee903b49ddee1a0f045 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sun, 5 Apr 2020 06:57:27 +0100 Subject: docs: add mahadevans87 as a contributor (#539) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index f5e9bde76..640437a17 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -465,6 +465,15 @@ "contributions": [ "code" ] + }, + { + "login": "mahadevans87", + "name": "Mahadevan Sreenivasan", + "avatar_url": "https://avatars1.githubusercontent.com/u/1255523?v=4", + "profile": "https://github.com/mahadevans87", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index 792c5bb63..0ffbecffd 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -343,6 +343,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Johan Engstrand

🌍
Marouane R

💻
Roman

💻 +
Mahadevan Sreenivasan

💻 -- cgit v1.2.3-70-g09d2 From b09a04b4fec023a5b8293eaae8c77ebb50bf64be Mon Sep 17 00:00:00 2001 From: Bennett Date: Sun, 5 Apr 2020 08:00:30 +0200 Subject: #490 Add option to start Ferdi minimized (#534) --- recipes | 2 +- .../settings/settings/EditSettingsForm.js | 4 +- src/containers/settings/EditSettingsScreen.js | 3 +- src/i18n/locales/defaultMessages.json | 152 ++++++++++---------- src/i18n/locales/en-US.json | 4 +- src/i18n/locales/whitelist_en-US.json | 3 +- .../containers/settings/EditSettingsScreen.json | 154 ++++++++++----------- src/index.js | 4 +- 8 files changed, 162 insertions(+), 164 deletions(-) diff --git a/recipes b/recipes index 4bd9247f4..1392757b0 160000 --- a/recipes +++ b/recipes @@ -1 +1 @@ -Subproject commit 4bd9247f4b3efc92808552a851be10ad6546cc94 +Subproject commit 1392757b077c8ce582f00a1e47b35affcc448058 diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index f76378a3e..1a36cedb5 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -161,7 +161,6 @@ export default @observer class EditSettingsForm extends Component { noUpdates: PropTypes.bool.isRequired, hibernationEnabled: PropTypes.bool.isRequired, isDarkmodeEnabled: PropTypes.bool.isRequired, - isTrayEnabled: PropTypes.bool.isRequired, isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, openProcessManager: PropTypes.func.isRequired, }; @@ -200,7 +199,6 @@ export default @observer class EditSettingsForm extends Component { noUpdates, hibernationEnabled, isDarkmodeEnabled, - isTrayEnabled, openProcessManager, isTodosActivated, } = this.props; @@ -237,7 +235,7 @@ export default @observer class EditSettingsForm extends Component { - {isTrayEnabled && } + {process.platform === 'win32' && ( )} diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 64303e54f..7bf721bb0 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -40,7 +40,7 @@ const messages = defineMessages({ }, startMinimized: { id: 'settings.app.form.startMinimized', - defaultMessage: '!!!Start minimized in tray', + defaultMessage: '!!!Start minimized', }, enableSystemTray: { id: 'settings.app.form.enableSystemTray', @@ -549,7 +549,6 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e noUpdates={this.props.stores.settings.app.noUpdates} hibernationEnabled={this.props.stores.settings.app.hibernate} isDarkmodeEnabled={this.props.stores.settings.app.darkMode} - isTrayEnabled={this.props.stores.settings.app.enableSystemTray} isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} isTodosActivated={this.props.stores.todos.isFeatureEnabledByUser} isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 906172221..e6b457515 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4183,468 +4183,468 @@ "defaultMessage": "!!!Launch Ferdi on start", "end": { "column": 3, - "line": 34 + "line": 32 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.autoLaunchOnStart", "start": { "column": 21, - "line": 31 + "line": 29 } }, { "defaultMessage": "!!!Open in background", "end": { "column": 3, - "line": 38 + "line": 36 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.autoLaunchInBackground", "start": { "column": 26, - "line": 35 + "line": 33 } }, { "defaultMessage": "!!!Keep Ferdi in background when closing the window", "end": { "column": 3, - "line": 42 + "line": 40 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.runInBackground", "start": { "column": 19, - "line": 39 + "line": 37 } }, { - "defaultMessage": "!!!Start minimized in tray", + "defaultMessage": "!!!Start minimized", "end": { "column": 3, - "line": 46 + "line": 44 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.startMinimized", "start": { "column": 18, - "line": 43 + "line": 41 } }, { "defaultMessage": "!!!Always show Ferdi in system tray", "end": { "column": 3, - "line": 50 + "line": 48 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSystemTray", "start": { "column": 20, - "line": 47 + "line": 45 } }, { "defaultMessage": "!!!Reload Ferdi after system resume", "end": { "column": 3, - "line": 54 + "line": 52 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.reloadAfterResume", "start": { "column": 21, - "line": 51 + "line": 49 } }, { "defaultMessage": "!!!Minimize Ferdi to system tray", "end": { "column": 3, - "line": 58 + "line": 56 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.minimizeToSystemTray", "start": { "column": 24, - "line": 55 + "line": 53 } }, { "defaultMessage": "!!!Don't show message content in notifications", "end": { "column": 3, - "line": 62 + "line": 60 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.privateNotifications", "start": { "column": 24, - "line": 59 + "line": 57 } }, { "defaultMessage": "!!!Navigation bar behaviour", "end": { "column": 3, - "line": 66 + "line": 64 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.navigationBarBehaviour", "start": { "column": 26, - "line": 63 + "line": 61 } }, { "defaultMessage": "!!!Send telemetry data", "end": { "column": 3, - "line": 70 + "line": 68 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.sentry", "start": { "column": 10, - "line": 67 + "line": 65 } }, { "defaultMessage": "!!!Enable service hibernation", "end": { "column": 3, - "line": 74 + "line": 72 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernate", "start": { "column": 13, - "line": 71 + "line": 69 } }, { "defaultMessage": "!!!Hibernation strategy", "end": { "column": 3, - "line": 78 + "line": 76 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.hibernationStrategy", "start": { "column": 23, - "line": 75 + "line": 73 } }, { "defaultMessage": "!!!Todo Server", "end": { "column": 3, - "line": 82 + "line": 80 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.predefinedTodoServer", "start": { - "column": 14, - "line": 79 + "column": 24, + "line": 77 } }, { - "defaultMessage": "!!!Custom Todo Server", + "defaultMessage": "!!!Custom TodoServer", "end": { "column": 3, - "line": 82 + "line": 84 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.customTodoServer", "start": { - "column": 14, - "line": 79 + "column": 20, + "line": 81 } }, { "defaultMessage": "!!!Enable Password Lock", "end": { "column": 3, - "line": 86 + "line": 88 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableLock", "start": { "column": 14, - "line": 83 + "line": 85 } }, { "defaultMessage": "!!!Password", "end": { "column": 3, - "line": 90 + "line": 92 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.lockPassword", "start": { "column": 16, - "line": 87 + "line": 89 } }, { "defaultMessage": "!!!Allow using Touch ID to unlock", "end": { "column": 3, - "line": 94 + "line": 96 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.useTouchIdToUnlock", "start": { "column": 22, - "line": 91 + "line": 93 } }, { "defaultMessage": "!!!Lock after inactivity", "end": { "column": 3, - "line": 98 + "line": 100 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.inactivityLock", "start": { "column": 18, - "line": 95 + "line": 97 } }, { "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "end": { "column": 3, - "line": 102 + "line": 104 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnabled", "start": { "column": 23, - "line": 99 + "line": 101 } }, { "defaultMessage": "!!!From", "end": { "column": 3, - "line": 106 + "line": 108 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDStart", "start": { "column": 21, - "line": 103 + "line": 105 } }, { "defaultMessage": "!!!To", "end": { "column": 3, - "line": 110 + "line": 112 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.scheduledDNDEnd", "start": { "column": 19, - "line": 107 + "line": 109 } }, { "defaultMessage": "!!!Language", "end": { "column": 3, - "line": 114 + "line": 116 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.language", "start": { "column": 12, - "line": 111 + "line": 113 } }, { "defaultMessage": "!!!Dark Mode", "end": { "column": 3, - "line": 118 + "line": 120 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.darkMode", "start": { "column": 12, - "line": 115 + "line": 117 } }, { "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", "end": { "column": 3, - "line": 122 + "line": 124 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.adaptableDarkMode", "start": { "column": 21, - "line": 119 + "line": 121 } }, { "defaultMessage": "!!!Enable universal Dark Mode", "end": { "column": 3, - "line": 126 + "line": 128 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.universalDarkMode", "start": { "column": 21, - "line": 123 + "line": 125 } }, { "defaultMessage": "!!!Sidebar width", "end": { "column": 3, - "line": 130 + "line": 132 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.serviceRibbonWidth", "start": { "column": 22, - "line": 127 + "line": 129 } }, { "defaultMessage": "!!!Service icon size", "end": { "column": 3, - "line": 134 + "line": 136 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.iconSize", "start": { "column": 12, - "line": 131 + "line": 133 } }, { "defaultMessage": "!!!Accent color", "end": { "column": 3, - "line": 138 + "line": 140 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.accentColor", "start": { "column": 15, - "line": 135 + "line": 137 } }, { "defaultMessage": "!!!Display disabled services tabs", "end": { "column": 3, - "line": 142 + "line": 144 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showDisabledServices", "start": { "column": 24, - "line": 139 + "line": 141 } }, { "defaultMessage": "!!!Show unread message badge when notifications are disabled", "end": { "column": 3, - "line": 146 + "line": 148 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.showMessagesBadgesWhenMuted", "start": { "column": 29, - "line": 143 + "line": 145 } }, { "defaultMessage": "!!!Enable spell checking", "end": { "column": 3, - "line": 150 + "line": 152 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSpellchecking", "start": { "column": 23, - "line": 147 + "line": 149 } }, { "defaultMessage": "!!!Enable GPU Acceleration", "end": { "column": 3, - "line": 154 + "line": 156 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableGPUAcceleration", "start": { "column": 25, - "line": 151 + "line": 153 } }, { "defaultMessage": "!!!Include beta versions", "end": { "column": 3, - "line": 158 + "line": 160 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.beta", "start": { "column": 8, - "line": 155 + "line": 157 } }, { "defaultMessage": "!!!Disable updates", "end": { "column": 3, - "line": 162 + "line": 164 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.noUpdates", "start": { "column": 13, - "line": 159 + "line": 161 } }, { "defaultMessage": "!!!Enable Franz Todos", "end": { "column": 3, - "line": 166 + "line": 168 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableTodos", "start": { "column": 15, - "line": 163 + "line": 165 } }, { "defaultMessage": "!!!Keep all workspaces loaded", "end": { "column": 3, - "line": 170 + "line": 172 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.keepAllWorkspacesLoaded", "start": { "column": 27, - "line": 167 + "line": 169 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index d9a191982..feb6ef124 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -306,7 +306,7 @@ "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -512,4 +512,4 @@ "workspaceDrawer.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.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index 32960f8ce..fe51488c7 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json @@ -1,2 +1 @@ -[ -] \ No newline at end of file +[] diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 4293c93b4..267fa08cd 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -4,11 +4,11 @@ "defaultMessage": "!!!Launch Ferdi on start", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 31, + "line": 29, "column": 21 }, "end": { - "line": 34, + "line": 32, "column": 3 } }, @@ -17,11 +17,11 @@ "defaultMessage": "!!!Open in background", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 35, + "line": 33, "column": 26 }, "end": { - "line": 38, + "line": 36, "column": 3 } }, @@ -30,24 +30,24 @@ "defaultMessage": "!!!Keep Ferdi in background when closing the window", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 39, + "line": 37, "column": 19 }, "end": { - "line": 42, + "line": 40, "column": 3 } }, { "id": "settings.app.form.startMinimized", - "defaultMessage": "!!!Start minimized in tray", + "defaultMessage": "!!!Start minimized", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 43, + "line": 41, "column": 18 }, "end": { - "line": 46, + "line": 44, "column": 3 } }, @@ -56,11 +56,11 @@ "defaultMessage": "!!!Always show Ferdi in system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 47, + "line": 45, "column": 20 }, "end": { - "line": 50, + "line": 48, "column": 3 } }, @@ -69,11 +69,11 @@ "defaultMessage": "!!!Reload Ferdi after system resume", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 51, + "line": 49, "column": 21 }, "end": { - "line": 54, + "line": 52, "column": 3 } }, @@ -82,11 +82,11 @@ "defaultMessage": "!!!Minimize Ferdi to system tray", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 55, + "line": 53, "column": 24 }, "end": { - "line": 58, + "line": 56, "column": 3 } }, @@ -95,11 +95,11 @@ "defaultMessage": "!!!Don't show message content in notifications", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 59, + "line": 57, "column": 24 }, "end": { - "line": 62, + "line": 60, "column": 3 } }, @@ -108,11 +108,11 @@ "defaultMessage": "!!!Navigation bar behaviour", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 63, + "line": 61, "column": 26 }, "end": { - "line": 66, + "line": 64, "column": 3 } }, @@ -121,11 +121,11 @@ "defaultMessage": "!!!Send telemetry data", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 67, + "line": 65, "column": 10 }, "end": { - "line": 70, + "line": 68, "column": 3 } }, @@ -134,11 +134,11 @@ "defaultMessage": "!!!Enable service hibernation", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 71, + "line": 69, "column": 13 }, "end": { - "line": 74, + "line": 72, "column": 3 } }, @@ -147,11 +147,11 @@ "defaultMessage": "!!!Hibernation strategy", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 75, + "line": 73, "column": 23 }, "end": { - "line": 78, + "line": 76, "column": 3 } }, @@ -160,24 +160,24 @@ "defaultMessage": "!!!Todo Server", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 79, - "column": 14 + "line": 77, + "column": 24 }, "end": { - "line": 82, + "line": 80, "column": 3 } }, { "id": "settings.app.form.customTodoServer", - "defaultMessage": "!!!Custom Todo Server", + "defaultMessage": "!!!Custom TodoServer", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 79, - "column": 14 + "line": 81, + "column": 20 }, "end": { - "line": 82, + "line": 84, "column": 3 } }, @@ -186,11 +186,11 @@ "defaultMessage": "!!!Enable Password Lock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 83, + "line": 85, "column": 14 }, "end": { - "line": 86, + "line": 88, "column": 3 } }, @@ -199,11 +199,11 @@ "defaultMessage": "!!!Password", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 87, + "line": 89, "column": 16 }, "end": { - "line": 90, + "line": 92, "column": 3 } }, @@ -212,11 +212,11 @@ "defaultMessage": "!!!Allow using Touch ID to unlock", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 91, + "line": 93, "column": 22 }, "end": { - "line": 94, + "line": 96, "column": 3 } }, @@ -225,11 +225,11 @@ "defaultMessage": "!!!Lock after inactivity", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 95, + "line": 97, "column": 18 }, "end": { - "line": 98, + "line": 100, "column": 3 } }, @@ -238,11 +238,11 @@ "defaultMessage": "!!!Enable scheduled Do-not-Disturb", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 99, + "line": 101, "column": 23 }, "end": { - "line": 102, + "line": 104, "column": 3 } }, @@ -251,11 +251,11 @@ "defaultMessage": "!!!From", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 103, + "line": 105, "column": 21 }, "end": { - "line": 106, + "line": 108, "column": 3 } }, @@ -264,11 +264,11 @@ "defaultMessage": "!!!To", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 107, + "line": 109, "column": 19 }, "end": { - "line": 110, + "line": 112, "column": 3 } }, @@ -277,11 +277,11 @@ "defaultMessage": "!!!Language", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 111, + "line": 113, "column": 12 }, "end": { - "line": 114, + "line": 116, "column": 3 } }, @@ -290,11 +290,11 @@ "defaultMessage": "!!!Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 115, + "line": 117, "column": 12 }, "end": { - "line": 118, + "line": 120, "column": 3 } }, @@ -303,11 +303,11 @@ "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 119, + "line": 121, "column": 21 }, "end": { - "line": 122, + "line": 124, "column": 3 } }, @@ -316,11 +316,11 @@ "defaultMessage": "!!!Enable universal Dark Mode", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 123, + "line": 125, "column": 21 }, "end": { - "line": 126, + "line": 128, "column": 3 } }, @@ -329,11 +329,11 @@ "defaultMessage": "!!!Sidebar width", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 127, + "line": 129, "column": 22 }, "end": { - "line": 130, + "line": 132, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Service icon size", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 131, + "line": 133, "column": 12 }, "end": { - "line": 134, + "line": 136, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Accent color", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 135, + "line": 137, "column": 15 }, "end": { - "line": 138, + "line": 140, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Display disabled services tabs", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 139, + "line": 141, "column": 24 }, "end": { - "line": 142, + "line": 144, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Show unread message badge when notifications are disabled", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 143, + "line": 145, "column": 29 }, "end": { - "line": 146, + "line": 148, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Enable spell checking", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 147, + "line": 149, "column": 23 }, "end": { - "line": 150, + "line": 152, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!Enable GPU Acceleration", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 151, + "line": 153, "column": 25 }, "end": { - "line": 154, + "line": 156, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!Include beta versions", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 155, + "line": 157, "column": 8 }, "end": { - "line": 158, + "line": 160, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Disable updates", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 159, + "line": 161, "column": 13 }, "end": { - "line": 162, + "line": 164, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Enable Franz Todos", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 163, + "line": 165, "column": 15 }, "end": { - "line": 166, + "line": 168, "column": 3 } }, @@ -459,12 +459,12 @@ "defaultMessage": "!!!Keep all workspaces loaded", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 167, + "line": 169, "column": 27 }, "end": { - "line": 170, + "line": 172, "column": 3 } } -] +] \ No newline at end of file diff --git a/src/index.js b/src/index.js index 167d3897a..4da000f69 100644 --- a/src/index.js +++ b/src/index.js @@ -308,7 +308,9 @@ const createWindow = () => { } }); - if (!(settings.get('enableSystemTray') && settings.get('startMinimized'))) { + if (settings.get('startMinimized')) { + mainWindow.hide(); + } else { mainWindow.show(); } }; -- cgit v1.2.3-70-g09d2 From 5e53776f9b4f932b2eedebcd3b23ec95a66bf110 Mon Sep 17 00:00:00 2001 From: Bennett Date: Sun, 5 Apr 2020 09:33:23 +0200 Subject: #304 Add option to show draggable window area (#532) * #304 Add option to show draggable window area * Address merge conflicts * Re-apply npm run manage-translations Co-authored-by: Amine Mouafik --- .../settings/settings/EditSettingsForm.js | 2 ++ src/config.js | 1 + src/containers/settings/EditSettingsScreen.js | 10 ++++++++ src/features/appearance/index.js | 29 ++++++++++++++++++++++ src/i18n/locales/defaultMessages.json | 13 ++++++++++ src/i18n/locales/en-US.json | 4 +-- src/i18n/locales/whitelist_en-US.json | 3 ++- 7 files changed, 59 insertions(+), 3 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 1a36cedb5..055831e3b 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -401,6 +401,8 @@ export default @observer class EditSettingsForm extends Component { + {isMac && } +
{isMac && } diff --git a/src/config.js b/src/config.js index f617555df..cfb9a3658 100644 --- a/src/config.js +++ b/src/config.js @@ -95,6 +95,7 @@ export const DEFAULT_APP_SETTINGS = { privateNotifications: false, showDisabledServices: true, showMessageBadgeWhenMuted: true, + showDragArea: false, enableSpellchecking: true, spellcheckerLanguage: 'en-us', darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 7bf721bb0..fd6b334f1 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -146,6 +146,10 @@ const messages = defineMessages({ id: 'settings.app.form.showMessagesBadgesWhenMuted', defaultMessage: '!!!Show unread message badge when notifications are disabled', }, + showDragArea: { + id: 'settings.app.form.showDragArea', + defaultMessage: '!!!Show draggable area on window', + }, enableSpellchecking: { id: 'settings.app.form.enableSpellchecking', defaultMessage: '!!!Enable spell checking', @@ -223,6 +227,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e iconSize: settingsData.iconSize, accentColor: settingsData.accentColor, showMessageBadgeWhenMuted: settingsData.showMessageBadgeWhenMuted, + showDragArea: settingsData.showDragArea, enableSpellchecking: settingsData.enableSpellchecking, spellcheckerLanguage: settingsData.spellcheckerLanguage, beta: settingsData.beta, // we need this info in the main process as well @@ -422,6 +427,11 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e value: settings.all.app.showMessageBadgeWhenMuted, default: DEFAULT_APP_SETTINGS.showMessageBadgeWhenMuted, }, + showDragArea: { + label: intl.formatMessage(messages.showDragArea), + value: settings.all.app.showDragArea, + default: DEFAULT_APP_SETTINGS.showDragArea, + }, enableSpellchecking: { label: intl.formatMessage(messages.enableSpellchecking), value: !this.props.stores.user.data.isPremium && !spellcheckerConfig.isIncludedInCurrentPlan ? false : settings.all.app.enableSpellchecking, diff --git a/src/features/appearance/index.js b/src/features/appearance/index.js index 6dcdfc986..a14d1461e 100644 --- a/src/features/appearance/index.js +++ b/src/features/appearance/index.js @@ -63,6 +63,22 @@ function generateServiceRibbonWidthStyle(widthStr, iconSizeStr) { `; } +function generateShowDragAreaStyle(accentColor) { + return ` + .sidebar { + padding-top: 0px !important; + } + .window-draggable { + position: initial; + background-color: ${accentColor}; + } + #root { + /** Remove 22px from app height, otherwise the page will be to high */ + height: calc(100% - 22px); + } + `; +} + function generateStyle(settings) { let style = ''; @@ -70,6 +86,7 @@ function generateStyle(settings) { accentColor, serviceRibbonWidth, iconSize, + showDragArea, } = settings; if (accentColor !== DEFAULT_APP_SETTINGS.accentColor) { @@ -79,6 +96,9 @@ function generateStyle(settings) { || iconSize !== DEFAULT_APP_SETTINGS.iconSize) { style += generateServiceRibbonWidthStyle(serviceRibbonWidth, iconSize); } + if (showDragArea) { + style += generateShowDragAreaStyle(accentColor); + } return style; } @@ -121,4 +141,13 @@ export default function initAppearance(stores) { updateStyle(settings.all.app); }, ); + // Update draggable area + reaction( + () => ( + settings.all.app.showDragArea + ), + () => { + updateStyle(settings.all.app); + }, + ); } diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index e6b457515..ea72edbd5 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -6724,6 +6724,19 @@ "line": 114 } }, + { + "defaultMessage": "!!!Toggle Dark Mode", + "end": { + "column": 3, + "line": 117 + }, + "file": "src/lib/Menu.js", + "id": "menu.view.toggleDarkMode", + "start": { + "column": 18, + "line": 114 + } + }, { "defaultMessage": "!!!Toggle Todos Developer Tools", "end": { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index feb6ef124..14353e74e 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -157,8 +157,8 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", - "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleDarkMode": "Toggle Dark Mode", + "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", @@ -512,4 +512,4 @@ "workspaceDrawer.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.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} +} \ No newline at end of file diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index fe51488c7..32960f8ce 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json @@ -1 +1,2 @@ -[] +[ +] \ No newline at end of file -- cgit v1.2.3-70-g09d2 From 5e5945f591027ce6f160010bbd577b8ae8479035 Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Thu, 9 Apr 2020 05:27:58 +0530 Subject: Add support for Adaptable Dark Mode on Windows (#548) - Add support for making adaptable checkbox visible for Windows - Add support in UIStore to check for theme updated using the nativeTheme.on('update', () => {}) event and update the darkmode properties accordinly. - Update intl to change text to a more generic wording - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting" --- .../settings/settings/EditSettingsForm.js | 8 +++++--- src/containers/settings/EditSettingsScreen.js | 2 +- src/i18n/locales/af.json | 2 +- src/i18n/locales/ar.json | 2 +- src/i18n/locales/bs.json | 2 +- src/i18n/locales/ca.json | 2 +- src/i18n/locales/cs.json | 2 +- src/i18n/locales/da.json | 2 +- src/i18n/locales/defaultMessages.json | 2 +- src/i18n/locales/el.json | 2 +- src/i18n/locales/en-US.json | 2 +- src/i18n/locales/en.json | 1 + src/i18n/locales/es.json | 2 +- src/i18n/locales/fi.json | 2 +- src/i18n/locales/ga.json | 2 +- src/i18n/locales/he.json | 2 +- src/i18n/locales/hr.json | 2 +- src/i18n/locales/hu.json | 2 +- src/i18n/locales/id.json | 2 +- src/i18n/locales/it.json | 2 +- src/i18n/locales/ja.json | 2 +- src/i18n/locales/ka.json | 2 +- src/i18n/locales/ko.json | 2 +- src/i18n/locales/nl-BE.json | 2 +- src/i18n/locales/nl.json | 2 +- src/i18n/locales/no.json | 2 +- src/i18n/locales/pl.json | 2 +- src/i18n/locales/pt.json | 2 +- src/i18n/locales/ro.json | 2 +- src/i18n/locales/ru.json | 2 +- src/i18n/locales/sk.json | 2 +- src/i18n/locales/sl.json | 2 +- src/i18n/locales/sr.json | 2 +- src/i18n/locales/sv.json | 2 +- src/i18n/locales/tr.json | 2 +- src/i18n/locales/uk.json | 2 +- src/i18n/locales/vi.json | 2 +- src/i18n/locales/zh-CN.json | 2 +- src/i18n/locales/zh-HANT.json | 2 +- src/i18n/locales/zh.json | 2 +- src/stores/UIStore.js | 23 ++++++++++++++-------- 41 files changed, 59 insertions(+), 49 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 055831e3b..8d93737b8 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -12,7 +12,7 @@ import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; import Input from '../../ui/Input'; import { FRANZ_TRANSLATION } from '../../../config'; -import { isMac } from '../../../environment'; +import { isMac, isWindows } from '../../../environment'; const { systemPreferences, @@ -405,8 +405,8 @@ export default @observer class EditSettingsForm extends Component {
- {isMac && } - {!(isMac && isAdaptableDarkModeEnabled) && } + {(isMac || isWindows) && } + {!((isMac || isWindows) && isAdaptableDarkModeEnabled) && } {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && ( <> @@ -530,9 +530,11 @@ export default @observer class EditSettingsForm extends Component { + Ferdi is based on {' '} Franz + , a project published under the {' '} diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index fd6b334f1..4c99de9da 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -120,7 +120,7 @@ const messages = defineMessages({ }, adaptableDarkMode: { id: 'settings.app.form.adaptableDarkMode', - defaultMessage: '!!!Synchronize dark mode with my Mac\'s dark mode setting', + defaultMessage: '!!!Synchronize dark mode with my OS\'s dark mode setting', }, universalDarkMode: { id: 'settings.app.form.universalDarkMode', diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/af.json +++ b/src/i18n/locales/af.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 8a201e1ae..0ea7071d7 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/bs.json +++ b/src/i18n/locales/bs.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 49b892332..9d5135d94 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "La memòria cau de Ferdi està utilitzant {size} d'espai al disc", "settings.app.currentVersion": "Versió actual:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Obrir en segon plà", "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi a l'inici", "settings.app.form.beta": "Inclou versions beta", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 36e1c9e22..0071a3fd5 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi momentálně používá {size} místa na disku.", "settings.app.currentVersion": "Aktuální verze:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Spustit na pozadí", "settings.app.form.autoLaunchOnStart": "Spustit Ferdi při startu", "settings.app.form.beta": "Zahrnout beta verze", diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/da.json +++ b/src/i18n/locales/da.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index ea72edbd5..36d930218 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4479,7 +4479,7 @@ } }, { - "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", + "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "end": { "column": 3, "line": 124 diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 9223ee44f..1c38f8afa 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Το Ferdi χρησιμοποιεί αυτήν τη στιγμή {size} χώρου στο δίσκο.", "settings.app.currentVersion": "Τρέχουσα έκδοση:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Άνοιγμα στο παρασκήνιο", "settings.app.form.autoLaunchOnStart": "Εκκίνηση του Ferdi κατά την εκκίνηση του συστήματος", "settings.app.form.beta": "Συμπεριλάβετε εκδόσεις beta", diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 14353e74e..7e46ddc6f 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -274,7 +274,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index fb2cb3d7e..ff0d57435 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -219,6 +219,7 @@ "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.", "settings.app.currentVersion": "Leagan reatha:", "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús", "settings.app.form.beta": "Cuir leagain béite san áireamh", "settings.app.form.darkMode": "Join the Dark Side", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 76a917290..ae73ff7f9 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "El cache de Ferdi actualmente usa {size} de espacio en disco.", "settings.app.currentVersion": "Versión actual:", "settings.app.form.accentColor": "Color de realce", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano", "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi al iniciar", "settings.app.form.beta": "Incluir versiones beta", diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/fi.json +++ b/src/i18n/locales/fi.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index f9b3a11b3..3fc19437a 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Tá taisce Ferdi ag baint úsáid as {size} den spás diosca.", "settings.app.currentVersion": "Leagan reatha:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra", "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús", "settings.app.form.beta": "Cuir leagain béite san áireamh", diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 00f22fdaa..4d726e197 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi predmemorija trenutno koristi {size} prostora na disku", "settings.app.currentVersion": "Trenutna verzija:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", "settings.app.form.beta": "Obuhvati i beta verzije", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index f640289db..f396b995e 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "A Ferdi gyorsítótár jelenleg {size} lemezterületet használ.", "settings.app.currentVersion": "Aktuális verzió:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Megnyitás háttérben", "settings.app.form.autoLaunchOnStart": "Ferdi betöltése indításkor", "settings.app.form.beta": "Béta verziók keresése", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index a1ece26cc..d8244f4fe 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Singgahan Ferdi sedang menggunakan ruang disk {size}.", "settings.app.currentVersion": "Versi saat ini:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Buka di latar belakang", "settings.app.form.autoLaunchOnStart": "Jalankan Ferdi saat komputer dimulai", "settings.app.form.beta": "Sertakan versi beta", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 35bd4cd4e..43aae2a94 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi sta utilizzando {size} di spazio su disco.", "settings.app.currentVersion": "Versione attuale:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Apri in background", "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio", "settings.app.form.beta": "Includi versioni beta", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 0acb0153c..dfd29afa2 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "現在、Ferdiのキャッシュはディスクの{size}分を使用しています。", "settings.app.currentVersion": "現在のバージョン:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く", "settings.app.form.autoLaunchOnStart": "システム起動時にFerdiを開く", "settings.app.form.beta": "Betaバージョンを含める", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 57479beba..2af804612 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "ამჟამინდელი ვერსია:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "გახსენით ფონზე", "settings.app.form.autoLaunchOnStart": "გაეშვას Ferdi სისტემის ჩატვირთვისას", "settings.app.form.beta": "ჩართეთ ბეტა ვერსიები", diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index 7c293513b..65dea571c 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index bacf7b6ec..f63a8dc84 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache gebruikt momenteel {size} schijfruimte.", "settings.app.currentVersion": "Huidige versie:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", "settings.app.form.autoLaunchOnStart": "Lanceer Ferdi bij opstarten", "settings.app.form.beta": "Inclusief beta versies", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index f77304be0..41b1d1d19 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi gebruikt op dit moment {size} schijfruimte aan tijdelijke bestanden.", "settings.app.currentVersion": "Huidige versie:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", "settings.app.form.autoLaunchOnStart": "Open Ferdi bij opstarten", "settings.app.form.beta": "Inclusief bètaversies", diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/no.json +++ b/src/i18n/locales/no.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index dcb74e709..9eeff8408 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Pamięć podręczna zajmuje obecnie {size} przestrzeni dyskowej", "settings.app.currentVersion": "Aktualna wersja:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otwórz w tle", "settings.app.form.autoLaunchOnStart": "Uruchom Ferdi na początku", "settings.app.form.beta": "Uwzględnij wersje beta", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index b5904bb0a..e953c5778 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "O cache do Ferdi está usando {size} de espaço em disco atualmente.", "settings.app.currentVersion": "Versão atual:", "settings.app.form.accentColor": "Cor de destaque", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema", "settings.app.form.beta": "Incluir versões beta", diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 2bd7d3ebf..6fbec36f4 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Кэш занимает {size} на диске.", "settings.app.currentVersion": "Текущая версия:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Открывать в фоне", "settings.app.form.autoLaunchOnStart": "Запускать Ferdi при старте", "settings.app.form.beta": "Включая бета версии", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index f347a8341..06d10f1fd 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Vyrovnávacia pamäť Ferdi momentálne používa {size} miesta na disku.", "settings.app.currentVersion": "Súčasná verzia:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvoriť na pozadí", "settings.app.form.autoLaunchOnStart": "Spustiť Ferdi pri štarte", "settings.app.form.beta": "Vrátane beta verzií", diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 96787a6da..bd9c241df 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Франз кеш тренутно користи {size} простора на диску.", "settings.app.currentVersion": "Trenutna verzija:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", "settings.app.form.beta": "Obuhvati i beta verzije", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index ce5403434..36f3f7ed9 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Nuvarande version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Öppna i bakgrunden", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 45b91e2cf..0038d0a14 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi önbelleği şu anda {size} disk alanı kullanıyor.", "settings.app.currentVersion": "Geçerli sürüm:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Arka planda aç", "settings.app.form.autoLaunchOnStart": "Ferdi'ı başlangıçta aç", "settings.app.form.beta": "Beta versiyonları dahil et", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 50c1aa80e..9c1cedab5 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Кеш, який використовує Ferdi, займає {size} дискового простору.", "settings.app.currentVersion": "Поточна версія:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі", "settings.app.form.autoLaunchOnStart": "Запускати Ferdi на початку", "settings.app.form.beta": "Включити бета-версії", diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/vi.json +++ b/src/i18n/locales/vi.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/zh-CN.json b/src/i18n/locales/zh-CN.json index c852ebe60..b617f7e0a 100644 --- a/src/i18n/locales/zh-CN.json +++ b/src/i18n/locales/zh-CN.json @@ -266,7 +266,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json index 5a35d4cf8..658304768 100644 --- a/src/i18n/locales/zh-HANT.json +++ b/src/i18n/locales/zh-HANT.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "當前版本:", "settings.app.form.accentColor": "強調顏色", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "背景啟動", "settings.app.form.autoLaunchOnStart": "開機時啟動", "settings.app.form.beta": "包含開發中版本", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index eedd34706..5c34e563b 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -270,7 +270,7 @@ "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", "settings.app.currentVersion": "Current version:", "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", "settings.app.form.beta": "Include beta versions", diff --git a/src/stores/UIStore.js b/src/stores/UIStore.js index 6941cf086..f6e059bfb 100644 --- a/src/stores/UIStore.js +++ b/src/stores/UIStore.js @@ -5,14 +5,14 @@ import { theme } from '@meetfranz/theme'; import { remote } from 'electron'; import Store from './lib/Store'; -import { isMac } from '../environment'; +import { isMac, isWindows } from '../environment'; const { nativeTheme, systemPreferences } = remote; export default class UIStore extends Store { @observable showServicesUpdatedInfoBar = false; - @observable isOsDarkThemeActive = isMac + @observable isOsDarkThemeActive = (isMac || isWindows) ? nativeTheme.shouldUseDarkColors : false; @@ -36,6 +36,13 @@ export default class UIStore extends Store { }, ); } + + if (isWindows) { + nativeTheme.on('updated', () => { + this.isOsDarkThemeActive = nativeTheme.shouldUseDarkColors; + this.actions.service.shareSettingsWithServiceProcess(); + }); + } } setup() { @@ -56,16 +63,16 @@ export default class UIStore extends Store { } @computed get isDarkThemeActive() { - const isMacWithAdaptableInDarkMode = isMac + const isMacOrWindowsWithAdaptableInDarkMode = (isMac || isWindows) && this.stores.settings.all.app.adaptableDarkMode && this.isOsDarkThemeActive; - const isMacWithoutAdaptableInDarkMode = isMac + const isMacOrWindowsWithoutAdaptableInDarkMode = (isMac || isWindows) && this.stores.settings.all.app.darkMode && !this.stores.settings.all.app.adaptableDarkMode; - const isNotMacInDarkMode = !isMac && this.stores.settings.all.app.darkMode; - return !!(isMacWithAdaptableInDarkMode - || isMacWithoutAdaptableInDarkMode - || isNotMacInDarkMode); + const isMacOrWindowsNotInDarkMode = !(isMac || isWindows) && this.stores.settings.all.app.darkMode; + return !!(isMacOrWindowsWithAdaptableInDarkMode + || isMacOrWindowsWithoutAdaptableInDarkMode + || isMacOrWindowsNotInDarkMode); } @computed get theme() { -- cgit v1.2.3-70-g09d2 From f013899bd27a7072f384e9c49e2179c2d61e99f8 Mon Sep 17 00:00:00 2001 From: Romain <46404814+yourcontact@users.noreply.github.com> Date: Thu, 9 Apr 2020 10:28:07 +0200 Subject: Refactor updates settings (#506) * Reorder updates toggle buttons * Updated 'Disable updates' message to 'Enable automatic updates' * Update 'noUpdates' to 'automaticUpdates' * Update 'noUpdates' to 'automaticUpdates' * Add condition for 'Include beta version' to show * Enable automatic updates by default * Update file so when automaticUpdates is true automatic updates are enabled * Fix conditions with enableUpdate * Apply code style * Fix wrong condition with enableUpdate * Delete unsued variable 'server' * Apply style code * Commit changes to submodule 'recipes' * Update default message to 'Enable updates' from 'Disable updates' * Update text to 'Enable updates' from 'Enable automatic update' * Add migration for updates settings * Update default messages to 'Enable updates' from 'Disable updates' * Remove empty line * Check for updates was disabled when updates were enabled * Avoid superfluous break line when updates are disabled * Add fragments to up-to-date message * Add fragments to up-to-date message * Remove file from previous commit * Remove extra line * Add 'Show draggable area on window' to en-US.json file * Apply prepare-code script changes Co-authored-by: Amine --- .../settings/settings/EditSettingsForm.js | 52 +++-- src/config.js | 2 +- src/containers/settings/EditSettingsScreen.js | 20 +- src/electron/ipc-api/autoUpdate.js | 7 +- src/i18n/locales/defaultMessages.json | 243 +++++++++++---------- src/i18n/locales/en-US.json | 5 +- src/i18n/locales/whitelist_en-US.json | 3 +- .../containers/settings/EditSettingsScreen.json | 43 ++-- src/i18n/messages/src/lib/Menu.json | 200 ++++++++--------- src/index.js | 2 +- src/stores/SettingsStore.js | 18 ++ 11 files changed, 322 insertions(+), 273 deletions(-) diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 8d93737b8..e1c2a2d4f 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js @@ -158,7 +158,7 @@ export default @observer class EditSettingsForm extends Component { isTodosEnabled: PropTypes.bool.isRequired, isTodosActivated: PropTypes.bool.isRequired, isWorkspaceEnabled: PropTypes.bool.isRequired, - noUpdates: PropTypes.bool.isRequired, + automaticUpdates: PropTypes.bool.isRequired, hibernationEnabled: PropTypes.bool.isRequired, isDarkmodeEnabled: PropTypes.bool.isRequired, isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, @@ -196,7 +196,7 @@ export default @observer class EditSettingsForm extends Component { isSpellcheckerIncludedInCurrentPlan, isTodosEnabled, isWorkspaceEnabled, - noUpdates, + automaticUpdates, hibernationEnabled, isDarkmodeEnabled, openProcessManager, @@ -503,31 +503,39 @@ export default @observer class EditSettingsForm extends Component { {/* Updates */}

{intl.formatMessage(messages.headlineUpdates)}

- {updateIsReadyToInstall ? ( -
)} -
- - {intl.formatMessage(messages.currentVersion)} {' '} {remote.app.getVersion()} -
-
- {noUpdateAvailable && intl.formatMessage(messages.updateStatusUpToDate)} + {noUpdateAvailable && ( + <> +
+
+ {intl.formatMessage(messages.updateStatusUpToDate)} + + ) + }

- diff --git a/src/config.js b/src/config.js index cfb9a3658..bde710d44 100644 --- a/src/config.js +++ b/src/config.js @@ -120,7 +120,7 @@ export const DEFAULT_APP_SETTINGS = { hibernate: false, hibernationStrategy: 300, inactivityLock: 0, - noUpdates: false, + automaticUpdates: true, showServiceNavigationBar: false, universalDarkMode: true, adaptableDarkMode: true, diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 4c99de9da..74ec1909e 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js @@ -162,9 +162,9 @@ const messages = defineMessages({ id: 'settings.app.form.beta', defaultMessage: '!!!Include beta versions', }, - noUpdates: { - id: 'settings.app.form.noUpdates', - defaultMessage: '!!!Disable updates', + automaticUpdates: { + id: 'settings.app.form.automaticUpdates', + defaultMessage: '!!!Enable updates', }, enableTodos: { id: 'settings.app.form.enableTodos', @@ -231,14 +231,14 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e enableSpellchecking: settingsData.enableSpellchecking, spellcheckerLanguage: settingsData.spellcheckerLanguage, beta: settingsData.beta, // we need this info in the main process as well - noUpdates: settingsData.noUpdates, // we need this info in the main process as well + automaticUpdates: settingsData.automaticUpdates, // we need this info in the main process as well locale: settingsData.locale, // we need this info in the main process as well }, }); user.update({ userData: { - noUpdates: settingsData.noUpdates, + automaticUpdates: settingsData.automaticUpdates, beta: settingsData.beta, locale: settingsData.locale, }, @@ -491,10 +491,10 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e value: user.data.beta, default: DEFAULT_APP_SETTINGS.beta, }, - noUpdates: { - label: intl.formatMessage(messages.noUpdates), - value: settings.app.noUpdates, - default: DEFAULT_APP_SETTINGS.noUpdates, + automaticUpdates: { + label: intl.formatMessage(messages.automaticUpdates), + value: settings.app.automaticUpdates, + default: DEFAULT_APP_SETTINGS.automaticUpdates, }, }, }; @@ -556,7 +556,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e isTodosEnabled={todos.isFeatureActive} isWorkspaceEnabled={workspaces.isFeatureActive} lockingFeatureEnabled={lockingFeatureEnabled} - noUpdates={this.props.stores.settings.app.noUpdates} + automaticUpdates={this.props.stores.settings.app.automaticUpdates} hibernationEnabled={this.props.stores.settings.app.hibernate} isDarkmodeEnabled={this.props.stores.settings.app.darkMode} isAdaptableDarkModeEnabled={this.props.stores.settings.app.adaptableDarkMode} diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js index 506aecdf7..8c4d908dc 100644 --- a/src/electron/ipc-api/autoUpdate.js +++ b/src/electron/ipc-api/autoUpdate.js @@ -4,15 +4,13 @@ import { autoUpdater } from 'electron-updater'; const debug = require('debug')('Ferdi:ipcApi:autoUpdate'); export default (params) => { - const disableUpdates = Boolean(params.settings.app.get('noUpdates')); + const enableUpdate = Boolean(params.settings.app.get('automaticUpdates')); - if (disableUpdates) { + if (!enableUpdate) { autoUpdater.autoInstallOnAppQuit = false; autoUpdater.autoDownload = false; } else if (process.platform === 'darwin' || process.platform === 'win32' || process.env.APPIMAGE) { ipcMain.on('autoUpdate', (event, args) => { - const enableUpdate = !params.settings.app.get('noUpdates'); - if (enableUpdate) { try { autoUpdater.autoInstallOnAppQuit = false; @@ -42,7 +40,6 @@ export default (params) => { autoUpdater.on('update-available', (event) => { debug('update-available'); - const enableUpdate = !params.settings.app.get('noUpdates'); if (enableUpdate) { params.mainWindow.webContents.send('autoUpdate', { version: event.version, diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 36d930218..56d0b1971 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -4570,81 +4570,94 @@ } }, { - "defaultMessage": "!!!Enable spell checking", + "defaultMessage": "!!!Show draggable area on window", "end": { "column": 3, "line": 152 }, "file": "src/containers/settings/EditSettingsScreen.js", + "id": "settings.app.form.showDragArea", + "start": { + "column": 16, + "line": 149 + } + }, + { + "defaultMessage": "!!!Enable spell checking", + "end": { + "column": 3, + "line": 156 + }, + "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableSpellchecking", "start": { "column": 23, - "line": 149 + "line": 153 } }, { "defaultMessage": "!!!Enable GPU Acceleration", "end": { "column": 3, - "line": 156 + "line": 160 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableGPUAcceleration", "start": { "column": 25, - "line": 153 + "line": 157 } }, { "defaultMessage": "!!!Include beta versions", "end": { "column": 3, - "line": 160 + "line": 164 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.beta", "start": { "column": 8, - "line": 157 + "line": 161 } }, { - "defaultMessage": "!!!Disable updates", + "defaultMessage": "!!!Enable updates", "end": { "column": 3, - "line": 164 + "line": 168 }, "file": "src/containers/settings/EditSettingsScreen.js", - "id": "settings.app.form.noUpdates", + "id": "settings.app.form.automaticUpdates", "start": { - "column": 13, - "line": 161 + "column": 20, + "line": 165 } }, { "defaultMessage": "!!!Enable Franz Todos", "end": { "column": 3, - "line": 168 + "line": 172 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.enableTodos", "start": { "column": 15, - "line": 165 + "line": 169 } }, { "defaultMessage": "!!!Keep all workspaces loaded", "end": { "column": 3, - "line": 172 + "line": 176 }, "file": "src/containers/settings/EditSettingsScreen.js", "id": "settings.app.form.keepAllWorkspacesLoaded", "start": { "column": 27, - "line": 169 + "line": 173 } } ], @@ -6712,640 +6725,640 @@ } }, { - "defaultMessage": "!!!Toggle Developer Tools", + "defaultMessage": "!!!Toggle Dark Mode", "end": { "column": 3, "line": 117 }, "file": "src/lib/Menu.js", - "id": "menu.view.toggleDevTools", + "id": "menu.view.toggleDarkMode", "start": { "column": 18, "line": 114 } }, { - "defaultMessage": "!!!Toggle Dark Mode", + "defaultMessage": "!!!Toggle Developer Tools", "end": { "column": 3, - "line": 117 + "line": 121 }, "file": "src/lib/Menu.js", - "id": "menu.view.toggleDarkMode", + "id": "menu.view.toggleDevTools", "start": { "column": 18, - "line": 114 + "line": 118 } }, { "defaultMessage": "!!!Toggle Todos Developer Tools", "end": { "column": 3, - "line": 121 + "line": 125 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleTodosDevTools", "start": { "column": 23, - "line": 118 + "line": 122 } }, { "defaultMessage": "!!!Toggle Service Developer Tools", "end": { "column": 3, - "line": 125 + "line": 129 }, "file": "src/lib/Menu.js", "id": "menu.view.toggleServiceDevTools", "start": { "column": 25, - "line": 122 + "line": 126 } }, { "defaultMessage": "!!!Reload Service", "end": { "column": 3, - "line": 129 + "line": 133 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadService", "start": { "column": 17, - "line": 126 + "line": 130 } }, { "defaultMessage": "!!!Reload Ferdi", "end": { "column": 3, - "line": 133 + "line": 137 }, "file": "src/lib/Menu.js", "id": "menu.view.reloadFranz", "start": { "column": 15, - "line": 130 + "line": 134 } }, { "defaultMessage": "!!!Lock Ferdi", "end": { "column": 3, - "line": 137 + "line": 141 }, "file": "src/lib/Menu.js", "id": "menu.view.lockFerdi", "start": { "column": 13, - "line": 134 + "line": 138 } }, { "defaultMessage": "!!!Minimize", "end": { "column": 3, - "line": 141 + "line": 145 }, "file": "src/lib/Menu.js", "id": "menu.window.minimize", "start": { "column": 12, - "line": 138 + "line": 142 } }, { "defaultMessage": "!!!Close", "end": { "column": 3, - "line": 145 + "line": 149 }, "file": "src/lib/Menu.js", "id": "menu.window.close", "start": { "column": 9, - "line": 142 + "line": 146 } }, { "defaultMessage": "!!!Learn More", "end": { "column": 3, - "line": 149 + "line": 153 }, "file": "src/lib/Menu.js", "id": "menu.help.learnMore", "start": { "column": 13, - "line": 146 + "line": 150 } }, { "defaultMessage": "!!!Changelog", "end": { "column": 3, - "line": 153 + "line": 157 }, "file": "src/lib/Menu.js", "id": "menu.help.changelog", "start": { "column": 13, - "line": 150 + "line": 154 } }, { "defaultMessage": "!!!Support", "end": { "column": 3, - "line": 157 + "line": 161 }, "file": "src/lib/Menu.js", "id": "menu.help.support", "start": { "column": 11, - "line": 154 + "line": 158 } }, { "defaultMessage": "!!!Copy Debug Information", "end": { "column": 3, - "line": 161 + "line": 165 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfo", "start": { "column": 13, - "line": 158 + "line": 162 } }, { "defaultMessage": "!!!Publish Debug Information", "end": { "column": 3, - "line": 165 + "line": 169 }, "file": "src/lib/Menu.js", "id": "menu.help.publishDebugInfo", "start": { "column": 20, - "line": 162 + "line": 166 } }, { "defaultMessage": "!!!Ferdi Debug Information", "end": { "column": 3, - "line": 169 + "line": 173 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfoCopiedHeadline", "start": { "column": 27, - "line": 166 + "line": 170 } }, { "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", "end": { "column": 3, - "line": 173 + "line": 177 }, "file": "src/lib/Menu.js", "id": "menu.help.debugInfoCopiedBody", "start": { "column": 23, - "line": 170 + "line": 174 } }, { "defaultMessage": "!!!Unlock with Touch ID", "end": { "column": 3, - "line": 177 + "line": 181 }, "file": "src/lib/Menu.js", "id": "locked.touchId", "start": { "column": 11, - "line": 174 + "line": 178 } }, { "defaultMessage": "!!!unlock via Touch ID", "end": { "column": 3, - "line": 181 + "line": 185 }, "file": "src/lib/Menu.js", "id": "locked.touchIdPrompt", "start": { "column": 17, - "line": 178 + "line": 182 } }, { "defaultMessage": "!!!Terms of Service", "end": { "column": 3, - "line": 185 + "line": 189 }, "file": "src/lib/Menu.js", "id": "menu.help.tos", "start": { "column": 7, - "line": 182 + "line": 186 } }, { "defaultMessage": "!!!Privacy Statement", "end": { "column": 3, - "line": 189 + "line": 193 }, "file": "src/lib/Menu.js", "id": "menu.help.privacy", "start": { "column": 11, - "line": 186 + "line": 190 } }, { "defaultMessage": "!!!File", "end": { "column": 3, - "line": 193 + "line": 197 }, "file": "src/lib/Menu.js", "id": "menu.file", "start": { "column": 8, - "line": 190 + "line": 194 } }, { "defaultMessage": "!!!View", "end": { "column": 3, - "line": 197 + "line": 201 }, "file": "src/lib/Menu.js", "id": "menu.view", "start": { "column": 8, - "line": 194 + "line": 198 } }, { "defaultMessage": "!!!Services", "end": { "column": 3, - "line": 201 + "line": 205 }, "file": "src/lib/Menu.js", "id": "menu.services", "start": { "column": 12, - "line": 198 + "line": 202 } }, { "defaultMessage": "!!!Window", "end": { "column": 3, - "line": 205 + "line": 209 }, "file": "src/lib/Menu.js", "id": "menu.window", "start": { "column": 10, - "line": 202 + "line": 206 } }, { "defaultMessage": "!!!Help", "end": { "column": 3, - "line": 209 + "line": 213 }, "file": "src/lib/Menu.js", "id": "menu.help", "start": { "column": 8, - "line": 206 + "line": 210 } }, { "defaultMessage": "!!!About Ferdi", "end": { "column": 3, - "line": 213 + "line": 217 }, "file": "src/lib/Menu.js", "id": "menu.app.about", "start": { "column": 9, - "line": 210 + "line": 214 } }, { "defaultMessage": "!!!What's new?", "end": { "column": 3, - "line": 217 + "line": 221 }, "file": "src/lib/Menu.js", "id": "menu.app.announcement", "start": { "column": 16, - "line": 214 + "line": 218 } }, { "defaultMessage": "!!!Settings", "end": { "column": 3, - "line": 221 + "line": 225 }, "file": "src/lib/Menu.js", "id": "menu.app.settings", "start": { "column": 12, - "line": 218 + "line": 222 } }, { "defaultMessage": "!!!Check for updates", "end": { "column": 3, - "line": 225 + "line": 229 }, "file": "src/lib/Menu.js", "id": "menu.app.checkForUpdates", "start": { "column": 19, - "line": 222 + "line": 226 } }, { "defaultMessage": "!!!Hide", "end": { "column": 3, - "line": 229 + "line": 233 }, "file": "src/lib/Menu.js", "id": "menu.app.hide", "start": { "column": 8, - "line": 226 + "line": 230 } }, { "defaultMessage": "!!!Hide Others", "end": { "column": 3, - "line": 233 + "line": 237 }, "file": "src/lib/Menu.js", "id": "menu.app.hideOthers", "start": { "column": 14, - "line": 230 + "line": 234 } }, { "defaultMessage": "!!!Unhide", "end": { "column": 3, - "line": 237 + "line": 241 }, "file": "src/lib/Menu.js", "id": "menu.app.unhide", "start": { "column": 10, - "line": 234 + "line": 238 } }, { "defaultMessage": "!!!Auto-hide menu bar", "end": { "column": 3, - "line": 241 + "line": 245 }, "file": "src/lib/Menu.js", "id": "menu.app.autohideMenuBar", "start": { "column": 19, - "line": 238 + "line": 242 } }, { "defaultMessage": "!!!Quit", "end": { "column": 3, - "line": 245 + "line": 249 }, "file": "src/lib/Menu.js", "id": "menu.app.quit", "start": { "column": 8, - "line": 242 + "line": 246 } }, { "defaultMessage": "!!!Add New Service...", "end": { "column": 3, - "line": 249 + "line": 253 }, "file": "src/lib/Menu.js", "id": "menu.services.addNewService", "start": { "column": 17, - "line": 246 + "line": 250 } }, { "defaultMessage": "!!!Add New Workspace...", "end": { "column": 3, - "line": 253 + "line": 257 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.addNewWorkspace", "start": { "column": 19, - "line": 250 + "line": 254 } }, { "defaultMessage": "!!!Open workspace drawer", "end": { "column": 3, - "line": 257 + "line": 261 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.openWorkspaceDrawer", "start": { "column": 23, - "line": 254 + "line": 258 } }, { "defaultMessage": "!!!Close workspace drawer", "end": { "column": 3, - "line": 261 + "line": 265 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.closeWorkspaceDrawer", "start": { "column": 24, - "line": 258 + "line": 262 } }, { "defaultMessage": "!!!Activate next service...", "end": { "column": 3, - "line": 265 + "line": 269 }, "file": "src/lib/Menu.js", "id": "menu.services.setNextServiceActive", "start": { "column": 23, - "line": 262 + "line": 266 } }, { "defaultMessage": "!!!Activate previous service...", "end": { "column": 3, - "line": 269 + "line": 273 }, "file": "src/lib/Menu.js", "id": "menu.services.activatePreviousService", "start": { "column": 27, - "line": 266 + "line": 270 } }, { "defaultMessage": "!!!Disable notifications & audio", "end": { "column": 3, - "line": 273 + "line": 277 }, "file": "src/lib/Menu.js", "id": "sidebar.muteApp", "start": { "column": 11, - "line": 270 + "line": 274 } }, { "defaultMessage": "!!!Enable notifications & audio", "end": { "column": 3, - "line": 277 + "line": 281 }, "file": "src/lib/Menu.js", "id": "sidebar.unmuteApp", "start": { "column": 13, - "line": 274 + "line": 278 } }, { "defaultMessage": "!!!Workspaces", "end": { "column": 3, - "line": 281 + "line": 285 }, "file": "src/lib/Menu.js", "id": "menu.workspaces", "start": { "column": 14, - "line": 278 + "line": 282 } }, { "defaultMessage": "!!!Default", "end": { "column": 3, - "line": 285 + "line": 289 }, "file": "src/lib/Menu.js", "id": "menu.workspaces.defaultWorkspace", "start": { "column": 20, - "line": 282 + "line": 286 } }, { "defaultMessage": "!!!Todos", "end": { "column": 3, - "line": 289 + "line": 293 }, "file": "src/lib/Menu.js", "id": "menu.todos", "start": { "column": 9, - "line": 286 + "line": 290 } }, { "defaultMessage": "!!!Open Todos drawer", "end": { "column": 3, - "line": 293 + "line": 297 }, "file": "src/lib/Menu.js", "id": "menu.Todoss.openTodosDrawer", "start": { "column": 19, - "line": 290 + "line": 294 } }, { "defaultMessage": "!!!Close Todos drawer", "end": { "column": 3, - "line": 297 + "line": 301 }, "file": "src/lib/Menu.js", "id": "menu.Todoss.closeTodosDrawer", "start": { "column": 20, - "line": 294 + "line": 298 } }, { "defaultMessage": "!!!Enable Todos", "end": { "column": 3, - "line": 301 + "line": 305 }, "file": "src/lib/Menu.js", "id": "menu.todos.enableTodos", "start": { "column": 15, - "line": 298 + "line": 302 } }, { "defaultMessage": "!!!Home", "end": { "column": 3, - "line": 305 + "line": 309 }, "file": "src/lib/Menu.js", "id": "menu.services.goHome", "start": { "column": 17, - "line": 302 + "line": 306 } } ], diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 7e46ddc6f..9f19ad742 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -277,6 +277,7 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", @@ -294,7 +295,6 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", @@ -306,6 +306,7 @@ "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", + "settings.app.form.showDragArea": "Show draggable area on window", "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", @@ -512,4 +513,4 @@ "workspaceDrawer.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.

", "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", "workspaces.switchingIndicator.switchingTo": "Switching to" -} \ No newline at end of file +} diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index 32960f8ce..fe51488c7 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json @@ -1,2 +1 @@ -[ -] \ No newline at end of file +[] diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 267fa08cd..5e084c1e1 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -389,16 +389,29 @@ "column": 3 } }, + { + "id": "settings.app.form.showDragArea", + "defaultMessage": "!!!Show draggable area on window", + "file": "src/containers/settings/EditSettingsScreen.js", + "start": { + "line": 149, + "column": 16 + }, + "end": { + "line": 152, + "column": 3 + } + }, { "id": "settings.app.form.enableSpellchecking", "defaultMessage": "!!!Enable spell checking", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 149, + "line": 153, "column": 23 }, "end": { - "line": 152, + "line": 156, "column": 3 } }, @@ -407,11 +420,11 @@ "defaultMessage": "!!!Enable GPU Acceleration", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 153, + "line": 157, "column": 25 }, "end": { - "line": 156, + "line": 160, "column": 3 } }, @@ -420,24 +433,24 @@ "defaultMessage": "!!!Include beta versions", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 157, + "line": 161, "column": 8 }, "end": { - "line": 160, + "line": 164, "column": 3 } }, { - "id": "settings.app.form.noUpdates", - "defaultMessage": "!!!Disable updates", + "id": "settings.app.form.automaticUpdates", + "defaultMessage": "!!!Enable updates", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 161, - "column": 13 + "line": 165, + "column": 20 }, "end": { - "line": 164, + "line": 168, "column": 3 } }, @@ -446,11 +459,11 @@ "defaultMessage": "!!!Enable Franz Todos", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 165, + "line": 169, "column": 15 }, "end": { - "line": 168, + "line": 172, "column": 3 } }, @@ -459,11 +472,11 @@ "defaultMessage": "!!!Keep all workspaces loaded", "file": "src/containers/settings/EditSettingsScreen.js", "start": { - "line": 169, + "line": 173, "column": 27 }, "end": { - "line": 172, + "line": 176, "column": 3 } } diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 587754463..08028032d 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json @@ -312,8 +312,8 @@ } }, { - "id": "menu.view.toggleDevTools", - "defaultMessage": "!!!Toggle Developer Tools", + "id": "menu.view.toggleDarkMode", + "defaultMessage": "!!!Toggle Dark Mode", "file": "src/lib/Menu.js", "start": { "line": 114, @@ -325,15 +325,15 @@ } }, { - "id": "menu.view.toggleDarkMode", - "defaultMessage": "!!!Toggle Dark Mode", + "id": "menu.view.toggleDevTools", + "defaultMessage": "!!!Toggle Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 114, + "line": 118, "column": 18 }, "end": { - "line": 117, + "line": 121, "column": 3 } }, @@ -342,11 +342,11 @@ "defaultMessage": "!!!Toggle Todos Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 118, + "line": 122, "column": 23 }, "end": { - "line": 121, + "line": 125, "column": 3 } }, @@ -355,11 +355,11 @@ "defaultMessage": "!!!Toggle Service Developer Tools", "file": "src/lib/Menu.js", "start": { - "line": 122, + "line": 126, "column": 25 }, "end": { - "line": 125, + "line": 129, "column": 3 } }, @@ -368,11 +368,11 @@ "defaultMessage": "!!!Reload Service", "file": "src/lib/Menu.js", "start": { - "line": 126, + "line": 130, "column": 17 }, "end": { - "line": 129, + "line": 133, "column": 3 } }, @@ -381,11 +381,11 @@ "defaultMessage": "!!!Reload Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 130, + "line": 134, "column": 15 }, "end": { - "line": 133, + "line": 137, "column": 3 } }, @@ -394,11 +394,11 @@ "defaultMessage": "!!!Lock Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 134, + "line": 138, "column": 13 }, "end": { - "line": 137, + "line": 141, "column": 3 } }, @@ -407,11 +407,11 @@ "defaultMessage": "!!!Minimize", "file": "src/lib/Menu.js", "start": { - "line": 138, + "line": 142, "column": 12 }, "end": { - "line": 141, + "line": 145, "column": 3 } }, @@ -420,11 +420,11 @@ "defaultMessage": "!!!Close", "file": "src/lib/Menu.js", "start": { - "line": 142, + "line": 146, "column": 9 }, "end": { - "line": 145, + "line": 149, "column": 3 } }, @@ -433,11 +433,11 @@ "defaultMessage": "!!!Learn More", "file": "src/lib/Menu.js", "start": { - "line": 146, + "line": 150, "column": 13 }, "end": { - "line": 149, + "line": 153, "column": 3 } }, @@ -446,11 +446,11 @@ "defaultMessage": "!!!Changelog", "file": "src/lib/Menu.js", "start": { - "line": 150, + "line": 154, "column": 13 }, "end": { - "line": 153, + "line": 157, "column": 3 } }, @@ -459,11 +459,11 @@ "defaultMessage": "!!!Support", "file": "src/lib/Menu.js", "start": { - "line": 154, + "line": 158, "column": 11 }, "end": { - "line": 157, + "line": 161, "column": 3 } }, @@ -472,11 +472,11 @@ "defaultMessage": "!!!Copy Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 158, + "line": 162, "column": 13 }, "end": { - "line": 161, + "line": 165, "column": 3 } }, @@ -485,11 +485,11 @@ "defaultMessage": "!!!Publish Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 162, + "line": 166, "column": 20 }, "end": { - "line": 165, + "line": 169, "column": 3 } }, @@ -498,11 +498,11 @@ "defaultMessage": "!!!Ferdi Debug Information", "file": "src/lib/Menu.js", "start": { - "line": 166, + "line": 170, "column": 27 }, "end": { - "line": 169, + "line": 173, "column": 3 } }, @@ -511,11 +511,11 @@ "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", "file": "src/lib/Menu.js", "start": { - "line": 170, + "line": 174, "column": 23 }, "end": { - "line": 173, + "line": 177, "column": 3 } }, @@ -524,11 +524,11 @@ "defaultMessage": "!!!Unlock with Touch ID", "file": "src/lib/Menu.js", "start": { - "line": 174, + "line": 178, "column": 11 }, "end": { - "line": 177, + "line": 181, "column": 3 } }, @@ -537,11 +537,11 @@ "defaultMessage": "!!!unlock via Touch ID", "file": "src/lib/Menu.js", "start": { - "line": 178, + "line": 182, "column": 17 }, "end": { - "line": 181, + "line": 185, "column": 3 } }, @@ -550,11 +550,11 @@ "defaultMessage": "!!!Terms of Service", "file": "src/lib/Menu.js", "start": { - "line": 182, + "line": 186, "column": 7 }, "end": { - "line": 185, + "line": 189, "column": 3 } }, @@ -563,11 +563,11 @@ "defaultMessage": "!!!Privacy Statement", "file": "src/lib/Menu.js", "start": { - "line": 186, + "line": 190, "column": 11 }, "end": { - "line": 189, + "line": 193, "column": 3 } }, @@ -576,11 +576,11 @@ "defaultMessage": "!!!File", "file": "src/lib/Menu.js", "start": { - "line": 190, + "line": 194, "column": 8 }, "end": { - "line": 193, + "line": 197, "column": 3 } }, @@ -589,11 +589,11 @@ "defaultMessage": "!!!View", "file": "src/lib/Menu.js", "start": { - "line": 194, + "line": 198, "column": 8 }, "end": { - "line": 197, + "line": 201, "column": 3 } }, @@ -602,11 +602,11 @@ "defaultMessage": "!!!Services", "file": "src/lib/Menu.js", "start": { - "line": 198, + "line": 202, "column": 12 }, "end": { - "line": 201, + "line": 205, "column": 3 } }, @@ -615,11 +615,11 @@ "defaultMessage": "!!!Window", "file": "src/lib/Menu.js", "start": { - "line": 202, + "line": 206, "column": 10 }, "end": { - "line": 205, + "line": 209, "column": 3 } }, @@ -628,11 +628,11 @@ "defaultMessage": "!!!Help", "file": "src/lib/Menu.js", "start": { - "line": 206, + "line": 210, "column": 8 }, "end": { - "line": 209, + "line": 213, "column": 3 } }, @@ -641,11 +641,11 @@ "defaultMessage": "!!!About Ferdi", "file": "src/lib/Menu.js", "start": { - "line": 210, + "line": 214, "column": 9 }, "end": { - "line": 213, + "line": 217, "column": 3 } }, @@ -654,11 +654,11 @@ "defaultMessage": "!!!What's new?", "file": "src/lib/Menu.js", "start": { - "line": 214, + "line": 218, "column": 16 }, "end": { - "line": 217, + "line": 221, "column": 3 } }, @@ -667,11 +667,11 @@ "defaultMessage": "!!!Settings", "file": "src/lib/Menu.js", "start": { - "line": 218, + "line": 222, "column": 12 }, "end": { - "line": 221, + "line": 225, "column": 3 } }, @@ -680,11 +680,11 @@ "defaultMessage": "!!!Check for updates", "file": "src/lib/Menu.js", "start": { - "line": 222, + "line": 226, "column": 19 }, "end": { - "line": 225, + "line": 229, "column": 3 } }, @@ -693,11 +693,11 @@ "defaultMessage": "!!!Hide", "file": "src/lib/Menu.js", "start": { - "line": 226, + "line": 230, "column": 8 }, "end": { - "line": 229, + "line": 233, "column": 3 } }, @@ -706,11 +706,11 @@ "defaultMessage": "!!!Hide Others", "file": "src/lib/Menu.js", "start": { - "line": 230, + "line": 234, "column": 14 }, "end": { - "line": 233, + "line": 237, "column": 3 } }, @@ -719,11 +719,11 @@ "defaultMessage": "!!!Unhide", "file": "src/lib/Menu.js", "start": { - "line": 234, + "line": 238, "column": 10 }, "end": { - "line": 237, + "line": 241, "column": 3 } }, @@ -732,11 +732,11 @@ "defaultMessage": "!!!Auto-hide menu bar", "file": "src/lib/Menu.js", "start": { - "line": 238, + "line": 242, "column": 19 }, "end": { - "line": 241, + "line": 245, "column": 3 } }, @@ -745,11 +745,11 @@ "defaultMessage": "!!!Quit", "file": "src/lib/Menu.js", "start": { - "line": 242, + "line": 246, "column": 8 }, "end": { - "line": 245, + "line": 249, "column": 3 } }, @@ -758,11 +758,11 @@ "defaultMessage": "!!!Add New Service...", "file": "src/lib/Menu.js", "start": { - "line": 246, + "line": 250, "column": 17 }, "end": { - "line": 249, + "line": 253, "column": 3 } }, @@ -771,11 +771,11 @@ "defaultMessage": "!!!Add New Workspace...", "file": "src/lib/Menu.js", "start": { - "line": 250, + "line": 254, "column": 19 }, "end": { - "line": 253, + "line": 257, "column": 3 } }, @@ -784,11 +784,11 @@ "defaultMessage": "!!!Open workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 254, + "line": 258, "column": 23 }, "end": { - "line": 257, + "line": 261, "column": 3 } }, @@ -797,11 +797,11 @@ "defaultMessage": "!!!Close workspace drawer", "file": "src/lib/Menu.js", "start": { - "line": 258, + "line": 262, "column": 24 }, "end": { - "line": 261, + "line": 265, "column": 3 } }, @@ -810,11 +810,11 @@ "defaultMessage": "!!!Activate next service...", "file": "src/lib/Menu.js", "start": { - "line": 262, + "line": 266, "column": 23 }, "end": { - "line": 265, + "line": 269, "column": 3 } }, @@ -823,11 +823,11 @@ "defaultMessage": "!!!Activate previous service...", "file": "src/lib/Menu.js", "start": { - "line": 266, + "line": 270, "column": 27 }, "end": { - "line": 269, + "line": 273, "column": 3 } }, @@ -836,11 +836,11 @@ "defaultMessage": "!!!Disable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 270, + "line": 274, "column": 11 }, "end": { - "line": 273, + "line": 277, "column": 3 } }, @@ -849,11 +849,11 @@ "defaultMessage": "!!!Enable notifications & audio", "file": "src/lib/Menu.js", "start": { - "line": 274, + "line": 278, "column": 13 }, "end": { - "line": 277, + "line": 281, "column": 3 } }, @@ -862,11 +862,11 @@ "defaultMessage": "!!!Workspaces", "file": "src/lib/Menu.js", "start": { - "line": 278, + "line": 282, "column": 14 }, "end": { - "line": 281, + "line": 285, "column": 3 } }, @@ -875,11 +875,11 @@ "defaultMessage": "!!!Default", "file": "src/lib/Menu.js", "start": { - "line": 282, + "line": 286, "column": 20 }, "end": { - "line": 285, + "line": 289, "column": 3 } }, @@ -888,11 +888,11 @@ "defaultMessage": "!!!Todos", "file": "src/lib/Menu.js", "start": { - "line": 286, + "line": 290, "column": 9 }, "end": { - "line": 289, + "line": 293, "column": 3 } }, @@ -901,11 +901,11 @@ "defaultMessage": "!!!Open Todos drawer", "file": "src/lib/Menu.js", "start": { - "line": 290, + "line": 294, "column": 19 }, "end": { - "line": 293, + "line": 297, "column": 3 } }, @@ -914,11 +914,11 @@ "defaultMessage": "!!!Close Todos drawer", "file": "src/lib/Menu.js", "start": { - "line": 294, + "line": 298, "column": 20 }, "end": { - "line": 297, + "line": 301, "column": 3 } }, @@ -927,11 +927,11 @@ "defaultMessage": "!!!Enable Todos", "file": "src/lib/Menu.js", "start": { - "line": 298, + "line": 302, "column": 15 }, "end": { - "line": 301, + "line": 305, "column": 3 } }, @@ -940,11 +940,11 @@ "defaultMessage": "!!!Home", "file": "src/lib/Menu.js", "start": { - "line": 302, + "line": 306, "column": 17 }, "end": { - "line": 305, + "line": 309, "column": 3 } } diff --git a/src/index.js b/src/index.js index 4da000f69..594097288 100644 --- a/src/index.js +++ b/src/index.js @@ -292,7 +292,7 @@ const createWindow = () => { }); mainWindow.on('show', () => { - debug('Skip taskbar: false'); + debug('Skip taskbar: true'); mainWindow.setSkipTaskbar(false); }); diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index f83bc21ad..799ba3f5a 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js @@ -282,5 +282,23 @@ export default class SettingsStore extends Store { debug('Migrated old todo setting to new custom todo setting'); } + + if (!this.all.migration['5.4.4-beta.4-settings']) { + this.actions.settings.update({ + type: 'app', + data: { + automaticUpdates: !(legacySettings.noUpdates), + }, + }); + + this.actions.settings.update({ + type: 'migration', + data: { + '5.4.4-beta.4-settings': true, + }, + }); + + debug('Migrated updates settings'); + } } } -- cgit v1.2.3-70-g09d2 From c6b8b887a433862dfe6741268fc454f293f75930 Mon Sep 17 00:00:00 2001 From: Stefan Koshy Date: Thu, 9 Apr 2020 14:12:16 -0400 Subject: Minor spelling fixes in README (#552) --- README.md | 8 ++++---- src/config.js | 10 +++++----- src/scripts/add-crowdin-contributors.js | 2 +- 3 files changed, 10 insertions(+), 10 deletions(-) diff --git a/README.md b/README.md index 0ffbecffd..9b42d4f5e 100644 --- a/README.md +++ b/README.md @@ -53,12 +53,12 @@ ### What is Ferdi? -Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additonal features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com). +Ferdi is a messaging browser that allows you to combine your favorite messaging services into one application. It is based on Franz - a software already used by thousands of people - with the difference that Ferdi gives you many additional features and doesn't restrict its usage! Ferdi is compatible with your existing Franz account so you can continue right where you left off. Find out more about Ferdi and its features on [getferdi.com](https://getferdi.com). ## Features - [x] Ferdi puts all your messaging services into one place - [x] Native support for 100+ services -- [x] Workspaces to keep your personal and work life seperated +- [x] Workspaces to keep your personal and work life separated - [x] Support for multiple accounts on any service - [x] Dark Mode support for all of your services - [x] Optional cloud sync to keep your services synchronized between devices @@ -98,7 +98,7 @@ You can download Ferdi for Windows, Mac and Linux on [Ferdi's download page](htt ### Or use AUR (Arch Linux) -Ferdi has three seperate AUR packages you can use: +Ferdi has three separate AUR packages you can use: - **[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. - **[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. - **[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. @@ -152,7 +152,7 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`. - [x] Adds better support for macOS dark mode - [x] Adds option to disable reload of services after resuming Ferdi ([#442](https://github.com/getferdi/ferdi/issues/442)) - [x] Comes with a custom branding proper to Ferdi -- [x] Adds better seperation in settings +- [x] Adds better separation in settings - [x] Adds various other UI improvements - [x] Improves documentation of development so more developers can help making Ferdi even better diff --git a/src/config.js b/src/config.js index bde710d44..45b840b0a 100644 --- a/src/config.js +++ b/src/config.js @@ -36,13 +36,13 @@ export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; export const KEEP_WS_LOADED_USID = '0a0aa000-0a0a-49a0-a000-a0a0a0a0a0a0'; export const HIBERNATION_STRATEGIES = { - 10: 'Extemely Fast Hibernation (10sec)', + 10: 'Extremely Fast Hibernation (10sec)', 30: 'Very Fast Hibernation (30sec)', 60: 'Fast Hibernation (1min)', 300: 'Normal Hibernation (5min)', 600: 'Slow Hibernation (10min)', 1800: 'Very Slow Hibernation (30min)', - 3600: 'Extemely Slow Hibernation (1hour)', + 3600: 'Extremely Slow Hibernation (1hour)', }; export const NAVIGATION_BAR_BEHAVIOURS = { @@ -64,13 +64,13 @@ export const TODO_APPS = { }; export const SIDEBAR_WIDTH = { - 35: 'Extemely slim sidebar', + 35: 'Extremely slim sidebar', 45: 'Very slim sidebar', 55: 'Slim sidebar', 68: 'Normal sidebar', 80: 'Wide sidebar', 90: 'Very wide sidebar', - 100: 'Extemely wide sidebar', + 100: 'Extremely wide sidebar', }; export const ICON_SIZES = { @@ -179,7 +179,7 @@ if (process.env.FERDI_APPDATA_DIR != null) { export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config'); -// Replacing app.asar is not beautiful but unforunately necessary +// Replacing app.asar is not beautiful but unfortunately necessary export const RECIPES_PATH = asarPath(path.join(__dirname, 'recipes')); export const ALLOWED_PROTOCOLS = [ diff --git a/src/scripts/add-crowdin-contributors.js b/src/scripts/add-crowdin-contributors.js index 7ad3df0ed..efe981b6e 100644 --- a/src/scripts/add-crowdin-contributors.js +++ b/src/scripts/add-crowdin-contributors.js @@ -22,7 +22,7 @@ membersEl.forEach((el) => { let picture = el.querySelector('img').getAttribute('src'); picture = picture.replace(/\?.+/, ''); - // Check if the text includes a seperate username + // Check if the text includes a separate username if (text.includes('(')) { const username = /(?<=\()\w*(?=\))/.exec(text)[0]; const name = /^.*(?= \()/.exec(text)[0]; -- cgit v1.2.3-70-g09d2 From 212f29c5d7ce15cf205adcd17063258b0be306ff Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Fri, 10 Apr 2020 12:41:22 +0530 Subject: Add notification & audio toggle action in tray context menu (#542) * feat: Add new tray menu item to enable / disable Notifications and Audio - Use ipcMain to listen to iniital App Settings which determines the current isAppMuted state and display menu item text accordingly - Use ipcMain to listen to updates to App Settings -> isAppMuted from the App Menu / Side Bar and display menu item text accordingly - When the user clicks on the Enable / Disable Notifications & Audio menu item in the Tray, pass a message to the app via window.webContents.send with channel 'muteApp' - In stores/AppStore.js, use an ipcRenderer to toggleMuteApp() - To get the initial app state to the main process, pass a channel 'initialAppSettings' from SettingsStore which the tray class can listen to. * feat - System Tray menu item for Muting App - Fix lint errors * feat: Provide a menu item in the tray bar icon to Mute/Unmute the application - Revert package-lock.json to the previous commit. --- src/lib/Tray.js | 66 +++++++++++++++++++++++++++++++-------------- src/stores/AppStore.js | 4 +++ src/stores/SettingsStore.js | 1 + 3 files changed, 51 insertions(+), 20 deletions(-) diff --git a/src/lib/Tray.js b/src/lib/Tray.js index 84ee8e3bb..3700cca27 100644 --- a/src/lib/Tray.js +++ b/src/lib/Tray.js @@ -1,5 +1,5 @@ import { - app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, + app, Menu, nativeImage, nativeTheme, systemPreferences, Tray, ipcMain, } from 'electron'; import path from 'path'; @@ -14,29 +14,55 @@ export default class TrayIcon { themeChangeSubscriberId = null; + trayMenu = null; + + trayMenuTemplate = [ + { + label: 'Show Ferdi', + click() { + if (app.mainWindow.isMinimized()) { + app.mainWindow.restore(); + } + app.mainWindow.show(); + app.mainWindow.focus(); + }, + }, + { + label: 'Disable Notifications & Audio', + click() { + app.mainWindow.webContents.send('muteApp'); + }, + }, + { + label: 'Quit Ferdi', + click() { + app.quit(); + }, + }, + ]; + + _updateTrayMenu(appSettings) { + if (appSettings.type === 'app') { + const { isAppMuted } = appSettings.data; + this.trayMenuTemplate[1].label = isAppMuted ? 'Enable Notifications && Audio' : 'Disable Notifications && Audio'; + this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate); + } + } + show() { if (this.trayIcon) return; this.trayIcon = new Tray(this._getAsset('tray', INDICATOR_TRAY_PLAIN)); - const trayMenuTemplate = [ - { - label: 'Show Ferdi', - click() { - if (app.mainWindow.isMinimized()) { - app.mainWindow.restore(); - } - app.mainWindow.show(); - app.mainWindow.focus(); - }, - }, { - label: 'Quit Ferdi', - click() { - app.quit(); - }, - }, - ]; - const trayMenu = Menu.buildFromTemplate(trayMenuTemplate); + this.trayMenu = Menu.buildFromTemplate(this.trayMenuTemplate); + + ipcMain.on('initialAppSettings', (event, appSettings) => { + this._updateTrayMenu(appSettings); + }); + + ipcMain.on('updateAppSettings', (event, appSettings) => { + this._updateTrayMenu(appSettings); + }); this.trayIcon.on('click', () => { if (app.mainWindow.isMinimized()) { @@ -50,7 +76,7 @@ export default class TrayIcon { }); this.trayIcon.on('right-click', () => { - this.trayIcon.popUpContextMenu(trayMenu); + this.trayIcon.popUpContextMenu(this.trayMenu); }); if (process.platform === 'darwin') { diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 593bf341e..c8adb9c3c 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -179,6 +179,10 @@ export default class AppStore extends Store { this.stores.router.push(url); }); + ipcRenderer.on('muteApp', () => { + this._toggleMuteApp(); + }); + this.locale = this._getDefaultLocale(); setTimeout(() => { diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js index 799ba3f5a..227eb2145 100644 --- a/src/stores/SettingsStore.js +++ b/src/stores/SettingsStore.js @@ -110,6 +110,7 @@ export default class SettingsStore extends Store { } debug('Get appSettings resolves', resp.type, resp.data); Object.assign(this._fileSystemSettingsCache[resp.type], resp.data); + ipcRenderer.send('initialAppSettings', resp); }); this.fileSystemSettingsTypes.forEach((type) => { -- cgit v1.2.3-70-g09d2 From 305874c6415eb8250fe1b9156cd9b1e0ea353446 Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Fri, 10 Apr 2020 14:53:04 +0100 Subject: docs: add JakeSteam as a contributor (#556) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 640437a17..44ec2a82a 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -474,6 +474,15 @@ "contributions": [ "code" ] + }, + { + "login": "JakeSteam", + "name": "Jake Lee", + "avatar_url": "https://avatars2.githubusercontent.com/u/12380876?v=4", + "profile": "https://jakelee.co.uk", + "contributions": [ + "content" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index 9b42d4f5e..b9196deed 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -344,6 +344,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Marouane R

💻
Roman

💻
Mahadevan Sreenivasan

💻 +
Jake Lee

🖋 -- cgit v1.2.3-70-g09d2 From ab39660497a45e843a3e7ffb6035b5d564ec5ee9 Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Fri, 10 Apr 2020 19:53:38 +0530 Subject: Fix cache clearing not working in Windows 10 (#541) (#544) * fix: Clear caches which is not working in Windows 10 (#541) - In AppStore, the partition directory of allorphanedserviceIds are attempted to be removed during clear cache. However, atleast in Windows, certain files like Cookies, indexedDB and other autogenerated ones during session creation are locked and hence fs.removeDirectory throws an exception. I have added a try catch around this piece of code to avoid uncaught exceptions which causes the spinner to spin indefnitely and prevents execution of further code - From electron docs - I found that calling session.clearstorage([options]) is a better way to clear session storage data. Hence, in LocalApi.js, we are clearing out all possible storages and quotas of all services and the default session. More info in this link - https://www.electronjs.org/docs/api/session#sesclearstoragedataoptions * refactor: LocalApi - refactor clearAppCache and clearCache(serviceId) as suggested by @eandrogehlen * refactor: #544 - Remove clearAppCache from server/LocalApi.js to use clearCache for clearing both service and application sessions. * fix: clear_cache - update function anme in AppStore.js to 'clearCache' instead of 'clearAppCache'. This got missed out during the refactor. Apologies. --- src/api/LocalApi.js | 4 ++-- src/api/server/LocalApi.js | 17 +++++++---------- src/stores/AppStore.js | 9 ++++++--- 3 files changed, 15 insertions(+), 15 deletions(-) diff --git a/src/api/LocalApi.js b/src/api/LocalApi.js index e2a46874a..ccdedd3f5 100644 --- a/src/api/LocalApi.js +++ b/src/api/LocalApi.js @@ -16,7 +16,7 @@ export default class LocalApi { return this.local.getAppCacheSize(); } - clearAppCache() { - return this.local.clearAppCache(); + clearCache() { + return this.local.clearCache(); } } diff --git a/src/api/server/LocalApi.js b/src/api/server/LocalApi.js index 2d9af416f..cc8035523 100644 --- a/src/api/server/LocalApi.js +++ b/src/api/server/LocalApi.js @@ -41,17 +41,14 @@ export default class LocalApi { }); } - async clearCache(serviceId) { - const s = session.fromPartition(`persist:service-${serviceId}`); + async clearCache(serviceId = null) { + const s = serviceId ? session.fromPartition(`persist:service-${serviceId}`) : session.defaultSession; - debug('LocalApi::clearCache resolves', serviceId); - return s.clearCache(); - } - - async clearAppCache() { - const s = session.defaultSession; - - debug('LocalApi::clearCache clearAppCache'); + debug('LocalApi::clearCache resolves', (serviceId || 'clearAppCache')); + await s.clearStorageData({ + storages: ['appcache', 'cookies', 'filesystem', 'indexdb', 'localstorage', 'shadercache', 'websql', 'serviceworkers', 'cachestorage'], + quotas: ['temporary', 'persistent', 'syncable'], + }); return s.clearCache(); } } diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index c8adb9c3c..e2e3760a8 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -52,7 +52,7 @@ export default class AppStore extends Store { @observable getAppCacheSizeRequest = new Request(this.api.local, 'getAppCacheSize'); - @observable clearAppCacheRequest = new Request(this.api.local, 'clearAppCache'); + @observable clearAppCacheRequest = new Request(this.api.local, 'clearCache'); @observable autoLaunchOnStart = true; @@ -378,8 +378,11 @@ export default class AppStore extends Store { const allServiceIds = await getServiceIdsFromPartitions(); const allOrphanedServiceIds = allServiceIds.filter(id => !this.stores.services.all.find(s => id.replace('service-', '') === s.id)); - await Promise.all(allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id))); - + try { + await Promise.all(allOrphanedServiceIds.map(id => removeServicePartitionDirectory(id))); + } catch (ex) { + console.log('Error while deleting service partition directory - ', ex); + } await Promise.all(this.stores.services.all.map(s => this.actions.service.clearCache({ serviceId: s.id }))); await clearAppCache._promise; -- cgit v1.2.3-70-g09d2 From 9ab996a5f01ef88d72d8d5bb28fea518db8c88e6 Mon Sep 17 00:00:00 2001 From: Bennett Date: Sun, 12 Apr 2020 13:33:11 +0200 Subject: Improve user scripts (#559) * Add template to user.js creation * Add Userscript library * Add internalOpen function * Fix lint * Remove excess line break --- src/stores/ServicesStore.js | 12 +++- src/webview/lib/Userscript.js | 132 ++++++++++++++++++++++++++++++++++++++++++ src/webview/recipe.js | 11 +++- 3 files changed, 152 insertions(+), 3 deletions(-) create mode 100644 src/webview/lib/Userscript.js diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 54befee77..19e6f8299 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -351,7 +351,17 @@ export default class ServicesStore extends Store { // Create and open file const filePath = path.join(directory, file); - await fs.ensureFile(filePath); + if (file === 'user.js') { + if (!await fs.exists(filePath)) { + await fs.writeFile(filePath, `module.exports = (config, Ferdi) => { + // Write your scripts here + console.log("Hello, World!", config); +} +`); + } + } else { + await fs.ensureFile(filePath); + } shell.showItemInFolder(filePath); } diff --git a/src/webview/lib/Userscript.js b/src/webview/lib/Userscript.js new file mode 100644 index 000000000..2043d9fff --- /dev/null +++ b/src/webview/lib/Userscript.js @@ -0,0 +1,132 @@ +import { ipcRenderer } from 'electron'; + +export default class Userscript { + // Current ./lib/RecipeWebview instance + recipe = null; + + // Current ./recipe.js instance + controller = null; + + // Service configuration + config = {}; + + // Ferdi and service settings + settings = {}; + + settingsUpdateHandler = null; + + constructor(recipe, controller, config) { + this.recipe = recipe; + this.controller = controller; + this.internal_setSettings(controller.settings); + this.config = config; + } + + /** + * Set internal copy of Ferdi's settings. + * This is only used internally and can not be used to change any settings + * + * @param {*} settings + */ + // eslint-disable-next-line + internal_setSettings(settings) { + // This is needed to get a clean JS object from the settings itself to provide better accessibility + // Otherwise this will be a mobX instance + this.settings = JSON.parse(JSON.stringify(settings)); + + if (typeof this.settingsUpdateHandler === 'function') { + this.settingsUpdateHandler(); + } + } + + /** + * Register a settings handler to be executed when the settings change + * + * @param {function} handler + */ + onSettingsUpdate(handler) { + this.settingsUpdateHandler = handler; + } + + /** + * Set badge count for the current service + * @param {*} direct Direct messages + * @param {*} indirect Indirect messages + */ + setBadge(direct = 0, indirect = 0) { + if (this.recipe && this.recipe.setBadge) { + this.recipe.setBadge(direct, indirect); + } + } + + /** + * Inject CSS files into the current page + * + * @param {...string} files + */ + injectCSSFiles(...files) { + if (this.recipe && this.recipe.injectCSS) { + this.recipe.injectCSS(...files); + } + } + + /** + * Inject a CSS string into the page + * + * @param {string} css + */ + injectCSS(css) { + const style = document.createElement('style'); + style.textContent = css; + document.head.append(style); + } + + /** + * Open "Find in Page" popup + */ + openFindInPage() { + this.controller.openFindInPage(); + } + + /** + * Set or update value in storage + * + * @param {*} key + * @param {*} value + */ + set(key, value) { + window.localStorage.setItem( + `ferdi-user-${key}`, JSON.stringify(value), + ); + } + + /** + * Get value from storage + * + * @param {*} key + * @return Value of the key + */ + get(key) { + return JSON.parse(window.localStorage.getItem( + `ferdi-user-${key}`, + )); + } + + /** + * Open a URL in an external browser + * + * @param {*} url + */ + externalOpen(url) { + ipcRenderer.sendToHost('new-window', url); + } + + /** + * Open a URL in the current service + * + * @param {*} url + */ + internalOpen(url) { + window.location.href = url; + } +} diff --git a/src/webview/recipe.js b/src/webview/recipe.js index bad5a93b2..7b762af17 100644 --- a/src/webview/recipe.js +++ b/src/webview/recipe.js @@ -21,6 +21,7 @@ import ignoreList from './darkmode/ignore'; import customDarkModeCss from './darkmode/custom'; import RecipeWebview from './lib/RecipeWebview'; +import Userscript from './lib/Userscript'; import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker'; import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; @@ -55,6 +56,8 @@ class RecipeController { recipe = null; + userscript = null; + hasUpdatedBeforeRecipeLoaded = false; constructor() { @@ -130,7 +133,8 @@ class RecipeController { const userJsModule = require(userJs); if (typeof userJsModule === 'function') { - userJsModule(config); + this.userscript = new Userscript(this.recipe, this, config); + userJsModule(config, this.userscript); } }; @@ -154,6 +158,10 @@ class RecipeController { debug('System spellcheckerLanguage', this.settings.app.spellcheckerLanguage); debug('Service spellcheckerLanguage', this.settings.service.spellcheckerLanguage); + if (this.userscript && this.userscript.internal_setSettings) { + this.userscript.internal_setSettings(this.settings); + } + if (this.settings.app.enableSpellchecking) { debug('Setting spellchecker language to', this.spellcheckerLanguage); let { spellcheckerLanguage } = this; @@ -322,7 +330,6 @@ new RecipeController(); // Patching window.open const originalWindowOpen = window.open; - window.open = (url, frameName, features) => { if (!url && !frameName && !features) { // The service hasn't yet supplied a URL (as used in Skype). -- cgit v1.2.3-70-g09d2 From 5dd84f9ca68b55e892d0f13f37b284457990a4de Mon Sep 17 00:00:00 2001 From: Sampath Kumar Krishnan Date: Sun, 12 Apr 2020 15:32:17 +0000 Subject: Make update banner dismissable (#564) - Remove the sticky option passed to InfoBar in AppUpdateInfoBar - Use component state to manage visibility of AppUpdateInfoBar in AuthLayout and AppLayout. - InfoBar will be dismissed only for the current session Co-Authored-By: Mahadevan Sreenivasan Co-authored-by: Mahadevan Sreenivasan --- src/components/AppUpdateInfoBar.js | 4 +++- src/components/auth/AuthLayout.js | 9 ++++++++- src/components/layout/AppLayout.js | 9 ++++++++- 3 files changed, 19 insertions(+), 3 deletions(-) diff --git a/src/components/AppUpdateInfoBar.js b/src/components/AppUpdateInfoBar.js index 4108fdf12..f51fe029b 100644 --- a/src/components/AppUpdateInfoBar.js +++ b/src/components/AppUpdateInfoBar.js @@ -24,6 +24,7 @@ class AppUpdateInfoBar extends Component { static propTypes = { onInstallUpdate: PropTypes.func.isRequired, nextAppReleaseVersion: PropTypes.string, + onHide: PropTypes.func.isRequired, }; static defaultProps = { @@ -39,6 +40,7 @@ class AppUpdateInfoBar extends Component { const { onInstallUpdate, nextAppReleaseVersion, + onHide, } = this.props; return ( @@ -46,7 +48,7 @@ class AppUpdateInfoBar extends Component { type="primary" ctaLabel={intl.formatMessage(messages.buttonInstallUpdate)} onClick={onInstallUpdate} - sticky + onHide={onHide} > {intl.formatMessage(messages.updateAvailable)} diff --git a/src/components/auth/AuthLayout.js b/src/components/auth/AuthLayout.js index 0c5198583..4783fc6a0 100644 --- a/src/components/auth/AuthLayout.js +++ b/src/components/auth/AuthLayout.js @@ -27,6 +27,10 @@ export default @observer class AuthLayout extends Component { appUpdateIsDownloaded: PropTypes.bool.isRequired, }; + state = { + shouldShowAppUpdateInfoBar: true, + } + static defaultProps = { nextAppReleaseVersion: null, }; @@ -62,10 +66,13 @@ export default @observer class AuthLayout extends Component { {intl.formatMessage(globalMessages.notConnectedToTheInternet)} )} - {appUpdateIsDownloaded && ( + {appUpdateIsDownloaded && this.state.shouldShowAppUpdateInfoBar && ( { + this.setState({ shouldShowAppUpdateInfoBar: false }); + }} /> )} {isOnline && !isAPIHealthy && ( diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index fe43c42d2..3b732e602 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js @@ -81,6 +81,10 @@ class AppLayout extends Component { hasActivatedTrial: PropTypes.bool.isRequired, }; + state = { + shouldShowAppUpdateInfoBar: true, + } + static defaultProps = { children: [], nextAppReleaseVersion: null, @@ -181,10 +185,13 @@ class AppLayout extends Component { {intl.formatMessage(messages.servicesUpdated)} )} - {appUpdateIsDownloaded && ( + { appUpdateIsDownloaded && this.state.shouldShowAppUpdateInfoBar && ( { + this.setState({ shouldShowAppUpdateInfoBar: false }); + }} /> )} -- cgit v1.2.3-70-g09d2 From 9d16fd44c3658aededccb5cb22d543d07c423adf Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Sun, 12 Apr 2020 16:34:22 +0100 Subject: docs: add sampathBlam as a contributor (#565) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 3 ++- 2 files changed, 11 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 44ec2a82a..4bcb71751 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -483,6 +483,15 @@ "contributions": [ "content" ] + }, + { + "login": "sampathBlam", + "name": "Sampath Kumar Krishnan", + "avatar_url": "https://avatars1.githubusercontent.com/u/17728976?v=4", + "profile": "https://github.com/sampathBlam", + "contributions": [ + "code" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index b9196deed..5ee24c72e 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -345,6 +345,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Roman

💻
Mahadevan Sreenivasan

💻
Jake Lee

🖋 +
Sampath Kumar Krishnan

💻 -- cgit v1.2.3-70-g09d2 From 14f69a1f5ae50b5f963b547f06eec6dd3331d698 Mon Sep 17 00:00:00 2001 From: Ferdi Bot <56048320+FerdiBot@users.noreply.github.com> Date: Mon, 13 Apr 2020 14:05:42 +0200 Subject: New Crowdin translations (#495) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (French) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (French) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Swedish) * New translations en-US.json (Swedish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (French) Co-authored-by: Amine --- src/i18n/locales/af.json | 25 ++-- src/i18n/locales/ar.json | 25 ++-- src/i18n/locales/bs.json | 25 ++-- src/i18n/locales/ca.json | 25 ++-- src/i18n/locales/cs.json | 25 ++-- src/i18n/locales/da.json | 25 ++-- src/i18n/locales/de.json | 29 ++-- src/i18n/locales/el.json | 25 ++-- src/i18n/locales/es.json | 25 ++-- src/i18n/locales/fi.json | 25 ++-- src/i18n/locales/fr.json | 27 ++-- src/i18n/locales/ga.json | 25 ++-- src/i18n/locales/he.json | 25 ++-- src/i18n/locales/hr.json | 25 ++-- src/i18n/locales/hu.json | 25 ++-- src/i18n/locales/id.json | 25 ++-- src/i18n/locales/it.json | 25 ++-- src/i18n/locales/ja.json | 25 ++-- src/i18n/locales/ka.json | 25 ++-- src/i18n/locales/ko.json | 25 ++-- src/i18n/locales/nl-BE.json | 25 ++-- src/i18n/locales/nl.json | 25 ++-- src/i18n/locales/no.json | 25 ++-- src/i18n/locales/pl.json | 25 ++-- src/i18n/locales/pt-BR.json | 37 ++--- src/i18n/locales/pt.json | 25 ++-- src/i18n/locales/ro.json | 25 ++-- src/i18n/locales/ru.json | 25 ++-- src/i18n/locales/sk.json | 25 ++-- src/i18n/locales/sl.json | 25 ++-- src/i18n/locales/sr.json | 25 ++-- src/i18n/locales/sv.json | 333 +++++++++++++++++++++--------------------- src/i18n/locales/tr.json | 25 ++-- src/i18n/locales/uk.json | 25 ++-- src/i18n/locales/vi.json | 25 ++-- src/i18n/locales/zh-HANT.json | 25 ++-- src/i18n/locales/zh.json | 163 +++++++++++---------- 37 files changed, 750 insertions(+), 639 deletions(-) diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/af.json +++ b/src/i18n/locales/af.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 0ea7071d7..015ada370 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "إعادة التحميل", "app.errorHandler.headline": "لقد حدث خطب ما", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "تغيرات في فريدي {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "رجاء قيم بشراء رخصة الدعم لبرنامج فريدي للتخلص من وقت الانتظار", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/bs.json +++ b/src/i18n/locales/bs.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 9d5135d94..30ecf9766 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Recarrega", "app.errorHandler.headline": "Quelcom ha anat malament", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Enviar", "feature.announcements.changelog.headline": "Canvis en Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Si us plau, compra una llicència de suport per a Ferdi per saltar l'espera", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Torna a carregar Ferdi", "menu.view.reloadService": "Torna a carregar el servei", "menu.view.resetZoom": "Mida real", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Activa serveis per a desenvolupadors", "menu.view.toggleFullScreen": "Activa la pantalla completa", "menu.view.toggleServiceDevTools": "Habilita les eines de desenvolupador de serveis", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Obrir en segon plà", "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi a l'inici", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Inclou versions beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Activar acceleració GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimitza Ferdi a la safata del sistema", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Mantén a Ferdi en segon pla en tancar la finestra", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Mostra les pestanyes dels serveis desactivats", "settings.app.form.showMessagesBadgesWhenMuted": "Mostra la insígnia de missatges no llegits quan les notificacions estiguin desactivades", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Configuració", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Memòria cau", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Ajuda'ns a traduir Ferdi en la teva llengua.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Actualització disponible, descarregant ...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Equip", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 0071a3fd5..3761c76f0 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Obnovit", "app.errorHandler.headline": "Něco se pokazilo", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Odeslat", "feature.announcements.changelog.headline": "Změny ve Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Kup si Ferdi Supporter licenci a nebudeš už muset čekat", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Obnovit Ferdie", "menu.view.reloadService": "Obnovit službu", "menu.view.resetZoom": "Skutečná velikost", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Zobrazit Vývojářské nástroje", "menu.view.toggleFullScreen": "Přepnout na celou obrazovku", "menu.view.toggleServiceDevTools": "Zobrazit Vývojářské nástroje pro službu", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Spustit na pozadí", "settings.app.form.autoLaunchOnStart": "Spustit Ferdi při startu", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Zahrnout beta verze", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Aktivovat GPU zrychlení", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimalizovat Ferdi do systémové lišty", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Ponechat Ferdie v pozadí při zavírání okna", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Zobrazit záložky vypnutých služeb", "settings.app.form.showMessagesBadgesWhenMuted": "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Nastavení", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Mezipaměť", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Pomozte nám přeložit Ferdi do svého jazyka.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Aktualizace k dispozici, stahování...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Tým", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/da.json +++ b/src/i18n/locales/da.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 32cbd0cd8..ee78dfc67 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Neu laden", "app.errorHandler.headline": "Es ist ein Fehler aufgetreten", + "changeserver.headline": "Server wechseln", + "changeserver.label": "Server", + "changeserver.submit": "Absenden", "feature.announcements.changelog.headline": "Was ist neu in Ferdi {version}", "feature.debugger.title": "Debug-Informationen veröffentlichen", "feature.delayApp.headline": "Bitte kaufe eine Ferdi Supporter Lizenz, um das Warten zu überspringen", @@ -116,7 +119,7 @@ "menu.edit.cut": "Ausschneiden", "menu.edit.delete": "Löschen", "menu.edit.emojiSymbols": "Emoji & Symbole", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "In Seite suchen", "menu.edit.paste": "Einfügen", "menu.edit.pasteAndMatchStyle": "Einfügen und Stil anpassen", "menu.edit.redo": "Wiederholen", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ferdi neu laden", "menu.view.reloadService": "Dienst neu laden", "menu.view.resetZoom": "Originalgröße", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Entwicklertools anzeigen", "menu.view.toggleFullScreen": "Vollbildmodus umschalten", "menu.view.toggleServiceDevTools": "Entwicklertools für Dienst anzeigen", @@ -270,10 +274,12 @@ "settings.app.cacheInfo": "Der Ferdi Cache belegt derzeit {size}.", "settings.app.currentVersion": "Aktuelle Version:", "settings.app.form.accentColor": "Akzentfarbe", - "settings.app.form.adaptableDarkMode": "Synchronisiere den Dunkelmodus mit dem Dunkelmodus meines Macs", + "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Im Hintergrund öffnen", "settings.app.form.autoLaunchOnStart": "Ferdi beim Systemstart ausführen", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Beta-Versionen einbeziehen", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Dunkles Design verwenden", "settings.app.form.enableGPUAcceleration": "Hardwarebeschleunigung aktivieren", "settings.app.form.enableLock": "Passwort-Sperre aktivieren", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Passwort", "settings.app.form.minimizeToSystemTray": "Ferdi in den Infobereich minimieren", "settings.app.form.navigationBarBehaviour": "Verhalten der Navigationsleiste", - "settings.app.form.noUpdates": "Updates deaktivieren", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Nachrichteninhalt nicht in Benachrichtigungen anzeigen", "settings.app.form.reloadAfterResume": "Ferdi nach dem aufwachen aus dem Standby neu laden", "settings.app.form.runInBackground": "Ferdi im Hintergrund behalten, wenn das Fenster geschlossen wird", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "Von", "settings.app.form.scheduledDNDStart": "Bis", "settings.app.form.sentry": "Telemetrie-Daten senden", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Größe der Sidebar", "settings.app.form.showDisabledServices": "Deaktivierte Services-Tabs anzeigen", "settings.app.form.showMessagesBadgesWhenMuted": "Ungelesene Nachrichten zeigen, wenn die Benachrichtigungen deaktiviert sind", - "settings.app.form.startMinimized": "Minimiert starten", - "settings.app.form.todoServer": "Todo-Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Universellen Dark Mode aktivieren", "settings.app.form.useTouchIdToUnlock": "Verwenden von Touch ID zum Entsperren von Ferdi erlauben", "settings.app.headline": "Einstellungen", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "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.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "Dieser Server wird für die Funktion \"Ferdi Todo\" verwendet. (Standard: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Hilf uns, Ferdi in Deine Sprache zu übersetzen.", "settings.app.universalDarkModeInfo": "Universeller Dark Mode versucht dynamisch Dienste abzudunkeln, die vom normalen Dark Mode noch nicht unterstützt werden.", "settings.app.updateStatusAvailable": "Update verfügbar, lädt herunter ...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Unterstütze unsere Open Collective Kampagne", "settings.supportFerdi.share": "Sag es deinen Freunden", "settings.supportFerdi.title": "Magst du Ferdi? Teile die Liebe!", - "settings.team.contentHeadline": "Ferdi für Teams", - "settings.team.copy": "Mit Ferdi für Teams kannst du Kolleginnen und Kollegen per Email-Invite in dein Team einladen und ihre Abonnments in den Einstellungen deines Accounts verwalten. Verschwende keine Zeit mehr damit, Lizenzen für jedes Teammitglied einzeln einzurichten, vergiss mehrfache Rechnungen und unterschiedliche Abrechnungszeiträume - alles unter einem Dach.", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "settings.team.intro": "Mit Ferdi für Teams kannst du Premium Lizenzen für Kolleginnen und Kollegen oder Freunde und Familienmitglieder kaufen und verwalten - so viele du willst.", - "settings.team.manageAction": "Verwalte dein Team auf getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams sind nicht verfügbar", "settings.team.teamsUnavailableInfo": "Teams sind derzeit nur bei der Verwendung des Franz Servers und nach der Zahlung für Franz Professional verfügbar.\nBitte ändern Sie Ihren Server auf https://api.franzinfra.com, um Teams zu verwenden.", "settings.team.upgradeAction": "Account Upgrade durchführen", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 1c38f8afa..f51060d96 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Επαναφόρτωση", "app.errorHandler.headline": "Κάτι δεν λειτουργεί", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Υποβολή", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ανανέωση Ferdi", "menu.view.reloadService": "Ανανέωση Υπηρεσίας", "menu.view.resetZoom": "Πραγματικό μέγεθος", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Άνοιγμα Εργαλειοθήκη Προγραμματιστών", "menu.view.toggleFullScreen": "Λειτουργία πλήρους οθόνης", "menu.view.toggleServiceDevTools": "Λειτουργεία Υπηρεσίασ Εργαλειοθήκης Προγραμματιστών", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Άνοιγμα στο παρασκήνιο", "settings.app.form.autoLaunchOnStart": "Εκκίνηση του Ferdi κατά την εκκίνηση του συστήματος", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Συμπεριλάβετε εκδόσεις beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Ενεργοποιήση Ενίσχυσης GPU ", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Ελαχιστοποίηση του Ferdi στη γραμμή ειδοποιήσεων", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Κρατήστε το Ferdi στο παρασκήνιο κατά το κλείσιμο του παραθύρου", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Προβολή καρτελών των απενεργοποιημένων υπηρεσιών", "settings.app.form.showMessagesBadgesWhenMuted": "Προβολή του εικονιδίου μη αναγνωσμένου μηνύματος όταν οι ειδοποιήσεις είναι απενεργοποιημένες", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Ρυθμίσεις", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Λανθάνουσα μνήμη", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Βοηθήστε μας να μεταφράσουμε το Ferdi στη δική σας γλώσσα.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Υπάρχει διαθέσιμη ενημέρωση, γίνεται λήψη...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Ομάδα", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index ae73ff7f9..2d0a0023f 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Volver a cargar", "app.errorHandler.headline": "Algo salió mal.", + "changeserver.headline": "Cambiar servidor", + "changeserver.label": "Servidor", + "changeserver.submit": "Enviar", "feature.announcements.changelog.headline": "Cambios en Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Por favor compra una Licencia de Soporte de Ferdi para omitir la espera", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Recargar Ferdi", "menu.view.reloadService": "Recargar Servicio", "menu.view.resetZoom": "Tamaño Actual", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Activar las Herramientas para Desarrolladores", "menu.view.toggleFullScreen": "Cambiar a Pantalla Completa", "menu.view.toggleServiceDevTools": "Mostrar Herramientas de Servicios para Desarrolladores", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Abrir en segundo plano", "settings.app.form.autoLaunchOnStart": "Iniciar Ferdi al iniciar", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Incluir versiones beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Activar tema oscuro", "settings.app.form.enableGPUAcceleration": "Habilitar aceleración de GPU", "settings.app.form.enableLock": "Activar bloqueo por contraseña", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Contraseña", "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi a la bandeja del sistema", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Desactivar actualizaciones", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "No mostrar contenido de mensajes en notificaciones", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Mantener Ferdi en segundo plano al cerrar la ventana", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "A", "settings.app.form.scheduledDNDStart": "De", "settings.app.form.sentry": "Enviar datos de telemetría", - "settings.app.form.server": "Servidor", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Mostrar pestañas de servicios desactivados", "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar la insignia de mensajes sin leer cuando las notificaciones están desactivadas", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Servidor de tareas", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Activar modo oscuro universal", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Configuración", @@ -321,10 +326,8 @@ "settings.app.scheduledDNDInfo": "El \"No molestar\" programado permite definir un período de tiempo en el que no recibir notificaciones de Ferdi.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Caché", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Ayúdanos a traducir Ferdi a tu idioma.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Actualización disponible, descargando...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi para equipos", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Equipo", - "settings.team.intro": "¿Usted y su equipo usan a Ferdi? Ahora puede administrar las suscripciones Premium para tantos colegas, amigos o familiares como desee, todo desde una misma cuenta.", - "settings.team.manageAction": "Gestione su equipo en getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Actualiza tu cuenta", diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/fi.json +++ b/src/i18n/locales/fi.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 665295e5a..6c53e7f81 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Actualiser", "app.errorHandler.headline": "On dirait que quelque chose ne va pas", + "changeserver.headline": "Changer de serveur", + "changeserver.label": "Serveur", + "changeserver.submit": "Soumettre", "feature.announcements.changelog.headline": "Les nouveaux changements dans Ferdi {version}", "feature.debugger.title": "Publier les informations de débogage", "feature.delayApp.headline": "Achetez la licence Ferdi pour ne plus avoir de temps d'attente", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Recharger Ferdi", "menu.view.reloadService": "Redémarrer le service", "menu.view.resetZoom": "Taille actuelle", + "menu.view.toggleDarkMode": "Activer le mode sombre", "menu.view.toggleDevTools": "Activer les outils de développeur", "menu.view.toggleFullScreen": "Activer le mode plein écran", "menu.view.toggleServiceDevTools": "Activer les outils de développeur du service", @@ -270,10 +274,12 @@ "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.", "settings.app.currentVersion": "Version actuelle :", "settings.app.form.accentColor": "Couleur d'accentuation", - "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac", + "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec l'option mode sombre du système", "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage", + "settings.app.form.automaticUpdates": "Activer les mises à jour", "settings.app.form.beta": "Accepter les versions bêta", + "settings.app.form.customTodoServer": "Serveur Todo personnalisé", "settings.app.form.darkMode": "Activer le mode sombre", "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU", "settings.app.form.enableLock": "Activer le verrouillage par mot de passe", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Mot de passe", "settings.app.form.minimizeToSystemTray": "Minimiser Ferdi dans la zone de notification", "settings.app.form.navigationBarBehaviour": "Comportement de la barre de navigation", - "settings.app.form.noUpdates": "Désactiver les mises à jours", + "settings.app.form.predefinedTodoServer": "Serveur Todo", "settings.app.form.privateNotifications": "Ne pas afficher le contenu des notifications", "settings.app.form.reloadAfterResume": "Recharger Ferdi après la reprise du système", "settings.app.form.runInBackground": "Garder Ferdi ouvert en arrière-plan à la fermeture de la fenêtre", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "À", "settings.app.form.scheduledDNDStart": "De", "settings.app.form.sentry": "Envoyer des données de télémétrie", - "settings.app.form.server": "Serveur", "settings.app.form.serviceRibbonWidth": "Largeur du menu", "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés", "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées", - "settings.app.form.startMinimized": "Démarrer en mode réduit", - "settings.app.form.todoServer": "Serveur Todo", + "settings.app.form.showDragArea": "Afficher les zones de glisser-déposer dans la fenêtre", + "settings.app.form.startMinimized": "Démarrage minimisé", "settings.app.form.universalDarkMode": "Activer le mode sombre universel", "settings.app.form.useTouchIdToUnlock": "Autoriser l'utilisation de TouchID pour déverrouiller Ferdi", "settings.app.headline": "Paramètres", @@ -321,10 +326,8 @@ "settings.app.scheduledDNDInfo": "Planifier le Ne-pas-Déranger vous permet de définir une période de temps dans lequel vous ne voulez pas de notifications de Ferdi.", "settings.app.scheduledDNDTimeInfo": "Le temps est en format 24 heures. La fin du temps peut être avant le début du temps (ex: début 17:00, fin 09:00) pour activer le Ne-pas-Déranger durant la nuit.", "settings.app.sentryInfo": "L'envoi de données de télémétrie nous permet de trouver des erreurs dans Ferdi - nous n'enverrons aucune information personnelle comme vos données de message! La modification de cette option nécessite le redémarrage de Ferdi.", - "settings.app.serverInfo": "On vous recommande de vous déconnecter après d'avoir changer votre serveur dans vos paramètres au risque que les paramètres ne sois pas sauvegarder.", - "settings.app.serverMoneyInfo": "Vous êtes entrain d'utilisé le serveur officiel de Franz pour Ferdi.\nNous savons que Ferdi vous permet d'utilisé toutes les fonctionnalités gratuitement mais vous êtes toujours entrain d'utilisé les resources des serveurs de Franz - dont les créateurs paient pour.\nS'il vous plaît [Link 1]payé pour un compte Franz[/Link] ou [Link 2]utilisé un ferdi-serveur hébergé par soi-même[/Link] (si vous avez la connaissance et les resources pour).\nEn utilisant Ferdi, vous profité beaucoup des recettes de Franz, resources serveurs et son développement.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "Ce serveur va être utilisé pour la fonction \"Ferdi Todo\". (défaut: https://app.franztodos.com)", + "settings.app.todoServerInfo": "Ce serveur sera utilisé pour la fonctionnalité \"Ferdi Todo\".", "settings.app.translationHelp": "Aidez-nous à traduire Ferdi dans votre langue.", "settings.app.universalDarkModeInfo": "Le mode sombre universel tente de générer dynamiquement des styles de mode sombre pour les services qui ne sont pas encore supportés.", "settings.app.updateStatusAvailable": "Mise à jour disponible, téléchargement en cours...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Supporter notre Open Collective", "settings.supportFerdi.share": "Parlez en à vos Amis", "settings.supportFerdi.title": "Vous aimez Ferdi? Répandez l'amour!", - "settings.team.contentHeadline": "Ferdi pour les équipes", - "settings.team.copy": "Ferdi pour Équipe t'offre la possibilité d'inviter des collègues dans ton équipe de travail en leur envoyant des invitations par courrier électronique et en gérant leurs abonnements dans les préférences de ton compte. Ne perds pas de temps à les gérer individuellement les factures multiples et les différents cycles de facturation - il suffit d'une seule équipe de travail pour gérer tout ça!", + "settings.team.contentHeadline": "Gestion d'équipe Franz", + "settings.team.copy": "La gestion d'équipe de Franz vous permet de gérer les abonnements Franz pour plusieurs utilisateurs. N’oubliez pas que le fait d’avoir un abonnement Franz Premium ne vous donnera aucun avantage dans l'utilisation de Ferdi : la seule raison pour laquelle vous avez encore accès à la gestion d’équipe est que vous pouvez gérer vos équipes Franz héritées et que vous ne perdez donc aucune fonctionnalité dans la gestion de votre compte.", "settings.team.headline": "Équipe", - "settings.team.intro": "Vous et votre équipes utilise Ferdi? Tu peux désormais gérer les abonnements Premium pour autant de collègues, amis ou membres de famille que tu souhaites, à partir d'un seul et même compte.", - "settings.team.manageAction": "Gère ton équipe sur getferdi.com", + "settings.team.intro": "Vous utilisez actuellement les serveurs Franz, c'est pourquoi vous avez accès à la gestion d'équipe.", + "settings.team.manageAction": "Gérez votre équipe sur meetfranz.com", "settings.team.teamsUnavailable": "Les équipes sont indisponibles", "settings.team.teamsUnavailableInfo": "Les équipes sont actuellement disponibles uniquement lorsque vous utilisez le serveur de Franz et après avoir payé pour Franz Professionnel. Veuillez changer votre serveur à https://api.franzinfra.com pour utiliser des équipes.", "settings.team.upgradeAction": "Améliorez votre compte", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 3fc19437a..5a701ac86 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Athlódáil", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Cuir isteach", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Athlódáil Ferdi", "menu.view.reloadService": "Athlódáil seirbhís", "menu.view.resetZoom": "Fíormhéid", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Scoránaigh uirlis forbróra", "menu.view.toggleFullScreen": "Scoránaigh mód lánscáileáin", "menu.view.toggleServiceDevTools": "Scoránaigh uirlis forbróra seirbhíse", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Oscail sa chúlra", "settings.app.form.autoLaunchOnStart": "Láinseáil Ferdi ón tús", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Cuir leagain béite san áireamh", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Cumasaigh luasghéarú APG", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Íoslaghdaigh Ferdi chuig tráidire an chórais", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Coimeád Ferdi sa chúlra nuair a dhúntar an fhuinneog", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Taispeáin tabanna do sheirbhísí dhíchumasaithe", "settings.app.form.showMessagesBadgesWhenMuted": "Taispeáin teachtaireachtaí neamhléite, nuair a dhíchumasaítear fógraí", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Socruithe", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Taisce", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Cabhraigh linn Ferdi a aistriú i do theanga.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Nuashonrú le fáil, ag íoslódáil...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Foireann", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 4d726e197..a3243b405 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Ponovno učitavanje", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Pošalji", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Obuhvati i beta verzije", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted": "Pokaži nepročitane značke poruka kad se obavještenja onemoguće", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Postavke", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Predmemorija", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Tim", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index f396b995e..d39a569cd 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Újratöltés", "app.errorHandler.headline": "Valami nem jött össze", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Küldés", "feature.announcements.changelog.headline": "Ferdi {version} változásai", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ferdi újrainditása", "menu.view.reloadService": "Szolgáltatás újraindítása", "menu.view.resetZoom": "Tényleges méret", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Fejlesztői eszközök ki/bekapcsolása", "menu.view.toggleFullScreen": "Teljes képernyős mód ki/bekapcsolása", "menu.view.toggleServiceDevTools": "Szolgáltatás Fejlesztői Eszközök ki/bekapcsolása", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Megnyitás háttérben", "settings.app.form.autoLaunchOnStart": "Ferdi betöltése indításkor", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Béta verziók keresése", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Hardveres gyorsítás engedélyezése", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Ferdi kicsinyítése a tálcára", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Ferdi fusson a háttérben az ablak bezárásakor", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Letiltott szolgáltatások megjelenítése", "settings.app.form.showMessagesBadgesWhenMuted": "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Beállítások", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Gyorsítótár", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Segíts nekünk a Ferdi-ot lefordítani a nyelvedre.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Frissítés elérhető, letöltés folyamatban...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "settings.team.copy": "A Ferdi for Teams lehetőséget teremt arra, hogy meghívd munkatársaidat a csapatodba email-en keresztül, és kezelhesd a Ferdi előfizetéseiket és fiókbeállításaikat. Ne fecséreld az idődet minden egyes csapattag regisztrációjára, felejtsd el a sok-sok egyéni számlát és különböző lejárati időt - egy mindenek felett!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Csapat", - "settings.team.intro": "Te és a csapatod Ferdi-ot használtok? Egy fiókból kezelheted kollégáid, barátaid vagy családtagjaid Prémium előfizetéseit.", - "settings.team.manageAction": "Csapat kezelése a getferdi.com-on", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Előfizetés", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index d8244f4fe..6065e05ab 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Muat Ulang", "app.errorHandler.headline": "Terjadi kesalahan", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Kirim", "feature.announcements.changelog.headline": "Perubahan dalam Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Beli Lisensi Pendukung Ferdi agar tidak perlu menunggu", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Muat Ulang Ferdi", "menu.view.reloadService": "Muat ulang Layanan", "menu.view.resetZoom": "Ukuran Sebenarnya", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Aktif/Nonaktifkan alat pengembang", "menu.view.toggleFullScreen": "Aktif/Nonaktifkan Layar Penuh", "menu.view.toggleServiceDevTools": "Aktif/Nonaktifkan layanan alat pengembang", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Buka di latar belakang", "settings.app.form.autoLaunchOnStart": "Jalankan Ferdi saat komputer dimulai", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Sertakan versi beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Aktifkan Akselerasi GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Perkecil Ferdi ke baki sistem", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Tetap jalankan Ferdi di latar belakang saat menutup jendela", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Tampilkan tab layanan yang dinonaktifkan", "settings.app.form.showMessagesBadgesWhenMuted": "Tampilkan lencana pesan belum dibaca saat pemberitahuan dinonaktifkan", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Pengaturan", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Singgahan", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Bantu kami menerjemahkan Ferdi ke bahasa Anda.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Versi baru tersedia, mengunduh...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi untuk Tim", - "settings.team.copy": "Ferdi untuk Tim menyediakan opsi untuk mengundang rekan kerja ke tim Anda dengan mengirimkan undangan email dan mengelola langganan mereka pada preferensi akun Anda. Jangan habiskan waktu Anda menyiapkan langganan bagi masing-masing anggota tim, lupakan berbagai faktur dan periode penagihan - satu tim untuk semua!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Tim", - "settings.team.intro": "Anda dan tim Anda menggunakan Ferdi? Kini Anda bisa mengelola langganan Premium untuk semua rekan kerja, teman, atau anggota keluar sebanyak yang Anda inginkan, semuanya cukup dari satu akun.", - "settings.team.manageAction": "Kelola Tim Anda di getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Tingkatkan Akun Anda", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 43aae2a94..68307be0c 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Ricarica", "app.errorHandler.headline": "Qualcosa è andato storto", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Invia", "feature.announcements.changelog.headline": "Modifiche in Ferdi {Version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Per favore, compra una Licenza Supporter di Ferdi per saltare l'attesa", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ricarica Ferdi", "menu.view.reloadService": "Ricarica Servizio", "menu.view.resetZoom": "Dimensione Attuale", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Attiva/Disattiva Strumenti Sviluppo", "menu.view.toggleFullScreen": "Attiva/Disattiva Schermo Intero", "menu.view.toggleServiceDevTools": "Attiva/Disattiva Strumenti per Sviluppatori di Servizi", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Apri in background", "settings.app.form.autoLaunchOnStart": "Esegui Ferdi all'avvio", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Includi versioni beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Attiva modalità scura", "settings.app.form.enableGPUAcceleration": "Attiva Accelerazione GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimizza Ferdi nell'area di notifica", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Mantieni Ferdi in esecuzione quando chiudi la finestra", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Mostra schede servizi disattivati", "settings.app.form.showMessagesBadgesWhenMuted": "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Impostazioni", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Aiutaci a tradurre Ferdi nella tua lingua.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Aggiornamento disponibile, download in corso...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi per i Team", - "settings.team.copy": "Ferdi per i Team ti dà la possibilità di invitare collaboratori al tuo team, invitandoli per email e gestendo la loro iscrizione all'interno delle preferenze del tuo account. Non perdere tempo impostando le iscrizioni di un singolo collaboratore individualmente, dimenticati di fatture multiple e cicli differenti di fatturazione - un team per comandarli tutti!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Gruppo", - "settings.team.intro": "Tu e il tuo team usate Ferdi? Ora puoi gestire le sottoscrizioni Premium per tutti i colleghi, amici e famigliari che vuoi, tutto da un singolo account.", - "settings.team.manageAction": "Gestisci il tuo Team su getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Aggiorna il tuo Account", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index dfd29afa2..78dde7913 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "再読み込み", "app.errorHandler.headline": "間違えている部分があります", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "送信", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Ferdiをすぐに起動するには、Ferdi サポーターライセンスを購入してください。", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "再起動", "menu.view.reloadService": "サービスをリロードする", "menu.view.resetZoom": "元のサイズ", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "開発者ツールを切り替え", "menu.view.toggleFullScreen": "全画面表示の切り替え", "menu.view.toggleServiceDevTools": "サービス開発者ツールを切り替え", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "バックグラウンドで開く", "settings.app.form.autoLaunchOnStart": "システム起動時にFerdiを開く", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Betaバージョンを含める", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "GPUアクセラレーションを有効にする", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Ferdiをシステムトレイに最小化する", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "ウインドウを閉じた際にFerdiをバックグラウンドで実行させておく", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "無効化されたサービスのタブを表示する", "settings.app.form.showMessagesBadgesWhenMuted": "通知の無効時に未読メッセージ件数を表示する", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "設定", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "キャッシュ", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Ferdiの翻訳作業にご協力をお願いします。", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "更新が見つかりました。ダウンロードしています...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "チーム", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 2af804612..e17ec57fd 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "ჩატვირთვა", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "დადასტურება", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "გახსენით ფონზე", "settings.app.form.autoLaunchOnStart": "გაეშვას Ferdi სისტემის ჩატვირთვისას", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "ჩართეთ ბეტა ვერსიები", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "ჩაკეცეთ Ferdi სისტემის უჯრაში", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "დატოვეთ Ferdi გაშვებული როდესაც ფანჯარა დაიხურება", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "პარამეტრები", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "განახლება ხელმისაწვდომია, იწყება გადმოწერა...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "გუნდი", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index 65dea571c..5d2e0afed 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "새로고침", "app.errorHandler.headline": "문제가 발생했습니다.", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Ferdi {version} 변경점", "feature.debugger.title": "디버깅 정보 공개", "feature.delayApp.headline": "Ferdi Supporter License를 구매하여 대기시간을 스킵하세요.", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index f63a8dc84..86d622d3f 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Herladen", "app.errorHandler.headline": "Er ging iets mis", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Verzenden", "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {versie}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Neem een Ferdi Supporter Licentie om niet meer te hoeven wachten", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ferdi Herladen", "menu.view.reloadService": "Service Herladen", "menu.view.resetZoom": "Werkelijke Grootte", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Ontwikkelaarstools Aan/Uit", "menu.view.toggleFullScreen": "Volledig Scherm Aan/Uit", "menu.view.toggleServiceDevTools": "Service Ontwikkelaarstools Aan/Uit", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", "settings.app.form.autoLaunchOnStart": "Lanceer Ferdi bij opstarten", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Inclusief beta versies", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "GPU Acceleratie Activeren", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar de systeembalk", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Houd Ferdi op de achtergrond wanneer het venster gesloten wordt", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Instellingen", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help ons om Ferdi te vertalen naar uw taal.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Frans voor Teams", - "settings.team.copy": "Ferdi voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk teamlid apart, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team regeert alles!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "settings.team.intro": "Gebruiken jij en je team Ferdi? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt, allemaal vanaf één account.", - "settings.team.manageAction": "Beheer je Team op getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade je Account", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 41b1d1d19..9e32f47b1 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Herladen", "app.errorHandler.headline": "Er is iets mis gegaan", + "changeserver.headline": "Server wijzigen", + "changeserver.label": "Server", + "changeserver.submit": "Verzenden", "feature.announcements.changelog.headline": "Wijzigingen in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Sponsor Ferdi om wachten over te slaan", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Herlaad Ferdi", "menu.view.reloadService": "Een service opnieuw laden", "menu.view.resetZoom": "Werkelijke grootte", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Ontwikkelaarstools aan/uit", "menu.view.toggleFullScreen": "Volledig scherm aan/uit", "menu.view.toggleServiceDevTools": "Service ontwikkelaarstools aan/uit", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open op de achtergrond", "settings.app.form.autoLaunchOnStart": "Open Ferdi bij opstarten", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Inclusief bètaversies", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Schakel videokaart-acceleratie in ", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Wachtwoord", "settings.app.form.minimizeToSystemTray": "Minimaliseer Ferdi naar systeemvak", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Toon geen bericht-inhoud in meldingen", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Houd Ferdi open op de achtergrond wanneer het venster gesloten wordt", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Toon uitgeschakelde services", "settings.app.form.showMessagesBadgesWhenMuted": "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Instellingen", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help ons om Ferdi uw taal te laten spreken.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update beschikbaar, downloaden...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi voor Teams", - "settings.team.copy": "Ferdi voor Teams geeft je de mogelijkheid om collega's uit te nodigen voor je team door hen een e-mail te sturen en hun inschrijvingen te beheren in je accountvoorkeuren. Verspil geen tijd met het instellen van inschrijvingen voor elk individueel teamlid, vergeet meerdere facturen en verschillende afrekeningsperiodes - één team om alles te regelen!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "settings.team.intro": "Gebruiken jij en je team Ferdi? Je kunt nu Premium inschrijvingen beheren voor zoveel collega's, vrienden, of familieleden als je wilt. En dat alles vanuit één account.", - "settings.team.manageAction": "Beheer je Team op getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Jouw Account opwaarderen", diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/no.json +++ b/src/i18n/locales/no.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index 9eeff8408..ea01997ca 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Odśwież", "app.errorHandler.headline": "Coś poszło nie tak.", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Wyślij", "feature.announcements.changelog.headline": "Zmiany we Ferdiie {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Aby nie czekać, kup licencję Ferdi Supporter", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Przeładuj Ferdi", "menu.view.reloadService": "Przeładuj usługę", "menu.view.resetZoom": "Domyślny rozmiar", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Pokaż narzędzia developerskie", "menu.view.toggleFullScreen": "Przełącz tryb pełnoekranowy", "menu.view.toggleServiceDevTools": "Włącz narzędzia developerskie usługi", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otwórz w tle", "settings.app.form.autoLaunchOnStart": "Uruchom Ferdi na początku", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Uwzględnij wersje beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Włącz akcelerację GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Zminimalizuj aplikację Ferdi", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Zachowaj aplikację Ferdi w tle po zamknięciu okna", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Wyłącz wyświetlanie zakładek z usługami", "settings.app.form.showMessagesBadgesWhenMuted": "Pokaż licznik nieprzeczytanych wiadomości gdy powiadomienia są wyłączone", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Ustawienia", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Pamięć podręczna", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Pomóż nam tłumaczyć Ferdi na Twój język.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Dostępna aktualizacja, pobieram...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Zespoły Ferdi", - "settings.team.copy": "Ferdi umożliwia zespołom opcję zapraszania pracowników do zespołu wysyłając im maila z zaproszeniem i pozwala zarządzać ich subskrypcją w ustawieniach konta. Nie trać czasu na ustawianie subskrypcji dla każdego zespołu osobno, zapomnij o wielu fakturach i różnych cyklicznych opłatach - jeden zespół do zarządzania wszystkim!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Zespół", - "settings.team.intro": "Czy Ty i zesół używacie programu Ferdi? Możesz teraz zarządzać subskrypcją Premium dla tylu kolegów, przyjaciół lub rodziny ilu chcesz, wszystko w obrębie jednego konta.", - "settings.team.manageAction": "Zarządzaj zespołem na getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Ulepsz swoje konto", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 7693baa1a..7f85c5996 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Recarregar", - "app.errorHandler.headline": "Alguma coisa correu mal", + "app.errorHandler.headline": "Algo deu errado", + "changeserver.headline": "Alterar servidor", + "changeserver.label": "Servidor", + "changeserver.submit": "Submeter", "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", "feature.debugger.title": "Publicar informações de depuração", "feature.delayApp.headline": "Por favor compre uma licença Ferdi Supporter para saltar a fila de espera", @@ -8,8 +11,8 @@ "feature.delayApp.trial.action": "Sim, Quero a versão experimental do Ferdi Profissional de 14 dias", "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action": "Faz parte do grupo de apoio do Ferdi", - "feature.delayApp.upgrade.actionShort": "Atualiza a tua conta", + "feature.delayApp.upgrade.action": "Faça parte do grupo de apoiadores do Ferdi", + "feature.delayApp.upgrade.actionShort": "Atualize sua conta", "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", "feature.planSelection.cta.stayOnFree": "Stay on Free", "feature.planSelection.cta.trial": "Start my free 14-days Trial", @@ -34,7 +37,7 @@ "feature.publishDebugInfo.terms": "Termos do Serviço", "feature.publishDebugInfo.title": "Publicar informações de depuração", "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", - "feature.quickSwitch.search": "Localizar...", + "feature.quickSwitch.search": "Buscar...", "feature.quickSwitch.title": "Troca Rápida", "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.", "feature.shareFranz.action.email": "Enviar por e-mail", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Recarregar Ferdi", "menu.view.reloadService": "Recarregar serviço", "menu.view.resetZoom": "Tamanho Real", + "menu.view.toggleDarkMode": "Alternar Modo Escuro", "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", "menu.view.toggleFullScreen": "Ativar/Desativar Tela Cheia", "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", @@ -175,7 +179,7 @@ "password.noUser": "Não existe nenhuma conta associada a esse endereço de e-mail", "password.submit.label": "Submeter", "password.successInfo": "Por favor verifique o seu endereço de e-mail", - "premiumFeature.button.upgradeAccount": "Atualiza a tua conta", + "premiumFeature.button.upgradeAccount": "Atualize sua conta", "pricing.features.accountSync": "Sincronização Automática", "pricing.features.adFree": "Sem publicidade para sempre", "pricing.features.appDelays": "Sem Telas de Espera", @@ -270,10 +274,12 @@ "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.", "settings.app.currentVersion": "Versão atual", "settings.app.form.accentColor": "Cor de destaque", - "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac", + "settings.app.form.adaptableDarkMode": "Sincronizar o modo escuro com a configuração de modo escuro do meu SO", "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador", + "settings.app.form.automaticUpdates": "Habilitar atualizações", "settings.app.form.beta": "Incluir versões instáveis (beta)", + "settings.app.form.customTodoServer": "Servidor de Todo personalizado", "settings.app.form.darkMode": "Habilitar modo noturno", "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", "settings.app.form.enableLock": "Habilitar bloqueio por senha", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Senha", "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema", "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação", - "settings.app.form.noUpdates": "Desativar atualizações", + "settings.app.form.predefinedTodoServer": "Servidor Todo", "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", "settings.app.form.reloadAfterResume": "Recarregar Ferdi após restabelecer o sistema", "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "Até", "settings.app.form.scheduledDNDStart": "Desde", "settings.app.form.sentry": "Enviar dados de telemetria", - "settings.app.form.server": "Servidor", "settings.app.form.serviceRibbonWidth": "Largura da barra lateral", "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", - "settings.app.form.startMinimized": "Iniciar minimizado na bandeja", - "settings.app.form.todoServer": "Servidor das Tarefas", + "settings.app.form.showDragArea": "Mostrar área arrastável na janela", + "settings.app.form.startMinimized": "Iniciar minimizado", "settings.app.form.universalDarkMode": "Habilitar modo noturno universal", "settings.app.form.useTouchIdToUnlock": "Permitir usar TouchID para desbloquear Ferdi", "settings.app.headline": "Configurações", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.", - "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.", "settings.app.subheadlineCache": "Memória Cache", - "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)", + "settings.app.todoServerInfo": "Este servidor será usado para o recurso \"Ferdi Todo\".", "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", "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.", "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective", "settings.supportFerdi.share": "Compartilhe com seus amigos", "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!", - "settings.team.contentHeadline": "Ferdi para equipas", - "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.", + "settings.team.contentHeadline": "Gerenciamento de Equipe Franz", + "settings.team.copy": "O Gerenciamento de Equipes de Franz permite gerenciar assinaturas do Franz para múltiplos usuários. Por favor, entenda que ter uma assinatura Franz Premium não lhe dará nenhuma vantagem em usar o Ferdi. A única razão em manter o acesso ao Gerenciamento de Equipes é permitir o gerenciamento de suas equipes legadas e não perder nenhuma funcionalidade no gerenciamento da sua conta.", "settings.team.headline": "Equipa", - "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.", - "settings.team.manageAction": "Gerenciar sua Equipe em getferdi.com", + "settings.team.intro": "Atualmente você está utilizando os Servidores do Franz, o que permite a você ter acesso ao Gerenciamento de Equipes.", + "settings.team.manageAction": "Gerencie sua Equipe em meetfranz.com", "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível", "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.", "settings.team.upgradeAction": "Atualizar sua conta", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index e953c5778..aef7d6063 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Actualizar", "app.errorHandler.headline": "Uoops! Algo correu mal", + "changeserver.headline": "Alterar servidor", + "changeserver.label": "Servidor", + "changeserver.submit": "Enviar", "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Recarregar Ferdi", "menu.view.reloadService": "Reiniciar o Serviço", "menu.view.resetZoom": "Tamanho real", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Ferramentas de Desenvolvedor", "menu.view.toggleFullScreen": "Modo Tela Cheia", "menu.view.toggleServiceDevTools": "Ferramentas de Serviços de Desenvolvedor", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Incluir versões beta", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Senha", "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Desactivar actualizações", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "Até", "settings.app.form.scheduledDNDStart": "Desde", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Servidor", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Tarefa do Servidor", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Configurações", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "memória cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para seu idioma.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Atualização disponível, baixando...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi para Equipes", - "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.", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Equipe", - "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.", - "settings.team.manageAction": "Gerencie sua Equipe no getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Atualize a sua conta para versão paga", diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index 6fbec36f4..f6d697834 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Перезагрузить", "app.errorHandler.headline": "Что-то пошло не так", + "changeserver.headline": "Изменить сервер", + "changeserver.label": "Server", + "changeserver.submit": "Принять", "feature.announcements.changelog.headline": "Изменения в версии Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Пожалуйста приобретите лицензию Ferdi Supporter чтобы убрать ожидание", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Перезагрузить Ferdi", "menu.view.reloadService": "Перезапустить сервис", "menu.view.resetZoom": "Фактический размер", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Показать инструменты разработчика", "menu.view.toggleFullScreen": "Переключиться на полный экран", "menu.view.toggleServiceDevTools": "Показать инструменты разработчика сервиса", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Открывать в фоне", "settings.app.form.autoLaunchOnStart": "Запускать Ferdi при старте", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Включая бета версии", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Включить ускорение GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Пароль", "settings.app.form.minimizeToSystemTray": "Сворачивать Ferdi в системный трей", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Оставлять Ferdi в фоне при закрытии окна", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Показывать вкладки отключённых служб", "settings.app.form.showMessagesBadgesWhenMuted": "Показывать значок непрочитанного сообщения при отключённых уведомлениях", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Настройки", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Кэш", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Помогите нам перевести Ferdi на ваш язык.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Доступно обновление, идёт загрузка...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi для Команд", - "settings.team.copy": "Ferdi для Команд позволяет пригласить коллег в вашу команду, отправив им емайл с приглашением, а также управлять их подписками в настройках вашего аккаунта. Не тратьте время на настройку подписок для каждого члена команды индивидуально, забудьте о многочисленных платежках и разных циклах оплаты - одна команда для управления всеми!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Команда", - "settings.team.intro": "Вы и ваша команда испльзуете Ferdi? Вы теперь можете управлять Премиум подписками любого количества коллег, друзей и членов семьи, из одного и того же аккаунта.", - "settings.team.manageAction": "Управляйте вашей Командой на getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Улучшить ваш аккаунт", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 06d10f1fd..e07d1a0f5 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Obnoviť", "app.errorHandler.headline": "Niečo sa pokazilo", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Odoslať", "feature.announcements.changelog.headline": "Zmeny vo Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Prosím, kúp si licenciu Ferdi Supporter a nebudeš musieť čakať", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Obnoviť Ferdi", "menu.view.reloadService": "Obnoviť službu", "menu.view.resetZoom": "Pôvodná veľkosť", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Prepnúť vývojárske nástroje", "menu.view.toggleFullScreen": "Prepnúť na celú obrazovku", "menu.view.toggleServiceDevTools": "Prepnúť vývojárske nástroje služby", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvoriť na pozadí", "settings.app.form.autoLaunchOnStart": "Spustiť Ferdi pri štarte", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Vrátane beta verzií", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Zapnúť GPU zrýchlenie", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimalizovať Ferdi do systémovej lišty", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Po zatvorení okna ponechať Ferdi spustený na pozadí", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Zobraziť záložky vypnutých služieb", "settings.app.form.showMessagesBadgesWhenMuted": "Zobraziť symbol pre neprečítané správy, keď sú vypnuté upozornenia", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Nastavenia", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Vyrovnávacia pamäť", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Pomôžte nám preložiť Ferdi do svojho jazyka.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Je dostupná aktualizácia, sťahuje sa...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi pre tímy", - "settings.team.copy": "Ferdi for Teams vám dáva možnosť pozvať spolupracovníkov do vášho tímu odoslaním e-mailových pozvánok a spravovaním ich odberov v preferenciách vášho účtu. Nestrácajte čas vytváraním predplatného pre každého člena tímu jednotlivo, zabudnite na viac faktúr a rôzne fakturačné cykly - jeden tím bude pre všetkých!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Tím", - "settings.team.intro": "Vy a váš tím používate Ferdi? Teraz môžete spravovať prémiové predplatné pre toľko kolegov, priateľov alebo rodinných príslušníkov, koľko chcete, všetko z jedného účtu.", - "settings.team.manageAction": "Spravujte svoj tím na adrese getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Vylepšite svoj účet", diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index bd9c241df..4b6982628 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Ponovno učitavanje", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Pošalji", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Поново учитај Франз", "menu.view.reloadService": "Поново учирај услугу", "menu.view.resetZoom": "Стварна величина", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Промени алатке за развој", "menu.view.toggleFullScreen": "Преко целог екрана", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Otvori u pozadini", "settings.app.form.autoLaunchOnStart": "Pokreni Ferdi sa sistemom", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Obuhvati i beta verzije", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Омогући убрзање графичке јединице", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Smanji Franca u sustavsku traku", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Neka se Franc održava u pozadini i ako je prozor zatvoren", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Prikaži ploče s onemogućenim servisima", "settings.app.form.showMessagesBadgesWhenMuted": "Покажи беџ за непрочитане поруке када су обавештења онемогућена", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Postavke", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Кеш", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Pomozite nam prevesti aplikaciju na Vaš jezik. ", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Nadogradnja dostupna, preuzimanje...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Tim", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index 36f3f7ed9..efb7cfd2c 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Ladda om", "app.errorHandler.headline": "Någonting gick snett", + "changeserver.headline": "Byt server", + "changeserver.label": "Server", + "changeserver.submit": "Skicka", "feature.announcements.changelog.headline": "Ändringar i Ferdi {version}", "feature.debugger.title": "Skicka felsökningsinformation", "feature.delayApp.headline": "Vänligen köp en Ferdi Supporter-licens för att slippa vänta", @@ -77,17 +80,17 @@ "invite.email.label": "E-postadress", "invite.headline.friends": "Bjud in 3 av dina vänner eller kollegor", "invite.name.label": "Namn", - "invite.skip.label": "I want to do this later", + "invite.skip.label": "Jag gör det senare", "invite.submit.label": "Skicka inbjudningar", "invite.successInfo": "Inbjudningar har skickats", "locked.headline": "Låst", - "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", + "locked.info": "Ferdi är för närvarande låst. Lås upp Ferdi med ditt lösenord för att se dina meddelanden.", "locked.invalidCredentials": "Felaktigt lösenord", "locked.password.label": "Lösenord", "locked.submit.label": "Lås upp", - "locked.touchId": "Unlock with Touch ID", - "locked.touchIdPrompt": "unlock via Touch ID", - "locked.unlockWithPassword": "Unlock with Password", + "locked.touchId": "Lås upp med Touch ID", + "locked.touchIdPrompt": "lås upp med Touch ID", + "locked.unlockWithPassword": "Lås upp med lösenord", "login.changeServer": "Byt server", "login.customServerQuestion": "Using a custom Ferdi server?", "login.customServerSuggestion": "Try importing your Franz account", @@ -95,11 +98,11 @@ "login.headline": "Logga in", "login.invalidCredentials": "E-post eller lösenord är felaktigt", "login.link.password": "Återställ lösenord", - "login.link.signup": "Create a free account", + "login.link.signup": "Skapa ett gratis konto", "login.password.label": "Lösenord", - "login.serverLogout": "Your session expired, please login again.", + "login.serverLogout": "Din session har gått ut. Vänligen logga in på nytt.", "login.submit.label": "Logga in", - "login.tokenExpired": "Your session expired, please login again.", + "login.tokenExpired": "Din session har gått ut. Vänligen logga in på nytt.", "menu.Todoss.closeTodosDrawer": "Stäng Todos-lådan", "menu.Todoss.openTodosDrawer": "Öppna Todos-lådan", "menu.app.about": "Om Ferdi", @@ -116,32 +119,32 @@ "menu.edit.cut": "Klipp ut", "menu.edit.delete": "Radera", "menu.edit.emojiSymbols": "Emojis & symboler", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "Hitta på sidan", "menu.edit.paste": "Klistra in", - "menu.edit.pasteAndMatchStyle": "Paste And Match Style", + "menu.edit.pasteAndMatchStyle": "Klistra in och matcha stil", "menu.edit.redo": "Gör om", "menu.edit.selectAll": "Markera allt", "menu.edit.speech": "Tal", "menu.edit.startDictation": "Börja diktera", "menu.edit.startSpeaking": "Börja tala", - "menu.edit.stopSpeaking": "Stop Speaking", + "menu.edit.stopSpeaking": "Sluta prata", "menu.edit.undo": "Ångra", "menu.file": "Fil", "menu.help": "Hjälp", "menu.help.changelog": "Ändringslogg", - "menu.help.debugInfo": "Copy Debug Information", - "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", - "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", + "menu.help.debugInfo": "Kopiera felsökningsinformation", + "menu.help.debugInfoCopiedBody": "Din felsökningsinformation har kopierats till ditt urklipp.", + "menu.help.debugInfoCopiedHeadline": "Ferdi felsökningsinformation", "menu.help.learnMore": "Läs mer", "menu.help.privacy": "Integritetspolicy", - "menu.help.publishDebugInfo": "Publish Debug Information", + "menu.help.publishDebugInfo": "Skicka felsökningsinformation", "menu.help.support": "Support", "menu.help.tos": "Användarvillkor", "menu.services": "Tjänster", "menu.services.activatePreviousService": "Aktivera föregående tjänst", "menu.services.addNewService": "Lägg till ny tjänst...", "menu.services.goHome": "Hem", - "menu.services.setNextServiceActive": "Activate next service", + "menu.services.setNextServiceActive": "Aktivera nästa tjänst", "menu.todos": "Todos", "menu.todos.enableTodos": "Aktivera Todos", "menu.view": "Visa", @@ -151,10 +154,11 @@ "menu.view.forward": "Framåt", "menu.view.lockFerdi": "Lås Ferdi", "menu.view.openQuickSwitch": "Öppna snabbväxling", - "menu.view.reloadFranz": "Reload Ferdi", + "menu.view.reloadFranz": "Ladda om Ferdi", "menu.view.reloadService": "Ladda om tjänst", "menu.view.resetZoom": "Originalstorlek", - "menu.view.toggleDevTools": "Toggle Developer Tools", + "menu.view.toggleDarkMode": "Växla mörkt läge", + "menu.view.toggleDevTools": "Växla utvecklarverktyg", "menu.view.toggleFullScreen": "Växla helskärmsläge", "menu.view.toggleServiceDevTools": "Växla tjänsteverktyg för utvecklare", "menu.view.toggleTodosDevTools": "Växla Todos utvecklarverktyg", @@ -164,40 +168,40 @@ "menu.window.close": "Stäng", "menu.window.minimize": "Minimera", "menu.workspaces": "Arbetsytor", - "menu.workspaces.addNewWorkspace": "Add New Workspace...", - "menu.workspaces.closeWorkspaceDrawer": "Close workspace drawer", - "menu.workspaces.defaultWorkspace": "All services", - "menu.workspaces.openWorkspaceDrawer": "Open workspace drawer", + "menu.workspaces.addNewWorkspace": "Skapa ny arbetsyta...", + "menu.workspaces.closeWorkspaceDrawer": "Stäng arbetsytan", + "menu.workspaces.defaultWorkspace": "Alla tjänster", + "menu.workspaces.openWorkspaceDrawer": "Öppna arbetsytan", "password.email.label": "E-postadress", "password.headline": "Återställ lösenord", - "password.link.login": "Sign in to your account", - "password.link.signup": "Create a free account", - "password.noUser": "No user with that email address was found", + "password.link.login": "Logga in på ditt konto", + "password.link.signup": "Skapa ett gratis konto", + "password.noUser": "Ingen användare med den e-postadressen hittades", "password.submit.label": "Skicka", - "password.successInfo": "Please check your email", + "password.successInfo": "Vänligen kontrollera din e-post", "premiumFeature.button.upgradeAccount": "Uppgradera konto", - "pricing.features.accountSync": "Account Synchronisation", + "pricing.features.accountSync": "Synkronisering av konto", "pricing.features.adFree": "Reklamfritt för alltid", "pricing.features.appDelays": "Inga vänteskärmar", "pricing.features.customWebsites": "Lägg till egna webbplatser", - "pricing.features.desktopNotifications": "Desktop Notifications", - "pricing.features.onPremise": "On-premise & other Hosted Services", - "pricing.features.recipes": "Choose from more than 70 Services", + "pricing.features.desktopNotifications": "Skrivbordsaviseringar", + "pricing.features.onPremise": "Lokala tjänster och andra värdtjänster", + "pricing.features.recipes": "Välj mellan fler än 70 tjänster", "pricing.features.serviceProxies": "Tjänstens proxies", - "pricing.features.spellchecker": "Spellchecker support", - "pricing.features.teamManagement": "Team-hantering", - "pricing.features.thirdPartyServices": "Install 3rd party services", - "pricing.features.unlimitedServices": "Add unlimited services", - "pricing.features.upToSixServices": "Add up to 6 services", - "pricing.features.upToThreeServices": "Add up to 3 services", + "pricing.features.spellchecker": "Stöd för stavningskontroll", + "pricing.features.teamManagement": "Hantera grupp", + "pricing.features.thirdPartyServices": "Installera tjänster från tredje part", + "pricing.features.unlimitedServices": "Lägg till obegränsat antal tjänster", + "pricing.features.upToSixServices": "Lägg till upp till 6 tjänster", + "pricing.features.upToThreeServices": "Lägg till upp till 3 tjänster", "pricing.features.workspaces": "Arbetsytor", "pricing.plan.free": "Ferdi Free", "pricing.plan.legacy": "Ferdi Premium", "pricing.plan.personal": "Ferdi Personal", - "pricing.plan.personal-monthly": "Ferdi Personal Monthly", - "pricing.plan.personal-yearly": "Ferdi Personal Yearly", + "pricing.plan.personal-monthly": "Ferdi Personal månatlig", + "pricing.plan.personal-yearly": "Ferdi Professional årsvis", "pricing.plan.pro": "Ferdi Professional", - "pricing.plan.pro-monthly": "Ferdi Professional Monthly", + "pricing.plan.pro-monthly": "Ferdi Professional månatlig", "pricing.plan.pro-yearly": "Ferdi Professional årsvis", "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", "pricing.trial.cta.skip": "Continue to Ferdi", @@ -212,37 +216,37 @@ "pricing.trial.terms.headline": "No strings attached", "pricing.trial.terms.noCreditCard": "No credit card required", "pricing.trial.terms.trialWorth": "Free trial (normally {currency}{price} per month)", - "service.crashHandler.action": "Reload {name}", - "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds", + "service.crashHandler.action": "Ladda om {name}", + "service.crashHandler.autoReload": "Försöker automatiskt återställa {name} om {seconds} sekunder", "service.crashHandler.headline": "Åh nej!", "service.crashHandler.text": "{name} har orsakat ett fel.", - "service.disabledHandler.action": "Enable {name}", + "service.disabledHandler.action": "Aktivera {name}", "service.disabledHandler.headline": "{name} är inaktiverad", - "service.errorHandler.action": "Reload {name}", + "service.errorHandler.action": "Ladda om {name}", "service.errorHandler.editAction": "Redigera {name}", "service.errorHandler.headline": "Åh nej!", "service.errorHandler.message": "Fel", - "service.errorHandler.text": "{name} has failed to load.", + "service.errorHandler.text": "{name} kunde inte laddas.", "service.restrictedHandler.action": "Uppgradera konto", "service.restrictedHandler.customUrl.headline": "Ferdi Professional krävs", - "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", - "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", - "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", + "service.restrictedHandler.customUrl.text": "Vänligen uppgradera till Ferdi Professional-abonnemanget för att använda anpassade webbadresser & själv-hostade tjänster.", + "service.restrictedHandler.serviceLimit.headline": "Du har nått gränsen för antalet tjänster.", + "service.restrictedHandler.serviceLimit.text": "Uppgradera ditt konto för att använda mer än {count} tjänster.", "service.webviewLoader.loading": "Laddar {service}", "services.getStarted": "Kom igång", - "services.login": "Please login to use Ferdi.", - "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", + "services.login": "Logga in för att använda Ferdi.", + "services.serverInfo": "Om du vill kan du ändra din Ferdi-server genom att klicka på kugghjulet i det nedre vänstra hörnet.", "services.serverless": "Använd Ferdi utan ett konto", "services.welcome": "Välkommen till Ferdi", - "settings.account.account.editButton": "Edit account", - "settings.account.accountType.basic": "Basic Account", + "settings.account.account.editButton": "Redigera konto", + "settings.account.accountType.basic": "Standardkonto", "settings.account.accountType.premium": "Premium Supporterkonto", - "settings.account.accountUnavailable": "Account is unavailable", - "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.", + "settings.account.accountUnavailable": "Kontot är inte tillgängligt", + "settings.account.accountUnavailableInfo": "Du använder Ferdi utan ett konto. Om du vill använda Ferdi med ett konto och hålla dina tjänster synkroniserade mellan installationer, välj en server i fliken Inställningar och logga in.", "settings.account.buttonSave": "Uppdatera profil", "settings.account.deleteAccount": "Ta bort ditt användarkonto", - "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", - "settings.account.deleteInfo": "If you don't need your Ferdi account any longer, you can delete your account and all related data here.", + "settings.account.deleteEmailSent": "Du har fått ett e-postmeddelande med en länk för att bekräfta raderingen av ditt konto. Ditt konto och data kan inte återställas!", + "settings.account.deleteInfo": "Om du inte behöver ditt Ferdi-konto längre, kan du ta bort ditt konto och all anknuten information här.", "settings.account.headline": "Konto", "settings.account.headlineAccount": "Kontoinformation", "settings.account.headlineDangerZone": "Högrisksområde", @@ -251,9 +255,9 @@ "settings.account.headlineProfile": "Uppdatera profil", "settings.account.headlineSubscription": "Ditt abonnemang", "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", - "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", + "settings.account.headlineUpgradeAccount": "Uppgradera ditt konto för att få den hela Ferdi-upplevelsen", "settings.account.invoiceDownload": "Nerladdning", - "settings.account.manageSubscription.label": "Manage your subscription", + "settings.account.manageSubscription.label": "Hantera ditt abonnemang", "settings.account.successInfo": "Dina ändringar har sparats", "settings.account.trial": "Free Trial", "settings.account.trialEndsIn": "Your free trial ends in {duration}.", @@ -263,95 +267,94 @@ "settings.account.upgradeToPro.label": "Uppgradera till Ferdi Professional", "settings.account.userInfoRequestFailed": "Kunde inte ladda användarinformation", "settings.account.yourLicense": "Din Ferdi-licens", - "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", + "settings.app.accentColorInfo": "Ange din accentfärg i ett CSS-kompatibelt format (standard: #7367f0).", "settings.app.buttonClearAllCache": "Rensa cache", "settings.app.buttonInstallUpdate": "Starta om & installera uppdatering", "settings.app.buttonSearchForUpdate": "Sök efter uppdateringar", - "settings.app.cacheInfo": "Ferdi cache is currently using {size} of disk space.", + "settings.app.cacheInfo": "Ferdis cache använder för närvarande {size} diskutrymme.", "settings.app.currentVersion": "Nuvarande version:", - "settings.app.form.accentColor": "Accent color", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", + "settings.app.form.accentColor": "Accentfärg", + "settings.app.form.adaptableDarkMode": "Synkronisera det mörka läget med operativsystemets inställning för mörkt läge", "settings.app.form.autoLaunchInBackground": "Öppna i bakgrunden", - "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", - "settings.app.form.beta": "Include beta versions", + "settings.app.form.autoLaunchOnStart": "Starta Ferdi vid uppstart", + "settings.app.form.automaticUpdates": "Aktivera uppdateringar", + "settings.app.form.beta": "Inkludera betaversioner", + "settings.app.form.customTodoServer": "Anpassad Todo-server", "settings.app.form.darkMode": "Aktivera mörkt läge", - "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", - "settings.app.form.enableLock": "Enable Password Lock", - "settings.app.form.enableSpellchecking": "Enable spell checking", + "settings.app.form.enableGPUAcceleration": "Aktivera GPU-hårdvaruacceleration", + "settings.app.form.enableLock": "Aktivera lösenordslås", + "settings.app.form.enableSpellchecking": "Aktivera stavningskontroll", "settings.app.form.enableSystemTray": "Visa Ferdi i systemfältet", "settings.app.form.enableTodos": "Aktivera Ferdi Todos", - "settings.app.form.hibernate": "Enable service hibernation", - "settings.app.form.hibernationStrategy": "Hibernation strategy", + "settings.app.form.hibernate": "Sätt tjänst i vila", + "settings.app.form.hibernationStrategy": "Strategi för vila", "settings.app.form.iconSize": "Ikonstorlek för tjänster", - "settings.app.form.inactivityLock": "Lock after inactivity", - "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", + "settings.app.form.inactivityLock": "Lås efter inaktivitet", + "settings.app.form.keepAllWorkspacesLoaded": "Håll alla arbetsytor laddade", "settings.app.form.language": "Språk", "settings.app.form.lockPassword": "Lösenord", "settings.app.form.minimizeToSystemTray": "Minimera Ferdi till systemfältet", "settings.app.form.navigationBarBehaviour": "Navigeringsfältets beteende", - "settings.app.form.noUpdates": "Inaktivera uppdateringar", - "settings.app.form.privateNotifications": "Don't show message content in notifications", - "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", - "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", + "settings.app.form.predefinedTodoServer": "Todo-server", + "settings.app.form.privateNotifications": "Visa inte meddelandeinnehåll i aviseringar", + "settings.app.form.reloadAfterResume": "Ladda om Ferdi efter datorn väckts från vila", + "settings.app.form.runInBackground": "Kör Ferdi i bakgrunden när fönstret stängts", "settings.app.form.scheduledDNDEnabled": "Aktivera schemalagt Stör ej-läge", "settings.app.form.scheduledDNDEnd": "Till", "settings.app.form.scheduledDNDStart": "Från", - "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", + "settings.app.form.sentry": "Skicka telemetridata", "settings.app.form.serviceRibbonWidth": "Sidofältets bredd", "settings.app.form.showDisabledServices": "Visa flikar för inaktiverade tjänster", - "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showMessagesBadgesWhenMuted": "Visa antal olästa meddelanden när aviseringar är inaktiverade", + "settings.app.form.showDragArea": "Visa dragbart område i fönstret", + "settings.app.form.startMinimized": "Starta i minimerat läge", "settings.app.form.universalDarkMode": "Aktivera globalt mörkt läge", - "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", + "settings.app.form.useTouchIdToUnlock": "Tillåt att TouchID används för att låsa upp Ferdi", "settings.app.headline": "Inställningar", "settings.app.headlineAdvanced": "Avancerat", "settings.app.headlineAppearance": "Utseende", "settings.app.headlineGeneral": "Allmänt", "settings.app.headlineLanguage": "Språk", "settings.app.headlineUpdates": "Uppdateringar", - "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.", - "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", - "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", - "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.", + "settings.app.hibernateInfo": "Som standard kommer Ferdi att hålla alla dina tjänster öppna och laddade i bakgrunden så att de är redo när du vill använda dem. Viloläget kommer att stänga dina tjänster efter ett angivet belopp. Detta är användbart för att spara på arbetsminne eller se till att tjänster inte saktar ner datorn.", + "settings.app.inactivityLockInfo": "Antal minuter av inaktivitet, varefter Ferdi låses automatiskt. Ange 0 för att inaktivera", + "settings.app.languageDisclaimer": "Engelska och tyska är officella översättningar. Övriga språk har översatts av gemenskapen.", + "settings.app.lockInfo": "Lösenordslås låter dig skydda dina meddelanden.\nMed lösenordslås kommer du bli ombedd att ange ditt lösenord varje gång du startar Ferdi. Du kan också låsa Ferdi själv med hjälp av låssymbolen i det nedre vänstra hörnet eller med kortkommandot CMD/CTRL+Shift+L.", "settings.app.lockedPassword": "Lösenord", - "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", - "settings.app.restartRequired": "Changes require restart", - "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.", - "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.", - "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", + "settings.app.lockedPasswordInfo": "Se till att du anger ett lösenord du kommer att komma ihåg.\nOm du tappar bort detta lösenord måste du installera om Ferdi.", + "settings.app.restartRequired": "Ändringar kräver omstart", + "settings.app.scheduledDNDInfo": "Schemalagd \"Stör ej\" låter dig definiera en tidsperiod inom vilken du inte vill få meddelanden från Ferdi.", + "settings.app.scheduledDNDTimeInfo": "Tid i 24-timmarsformat. Sluttid kan vara före starttid (t.ex. start 17:00, slut 09:00) för att aktivera \"Stör ej\" över natten.", + "settings.app.sentryInfo": "Genom att skicka telemetridata kan vi hitta buggar i Ferdi - vi kommer inte att skicka någon personlig information (som dina meddelandedata)! Att ändra detta alternativ kräver en omstart av Ferdi.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", - "settings.app.translationHelp": "Help us to translate Ferdi into your language.", - "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", + "settings.app.todoServerInfo": "Denna server kommer att användas för \"Ferdi Todo\"-funktionen.", + "settings.app.translationHelp": "Hjälp oss att översätta Ferdi till ditt språk.", + "settings.app.universalDarkModeInfo": "Globalt mörkt läge försöker att dynamiskt generera en mörk stil för tjänster som ännu inte stöds.", "settings.app.updateStatusAvailable": "Uppdatering tillgänglig, laddar ner...", - "settings.app.updateStatusSearching": "Is searching for update", - "settings.app.updateStatusUpToDate": "You are using the latest version of Ferdi", + "settings.app.updateStatusSearching": "Söker efter uppdatering", + "settings.app.updateStatusUpToDate": "Du använder den senaste versionen av Ferdi", "settings.invite.headline": "Bjud in vänner", "settings.navigation.account": "Konto", "settings.navigation.availableServices": "Tillgängliga tjänster", "settings.navigation.logout": "Logga ut", "settings.navigation.settings": "Inställningar", "settings.navigation.supportFerdi": "Stöd Ferdi", - "settings.navigation.team": "Manage Team", + "settings.navigation.team": "Hantera grupp", "settings.navigation.yourServices": "Dina tjänster", "settings.navigation.yourWorkspaces": "Dina arbetsytor", - "settings.recipes.all": "All services", + "settings.recipes.all": "Alla tjänster", "settings.recipes.custom": "Anpassade tjänster", - "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", - "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", + "settings.recipes.customService.headline.communityRecipes": "Tredjepartsrecept från gemenskapen", + "settings.recipes.customService.headline.customRecipes": "Egna tredjepartsrecept", "settings.recipes.customService.headline.devRecipes": "Dina recept för utvecklingsservice", - "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", - "settings.recipes.customService.openDevDocs": "Developer Documentation", + "settings.recipes.customService.intro": "För att lägga till en anpassad tjänst, kopiera receptet för tjänsten till:", + "settings.recipes.customService.openDevDocs": "Dokumentation för utvecklare", "settings.recipes.customService.openFolder": "Öppna mapp", "settings.recipes.headline": "Tillgängliga tjänster", "settings.recipes.missingService": "Saknar du en tjänst?", - "settings.recipes.mostPopular": "Most popular", - "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", - "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", + "settings.recipes.mostPopular": "Mest populära", + "settings.recipes.nothingFound": "Tyvärr, men ingen tjänst matchade din sökterm.", + "settings.recipes.servicesSuccessfulAddedInfo": "Tjänsten har lagts till", "settings.searchService": "Sök efter tjänst", "settings.service.error.goBack": "Tillbaka till tjänster", "settings.service.error.headline": "Fel", @@ -359,155 +362,155 @@ "settings.service.form.addServiceHeadline": "Lägg till {name}", "settings.service.form.availableServices": "Tillgängliga tjänster", "settings.service.form.customUrl": "Anpassad server", - "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Ferdi Premium Supporter Account.", - "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", - "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", + "settings.service.form.customUrlPremiumInfo": "För att lägga till egna tjänster behöver du ett Ferdi Premium supporter-konto.", + "settings.service.form.customUrlUpgradeAccount": "Uppgradera ditt konto", + "settings.service.form.customUrlValidationError": "Kunde inte validera anpassad {name} -server.", "settings.service.form.deleteButton": "Ta bort tjänst", "settings.service.form.editServiceHeadline": "Redigera {name}", - "settings.service.form.enableAudio": "Enable audio", - "settings.service.form.enableBadge": "Show unread message badges", + "settings.service.form.enableAudio": "Aktivera ljud", + "settings.service.form.enableBadge": "Visa olästa meddelandemärken", "settings.service.form.enableDarkMode": "Aktivera mörkt läge", - "settings.service.form.enableNotification": "Enable notifications", + "settings.service.form.enableNotification": "Aktivera aviseringar", "settings.service.form.enableService": "Aktivera tjänst", - "settings.service.form.headlineBadges": "Unread message badges", + "settings.service.form.headlineBadges": "Olästa meddelandemärken", "settings.service.form.headlineGeneral": "Allmänt", "settings.service.form.headlineNotifications": "Aviseringar", "settings.service.form.icon": "Anpassad ikon", "settings.service.form.iconDelete": "Radera", "settings.service.form.iconUpload": "Släpp din bild, eller klicka här", - "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", - "settings.service.form.indirectMessages": "Show message badge for all new messages", - "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", + "settings.service.form.indirectMessageInfo": "Du kommer att aviseras om alla nya meddelanden i en kanal, inte bara @username, @channel, @here, ...", + "settings.service.form.indirectMessages": "Visa meddelandemärke för alla nya meddelanden", + "settings.service.form.isMutedInfo": "Om inaktiverad kommer alla aviseringsljud och ljuduppspelning att tystas", "settings.service.form.name": "Namn", "settings.service.form.openDarkmodeCss": "Öppna darkmode.css", "settings.service.form.openUserCss": "Öppna user.css", - "settings.service.form.openUserJs": "Open user.js", + "settings.service.form.openUserJs": "Öppna user.js", "settings.service.form.proxy.headline": "Inställningar för HTTP/HTTPS-proxy", "settings.service.form.proxy.host": "Proxy-värd/IP", - "settings.service.form.proxy.info": "Proxy settings will not synced with the Ferdi servers.", + "settings.service.form.proxy.info": "Proxyinställningar kommer inte att synkroniseras med Ferdi-servrarna.", "settings.service.form.proxy.isEnabled": "Använd proxy", "settings.service.form.proxy.password": "Lösenord (frivilligt)", "settings.service.form.proxy.port": "Port", - "settings.service.form.proxy.restartInfo": "Please restart Ferdi after changing proxy Settings.", + "settings.service.form.proxy.restartInfo": "Vänligen starta om Ferdi efter att du ändrat proxyinställningar.", "settings.service.form.proxy.user": "Användare (valfritt)", - "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.", - "settings.service.form.saveButton": "Save service", + "settings.service.form.recipeFileInfo": "Dina användarfiler kommer att infogas i webbsidan så att du kan anpassa tjänsterna hur du vill. Användarfiler lagras endast lokalt och överförs inte till andra datorer som använer samma konto.", + "settings.service.form.saveButton": "Spara tjänst", "settings.service.form.tabHosted": "Värd", "settings.service.form.tabOnPremise": "Self-hosted ⭐", - "settings.service.form.team": "Team", + "settings.service.form.team": "Grupp", "settings.service.form.useHostedService": "Använd den värd-baserade tjänsten {name}.", "settings.service.form.yourServices": "Dina tjänster", "settings.services.deletedInfo": "Tjänsten har tagits bort", "settings.services.discoverServices": "Upptäck tjänster", "settings.services.headline": "Dina tjänster", - "settings.services.noServicesAdded": "You haven't added any services yet.", + "settings.services.noServicesAdded": "Du har inte lagt till några tjänster än.", "settings.services.servicesRequestFailed": "Kunde inte ladda dina tjänster", - "settings.services.tooltip.isDisabled": "Service is disabled", - "settings.services.tooltip.isMuted": "All sounds are muted", - "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", + "settings.services.tooltip.isDisabled": "Tjänsten är inaktiverad", + "settings.services.tooltip.isMuted": "Alla ljud är avstängda", + "settings.services.tooltip.notificationsDisabled": "Aviseringar är inaktiverade", "settings.services.updatedInfo": "Dina ändringar har sparats", "settings.supportFerdi.github": "Stjärnmarkera på GitHub", "settings.supportFerdi.headline": "Stöd Ferdi", "settings.supportFerdi.openCollective": "Stöd vårt öppna kollektiv", "settings.supportFerdi.share": "Tipsa dina vänner om oss", - "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", - "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", - "settings.team.teamsUnavailable": "Teams are unavailable", - "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.", - "settings.team.upgradeAction": "Upgrade your Account", + "settings.supportFerdi.title": "Gillar du Ferdi? Sprid order!", + "settings.team.contentHeadline": "Hantera Franz-grupp", + "settings.team.copy": "Grupphanteringen i Franz låter dig hantera Franz-abonnemang för flera användare. Observera att ett Franz Premium-abonnemang inte ger dig några extra funktioner i Ferdi: Den enda anledningen till att du fortfarande har tillgång till grupphanteringen är att du kan hantera dina äldre Franz-grupper så att du inte förlorar någon funktionalitet i hanteringen av ditt konto.", + "settings.team.headline": "Grupp", + "settings.team.intro": "Du använder för närvarande Franz servrar, vilket är anledningen till att du har tillgång till grupphanteringen.", + "settings.team.manageAction": "Hantera din grupp på meetfranz.com", + "settings.team.teamsUnavailable": "Grupper är inte tillgängliga", + "settings.team.teamsUnavailableInfo": "Grupper är för närvarande endast tillgängliga när du använder Franz Server och har betalat för Franz Professional. Vänligen ändra din server till https://api.franzinfra.com för att använda gruppfunktionalitet.", + "settings.team.upgradeAction": "Uppgradera ditt konto", "settings.user.form.accountType.company": "Företag", - "settings.user.form.accountType.individual": "Individual", - "settings.user.form.accountType.label": "Account type", + "settings.user.form.accountType.individual": "Privatperson", + "settings.user.form.accountType.label": "Kontotyp", "settings.user.form.accountType.non-profit": "Ideell organisation", "settings.user.form.currentPassword": "Nuvarande lösenord", "settings.user.form.email": "E-post", "settings.user.form.firstname": "Förnamn", "settings.user.form.lastname": "Efternamn", - "settings.user.form.newPassword": "New password", + "settings.user.form.newPassword": "Nytt lösenord", "settings.workspace.add.form.name": "Namn", "settings.workspace.add.form.submitButton": "Skapa arbetsyta", "settings.workspace.form.buttonDelete": "Ta bort arbetsyta", "settings.workspace.form.buttonSave": "Spara arbetsyta", "settings.workspace.form.keepLoaded": "Håll denna arbetsyta laddad*", - "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", + "settings.workspace.form.keepLoadedInfo": "*Detta alternativ kommer att skrivas över av det globala alternativet \"Håll alla arbetsytor laddade\".", "settings.workspace.form.name": "Namn", - "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", + "settings.workspace.form.servicesInWorkspaceHeadline": "Tjänster i denna arbetsyta", "settings.workspace.form.yourWorkspaces": "Dina arbetsytor", - "settings.workspaces.deletedInfo": "Workspace has been deleted", + "settings.workspaces.deletedInfo": "Arbetsytan har tagits bort", "settings.workspaces.headline": "Dina arbetsytor", - "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.", + "settings.workspaces.noWorkspacesAdded": "Du har inte lagt till några arbetsytor än.", "settings.workspaces.tryReloadWorkspaces": "Försök igen", "settings.workspaces.updatedInfo": "Dina ändringar har sparats", - "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", - "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.", + "settings.workspaces.workspaceFeatureHeadline": "\"Less is more\": Vi presenterar Ferdi-arbetsytor", + "settings.workspaces.workspaceFeatureInfo": "Ferdi-arbetsytor låter dig fokusera på det som är viktigt just nu. Konfigurera olika uppsättningar av tjänster och växla enkelt mellan dem när som helst. Du bestämmer vilka tjänster du behöver när och var, så att vi kan hjälpa dig att hålla koll på läget - eller enkelt koppla bort från jobbet när du vill.", "settings.workspaces.workspacesRequestFailed": "Kunde inte ladda dina arbetsytor", "sidebar.addNewService": "Lägg till ny tjänst", "sidebar.closeTodosDrawer": "Stäng Ferdi Todos", - "sidebar.closeWorkspaceDrawer": "Close workspace drawer", + "sidebar.closeWorkspaceDrawer": "Stäng arbetsytan", "sidebar.lockFerdi": "Lås Ferdi", "sidebar.muteApp": "Inaktivera notifikationer och ljud", "sidebar.openTodosDrawer": "Öppna Ferdi Todos", - "sidebar.openWorkspaceDrawer": "Open workspace drawer", + "sidebar.openWorkspaceDrawer": "Öppna arbetsytan", "sidebar.settings": "Inställningar", "sidebar.unmuteApp": "Aktivera aviseringar och ljud", "signup.email.label": "E-postadress", - "signup.emailDuplicate": "A user with that email address already exists", + "signup.emailDuplicate": "En användare med den e-postadressen finns redan", "signup.firstname.label": "Förnamn", "signup.headline": "Registrera dig", "signup.lastname.label": "Efternamn", - "signup.legal.info": "By creating a Ferdi account you accept the", + "signup.legal.info": "Genom att skapa ett Ferdi konto accepterar du", "signup.legal.privacy": "Integritetspolicy", "signup.legal.terms": "Användarvillkor", - "signup.link.login": "Already have an account, sign in?", + "signup.link.login": "Har du redan ett konto? Logga in", "signup.password.label": "Lösenord", "signup.submit.label": "Skapa konto", "subscription.bestValue": "Best value", "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", "subscription.cta.allOptions": "Se alla alternativ", "subscription.cta.choosePlan": "Välj abonnemang", - "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", + "subscription.includedProFeatures": "I Ferdi Professional-abonnemanget ingår:", "subscription.interval.per": "per {interval}", "subscription.interval.perMonth": "per månad", "subscription.interval.perMonthPerUser": "per månad & användare", "subscription.planItem.upgradeAccount": "Uppgradera konto", - "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", - "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!", + "subscription.teaser.includedFeatures": "De avgiftsbelagda Ferdi-abonnemangen inkluderar:", + "subscription.teaser.intro": "Ferdi 5 kommer med ett brett utbud av nya funktioner för att förbättra din dagliga kommunikation. Kolla in våra nya abonnemang och ta reda på vilket av dem som passar dig bäst!", "subscriptionPopup.buttonCancel": "Avbryt", "subscriptionPopup.buttonDone": "Klar", "tabs.item.deleteService": "Ta bort tjänst", "tabs.item.disableAudio": "Inaktivera ljud", - "tabs.item.disableNotifications": "Disable notifications", + "tabs.item.disableNotifications": "Inaktivera aviseringar", "tabs.item.disableService": "Inaktivera tjänst", "tabs.item.edit": "Redigera", - "tabs.item.enableAudio": "Enable audio", - "tabs.item.enableNotification": "Enable notifications", + "tabs.item.enableAudio": "Aktivera ljud", + "tabs.item.enableNotification": "Aktivera aviseringar", "tabs.item.enableService": "Aktivera tjänst", "tabs.item.reload": "Ladda om", - "validation.email": "{field} is not valid", - "validation.minLength": "{field} should be at least {length} characters long", + "validation.email": "{field} är felaktig", + "validation.minLength": "{field} bör vara minst {length} tecken lång", "validation.oneRequired": "Minst en krävs", - "validation.required": "{field} is required", - "validation.url": "{field} is not a valid URL", + "validation.required": "{field} är obligatoriskt", + "validation.url": "{field} är inte en giltig URL", "webControls.back": "Tillbaka", "webControls.forward": "Framåt", "webControls.goHome": "Hem", "webControls.openInBrowser": "Öppna i webbläsare", "webControls.reload": "Ladda om", - "welcome.loginButton": "Login to your account", - "welcome.signupButton": "Create a free account", + "welcome.loginButton": "Logga in på ditt konto", + "welcome.signupButton": "Skapa ett gratis konto", "workspaceDrawer.addNewWorkspaceLabel": "Skapa ny arbetsyta", - "workspaceDrawer.allServices": "All services", + "workspaceDrawer.allServices": "Alla tjänster", "workspaceDrawer.headline": "Arbetsytor", "workspaceDrawer.item.contextMenuEdit": "redigera", - "workspaceDrawer.item.noServicesAddedYet": "No services added yet", + "workspaceDrawer.item.noServicesAddedYet": "Inga tjänster har lagts till", "workspaceDrawer.premiumCtaButtonLabel": "Skapa din första arbetsyta", "workspaceDrawer.proFeatureBadge": "Premium-funktion", - "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", - "workspaceDrawer.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.

", + "workspaceDrawer.reactivatePremiumAccountLabel": "Återaktivera premiumkonto", + "workspaceDrawer.workspaceFeatureInfo": "

Ferdi-arbetsytor låter dig fokusera på det som är viktigt just nu. Konfigurera olika uppsättningar av tjänster och växla enkelt mellan dem när som helst.

Du bestämmer vilka tjänster du behöver när och var, så att vi kan hjälpa dig att hålla koll på läget - eller enkelt koppla bort från jobbet när du vill.

", "workspaceDrawer.workspacesSettingsTooltip": "Redigera inställningar för arbetsytor", - "workspaces.switchingIndicator.switchingTo": "Switching to" + "workspaces.switchingIndicator.switchingTo": "Byter till" } diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 0038d0a14..4fa22605f 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Yenile", "app.errorHandler.headline": "Bir terslik çıktı", + "changeserver.headline": "Sunucuyu değiştir", + "changeserver.label": "Sunucu", + "changeserver.submit": "Gönder", "feature.announcements.changelog.headline": "Ferdi {version} Sürümündeki Değişiklikler", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Beklememek için Ferdi Destek Lisansı'nı satın alın", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Ferdi'ı Yeniden Yükle", "menu.view.reloadService": "Servisi Tekrar Yükle", "menu.view.resetZoom": "Orijinal Boyut", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Geliştirici Araçlarına Geç", "menu.view.toggleFullScreen": "Tam Ekrana Geç", "menu.view.toggleServiceDevTools": "Hizmet Geliştirici Araçlarını Değiştir", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Arka planda aç", "settings.app.form.autoLaunchOnStart": "Ferdi'ı başlangıçta aç", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Beta versiyonları dahil et", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Şifre", "settings.app.form.minimizeToSystemTray": "Ferdi'ı sistem tepsisine küçült", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Pencereyi kapatırken Ferdi'ı arka planda tut", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "Kime:", "settings.app.form.scheduledDNDStart": "Kimden:", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Sunucu", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Devre dışı bırakılan servis sekmelerini göster", "settings.app.form.showMessagesBadgesWhenMuted": "Bildirimler kapalı iken okunmamış mesaj sayısını göster", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Ayarlar", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Önbellek", - "settings.app.todoServerInfo": "Bu sunucu \"Ferdi Yapılacaklar Listesi\" özelliği için kullanılacakdır. (varsayılan: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Ferdi'ı senin diline tercüme etmemiz için yardım et.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Güncelleme mevcut, indiriliyor...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Arkadaşlarınla Paylaş", "settings.supportFerdi.title": "Ferdi'yi seviyor musun? Hayat paylaştıkça güzel!", - "settings.team.contentHeadline": "Ekipler için Ferdi", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Takım", - "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.", - "settings.team.manageAction": "getferdi.com adresinden Ekibini yönet", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 9c1cedab5..cc0f4f1dd 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Перезавантажити", "app.errorHandler.headline": "Щось пішло не так", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Подати", "feature.announcements.changelog.headline": "Зміни у Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Будь ласка, придбайте ліцензію Ferdi Supporter аби пропустити очікування", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Перезавантажити Ferdi", "menu.view.reloadService": "Перезавантажити сервіс", "menu.view.resetZoom": "Фактичний розмір", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Переключити інструмент розробника", "menu.view.toggleFullScreen": "Переключитися на повний екран", "menu.view.toggleServiceDevTools": "Переключити інструменти розробника сервісу", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Відкрити у фоновому режимі", "settings.app.form.autoLaunchOnStart": "Запускати Ferdi на початку", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Включити бета-версії", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Ввімкнути прискорення GPU", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Пароль", "settings.app.form.minimizeToSystemTray": "Мінімізувати Ferdi до системного лотка", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Тримати Ferdi в фоні при закритті вікна", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Показати вкладку вимкнених сервісів", "settings.app.form.showMessagesBadgesWhenMuted": "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Налаштування", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Кеш", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Допоможіть перекласти Ferdi на Вашу мову.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Оновлення доступне, завантаження...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Команда", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json index 5c34e563b..6ffed81a1 100644 --- a/src/i18n/locales/vi.json +++ b/src/i18n/locales/vi.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "Reload", "app.errorHandler.headline": "Something went wrong", + "changeserver.headline": "Change server", + "changeserver.label": "Server", + "changeserver.submit": "Submit", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "Reload Service", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "Settings", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json index 658304768..c842d890d 100644 --- a/src/i18n/locales/zh-HANT.json +++ b/src/i18n/locales/zh-HANT.json @@ -1,6 +1,9 @@ { "app.errorHandler.action": "重新加載", "app.errorHandler.headline": "出現錯誤", + "changeserver.headline": "切換服務器", + "changeserver.label": "伺服器", + "changeserver.submit": "送出", "feature.announcements.changelog.headline": "Ferdi 有了更新 {version}", "feature.debugger.title": "發布除錯訊息", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -154,6 +157,7 @@ "menu.view.reloadFranz": "Reload Ferdi", "menu.view.reloadService": "重新載入", "menu.view.resetZoom": "實際大小", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "切換開發人員工具", "menu.view.toggleFullScreen": "切換全螢幕", "menu.view.toggleServiceDevTools": "切換開發人員服務工具", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "背景啟動", "settings.app.form.autoLaunchOnStart": "開機時啟動", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "包含開發中版本", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "啟用夜間模式", "settings.app.form.enableGPUAcceleration": "開啟顯示卡(GPU)加速", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "密碼", "settings.app.form.minimizeToSystemTray": "最小化至系統匣", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "取消更新", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "關閉時保持在背景運作", @@ -297,12 +303,11 @@ "settings.app.form.scheduledDNDEnd": "至", "settings.app.form.scheduledDNDStart": "從", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "伺服器", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "開始時最小化到系統匣", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", "settings.app.headline": "設置", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "有可用更新,下載中...", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "告訴你的朋友", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "團隊", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 5c34e563b..4260e7375 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -1,15 +1,18 @@ { - "app.errorHandler.action": "Reload", - "app.errorHandler.headline": "Something went wrong", - "feature.announcements.changelog.headline": "Changes in Ferdi {version}", - "feature.debugger.title": "Publish debugging information", - "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", - "feature.delayApp.text": "Ferdi will continue in {seconds} seconds.", + "app.errorHandler.action": "重新加载", + "app.errorHandler.headline": "出了些问题", + "changeserver.headline": "Change server", + "changeserver.label": "服务器:", + "changeserver.submit": "Submit", + "feature.announcements.changelog.headline": "Ferdi的变化", + "feature.debugger.title": "发布调试信息", + "feature.delayApp.headline": "请购买Ferdi 支持者许可证来跳过等待", + "feature.delayApp.text": "Ferdi将在 {seconds} 秒后继续。", "feature.delayApp.trial.action": "Yes, I want the free 14 day trial of Ferdi Professional", "feature.delayApp.trial.actionShort": "Activate the free Ferdi Professional trial", "feature.delayApp.trial.headline": "Get the free Ferdi Professional 14 day trial and skip the line", - "feature.delayApp.upgrade.action": "Get a Ferdi Supporter License", - "feature.delayApp.upgrade.actionShort": "Upgrade account", + "feature.delayApp.upgrade.action": "获得Ferdi 支持者许可证", + "feature.delayApp.upgrade.actionShort": "升级账户", "feature.planSelection.cta.ctaDowngradeFree": "Downgrade to Free", "feature.planSelection.cta.stayOnFree": "Stay on Free", "feature.planSelection.cta.trial": "Start my free 14-days Trial", @@ -26,20 +29,20 @@ "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", - "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.", + "feature.publishDebugInfo.error": "发布调试信息时出错。请稍后再试或查看控制台以获取更多信息。", "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", - "feature.publishDebugInfo.privacy": "Privacy policy", - "feature.publishDebugInfo.publish": "Accept and publish", - "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", + "feature.publishDebugInfo.privacy": "隐私权政策", + "feature.publishDebugInfo.publish": "接受并发布", + "feature.publishDebugInfo.published": "您的调试日志已经发布,现在可用于", "feature.publishDebugInfo.terms": "Terms of service", - "feature.publishDebugInfo.title": "Publish debug information", + "feature.publishDebugInfo.title": "发布调试信息", "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", - "feature.quickSwitch.search": "Search...", - "feature.quickSwitch.title": "QuickSwitch", + "feature.quickSwitch.search": "搜索...", + "feature.quickSwitch.title": "快速切换", "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.", - "feature.shareFranz.action.email": "Send as email", - "feature.shareFranz.action.facebook": "Share on Facebook", - "feature.shareFranz.action.twitter": "Share on Twitter", + "feature.shareFranz.action.email": "以邮件形式发送", + "feature.shareFranz.action.facebook": "在 Facebook 上分享", + "feature.shareFranz.action.twitter": "在Twitter上分享", "feature.shareFranz.headline": "Ferdi is better together!", "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", "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger", @@ -55,7 +58,7 @@ "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", "global.api.unhealthy": "Can't connect to Ferdi online services", - "global.franzProRequired": "Ferdi Professional Required", + "global.franzProRequired": "需要Ferdi 专业版", "global.notConnectedToTheInternet": "You are not connected to the internet.", "global.spellchecker.useDefault": "Use System Default ({default})", "global.spellchecking.autodetect": "Detect language automatically", @@ -80,7 +83,7 @@ "invite.skip.label": "I want to do this later", "invite.submit.label": "Send invites", "invite.successInfo": "Invitations sent successfully", - "locked.headline": "Locked", + "locked.headline": "已锁定", "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", "locked.invalidCredentials": "Password invalid", "locked.password.label": "Password", @@ -103,57 +106,58 @@ "menu.Todoss.closeTodosDrawer": "Close Todos drawer", "menu.Todoss.openTodosDrawer": "Open Todos drawer", "menu.app.about": "About Ferdi", - "menu.app.announcement": "What's new?", + "menu.app.announcement": "新功能", "menu.app.autohideMenuBar": "Auto-hide menu bar", "menu.app.checkForUpdates": "Check for updates", - "menu.app.hide": "Hide", - "menu.app.hideOthers": "Hide Others", - "menu.app.quit": "Quit", - "menu.app.settings": "Settings", - "menu.app.unhide": "Unhide", - "menu.edit": "Edit", - "menu.edit.copy": "Copy", - "menu.edit.cut": "Cut", - "menu.edit.delete": "Delete", - "menu.edit.emojiSymbols": "Emoji & Symbols", - "menu.edit.findInPage": "Find in Page", - "menu.edit.paste": "Paste", - "menu.edit.pasteAndMatchStyle": "Paste And Match Style", - "menu.edit.redo": "Redo", - "menu.edit.selectAll": "Select All", - "menu.edit.speech": "Speech", + "menu.app.hide": "隐藏", + "menu.app.hideOthers": "隐藏其它", + "menu.app.quit": "退出", + "menu.app.settings": "设置", + "menu.app.unhide": "取消隐藏", + "menu.edit": "编辑", + "menu.edit.copy": "复制", + "menu.edit.cut": "剪切", + "menu.edit.delete": "删除", + "menu.edit.emojiSymbols": "Emoji 和符号", + "menu.edit.findInPage": "页内搜索", + "menu.edit.paste": "粘贴", + "menu.edit.pasteAndMatchStyle": "粘贴和匹配样式", + "menu.edit.redo": "重做", + "menu.edit.selectAll": "选择所有", + "menu.edit.speech": "语音", "menu.edit.startDictation": "Start Dictation", - "menu.edit.startSpeaking": "Start Speaking", - "menu.edit.stopSpeaking": "Stop Speaking", - "menu.edit.undo": "Undo", - "menu.file": "File", - "menu.help": "Help", - "menu.help.changelog": "Changelog", - "menu.help.debugInfo": "Copy Debug Information", + "menu.edit.startSpeaking": "开始说话", + "menu.edit.stopSpeaking": "停止说话", + "menu.edit.undo": "撤销", + "menu.file": "文件", + "menu.help": "帮助", + "menu.help.changelog": "更新日志", + "menu.help.debugInfo": "复制调试信息", "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", "menu.help.learnMore": "Learn More", "menu.help.privacy": "Privacy Statement", - "menu.help.publishDebugInfo": "Publish Debug Information", - "menu.help.support": "Support", - "menu.help.tos": "Terms of Service", - "menu.services": "Services", - "menu.services.activatePreviousService": "Activate previous service", - "menu.services.addNewService": "Add New Service...", - "menu.services.goHome": "Home", - "menu.services.setNextServiceActive": "Activate next service", - "menu.todos": "Todos", - "menu.todos.enableTodos": "Enable Todos", - "menu.view": "View", - "menu.view.back": "Back", - "menu.view.enterFullScreen": "Enter Full Screen", - "menu.view.exitFullScreen": "Exit Full Screen", + "menu.help.publishDebugInfo": "发布调试信息", + "menu.help.support": "支持", + "menu.help.tos": "服务条款", + "menu.services": "服务", + "menu.services.activatePreviousService": "激活以前的服务", + "menu.services.addNewService": "添加新服务", + "menu.services.goHome": "主页", + "menu.services.setNextServiceActive": "激活下一个服务", + "menu.todos": "待办事项", + "menu.todos.enableTodos": "启用待办事项", + "menu.view": "查看", + "menu.view.back": "返回", + "menu.view.enterFullScreen": "进入全屏", + "menu.view.exitFullScreen": "退出全屏", "menu.view.forward": "Forward", "menu.view.lockFerdi": "Lock Ferdi", "menu.view.openQuickSwitch": "Open Quick Switch", "menu.view.reloadFranz": "Reload Ferdi", - "menu.view.reloadService": "Reload Service", + "menu.view.reloadService": "重新加载服务", "menu.view.resetZoom": "Actual Size", + "menu.view.toggleDarkMode": "Toggle Dark Mode", "menu.view.toggleDevTools": "Toggle Developer Tools", "menu.view.toggleFullScreen": "Toggle Full Screen", "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools", @@ -175,7 +179,7 @@ "password.noUser": "No user with that email address was found", "password.submit.label": "Submit", "password.successInfo": "Please check your email", - "premiumFeature.button.upgradeAccount": "Upgrade account", + "premiumFeature.button.upgradeAccount": "升级账户", "pricing.features.accountSync": "Account Synchronisation", "pricing.features.adFree": "Forever ad-free", "pricing.features.appDelays": "No Waiting Screens", @@ -273,7 +277,9 @@ "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", "settings.app.form.autoLaunchInBackground": "Open in background", "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", + "settings.app.form.automaticUpdates": "Enable updates", "settings.app.form.beta": "Include beta versions", + "settings.app.form.customTodoServer": "Custom Todo Server", "settings.app.form.darkMode": "Enable dark mode", "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", "settings.app.form.enableLock": "Enable Password Lock", @@ -289,7 +295,7 @@ "settings.app.form.lockPassword": "Password", "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.noUpdates": "Disable updates", + "settings.app.form.predefinedTodoServer": "Todo Server", "settings.app.form.privateNotifications": "Don't show message content in notifications", "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", @@ -297,15 +303,14 @@ "settings.app.form.scheduledDNDEnd": "To", "settings.app.form.scheduledDNDStart": "From", "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.server": "Server", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", - "settings.app.form.startMinimized": "Start minimized in tray", - "settings.app.form.todoServer": "Todo Server", + "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", - "settings.app.headline": "Settings", + "settings.app.headline": "设置", "settings.app.headlineAdvanced": "Advanced", "settings.app.headlineAppearance": "Appearance", "settings.app.headlineGeneral": "General", @@ -321,10 +326,8 @@ "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.", "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.", "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.", - "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", - "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.", "settings.app.subheadlineCache": "Cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", + "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", "settings.app.translationHelp": "Help us to translate Ferdi into your language.", "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", "settings.app.updateStatusAvailable": "Update available, downloading...", @@ -334,7 +337,7 @@ "settings.navigation.account": "Account", "settings.navigation.availableServices": "Available services", "settings.navigation.logout": "Logout", - "settings.navigation.settings": "Settings", + "settings.navigation.settings": "设置", "settings.navigation.supportFerdi": "Support Ferdi", "settings.navigation.team": "Manage Team", "settings.navigation.yourServices": "Your services", @@ -373,7 +376,7 @@ "settings.service.form.headlineGeneral": "General", "settings.service.form.headlineNotifications": "Notifications", "settings.service.form.icon": "Custom icon", - "settings.service.form.iconDelete": "Delete", + "settings.service.form.iconDelete": "删除", "settings.service.form.iconUpload": "Drop your image, or click here", "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", "settings.service.form.indirectMessages": "Show message badge for all new messages", @@ -411,11 +414,11 @@ "settings.supportFerdi.openCollective": "Support our Open Collective", "settings.supportFerdi.share": "Tell your Friends", "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Ferdi for Teams", - "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!", + "settings.team.contentHeadline": "Franz Team Management", + "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", "settings.team.headline": "Team", - "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.", - "settings.team.manageAction": "Manage your Team on getferdi.com", + "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", + "settings.team.manageAction": "Manage your Team on meetfranz.com", "settings.team.teamsUnavailable": "Teams are unavailable", "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.", "settings.team.upgradeAction": "Upgrade your Account", @@ -452,7 +455,7 @@ "sidebar.muteApp": "Disable notifications & audio", "sidebar.openTodosDrawer": "Open Ferdi Todos", "sidebar.openWorkspaceDrawer": "Open workspace drawer", - "sidebar.settings": "Settings", + "sidebar.settings": "设置", "sidebar.unmuteApp": "Enable notifications & audio", "signup.email.label": "Email address", "signup.emailDuplicate": "A user with that email address already exists", @@ -482,21 +485,21 @@ "tabs.item.disableAudio": "Disable audio", "tabs.item.disableNotifications": "Disable notifications", "tabs.item.disableService": "Disable service", - "tabs.item.edit": "Edit", + "tabs.item.edit": "编辑", "tabs.item.enableAudio": "Enable audio", "tabs.item.enableNotification": "Enable notifications", "tabs.item.enableService": "Enable service", - "tabs.item.reload": "Reload", + "tabs.item.reload": "重新加载", "validation.email": "{field} is not valid", "validation.minLength": "{field} should be at least {length} characters long", "validation.oneRequired": "At least one is required", "validation.required": "{field} is required", "validation.url": "{field} is not a valid URL", - "webControls.back": "Back", + "webControls.back": "返回", "webControls.forward": "Forward", - "webControls.goHome": "Home", + "webControls.goHome": "主页", "webControls.openInBrowser": "Open in Browser", - "webControls.reload": "Reload", + "webControls.reload": "重新加载", "welcome.loginButton": "Login to your account", "welcome.signupButton": "Create a free account", "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", -- cgit v1.2.3-70-g09d2 From 100016e38098ff389b2d6899dee76413da26f2ae Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Tue, 14 Apr 2020 14:56:16 +0530 Subject: Expose Dark Reader settings (#568) * feat: Expose DarkReader settings to users - In the service model, expose an object darkReaderSetting which contains brightness, contrast and sepia values. - In EditServiceScreen, provide 3 form options for brightness, contrast and Sepia. Additionally onSubmit() form, capture the darkreader settings data onto formdata.darkReaderSettings to update in the service - In EditServiceForm, if darkModeEnabled is checked, show 3 sliders for controlling darkreader settings - Create a new Slider control and customize it according to the application's theme and dark theme. - In Webview Recipe, load the darkReader settings from service settings and pass it to the darkReader library. * feat: Darkreader settings - Lint fixes * feat: DarkReader settings - refactor code in editservicescreen.js Co-Authored-By: Sampath Kumar Krishnan * feat: Darkreader settings - Fix a crash where service.darkReaderSettings is null while creating a new service - Remove isDarkModeEnabled prop to EditServiceForm as it is no longer required. * fix: Update EditServiceScreen - Set the default value of darkReader Brightness, Contrast and Sepia to undefined as per @vantezzen 's suggestion. - Updated the check provided by @mahadevans87 Co-authored-by: Sampath Kumar Krishnan Co-authored-by: Sampath Kumar Krishnan --- .../settings/services/EditServiceForm.js | 17 +++++- src/components/ui/Slider.js | 65 ++++++++++++++++++++++ src/containers/settings/EditServiceScreen.js | 35 ++++++++++++ src/i18n/locales/en-US.json | 4 ++ src/i18n/locales/en.json | 4 ++ src/models/Service.js | 5 ++ src/styles/main.scss | 1 + src/styles/slider.scss | 54 ++++++++++++++++++ src/webview/recipe.js | 4 +- 9 files changed, 187 insertions(+), 2 deletions(-) create mode 100644 src/components/ui/Slider.js create mode 100644 src/styles/slider.scss diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index 98051d78f..bb4f4a76f 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -12,6 +12,7 @@ import Service from '../../../models/Service'; import Tabs, { TabItem } from '../../ui/Tabs'; import Input from '../../ui/Input'; import Toggle from '../../ui/Toggle'; +import Slider from '../../ui/Slider'; import Button from '../../ui/Button'; import ImageUpload from '../../ui/ImageUpload'; import Select from '../../ui/Select'; @@ -105,6 +106,10 @@ const messages = defineMessages({ id: 'settings.service.form.headlineGeneral', defaultMessage: '!!!General', }, + headlineDarkReaderSettings: { + id: 'settings.service.form.headlineDarkReaderSettings', + defaultMessage: '!!!DarkReader Settings', + }, iconDelete: { id: 'settings.service.form.iconDelete', defaultMessage: '!!!Delete', @@ -359,8 +364,18 @@ export default @observer class EditServiceForm extends Component {

{intl.formatMessage(messages.headlineGeneral)}

- + + {form.$('isDarkModeEnabled').value + && ( + <> +

{intl.formatMessage(messages.headlineDarkReaderSettings)}

+ + + + + ) + }
diff --git a/src/components/ui/Slider.js b/src/components/ui/Slider.js new file mode 100644 index 000000000..b00a6a3f8 --- /dev/null +++ b/src/components/ui/Slider.js @@ -0,0 +1,65 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import classnames from 'classnames'; +import { Field } from 'mobx-react-form'; + +export default @observer class Slider extends Component { + static propTypes = { + field: PropTypes.instanceOf(Field).isRequired, + className: PropTypes.string, + showLabel: PropTypes.bool, + disabled: PropTypes.bool, + }; + + static defaultProps = { + className: '', + showLabel: true, + disabled: false, + }; + + onChange(e) { + const { field } = this.props; + + field.onChange(e); + } + + render() { + const { + field, + className, + showLabel, + disabled, + } = this.props; + + if (field.value === '' && field.default !== '') { + field.value = field.default; + } + + return ( +
+
+ (!disabled ? this.onChange(e) : null)} + /> +
+ + {field.error &&
{field.error}
} + {field.label && showLabel && } +
+ ); + } +} diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index a7d33a3ea..560068efc 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -65,6 +65,18 @@ const messages = defineMessages({ id: 'settings.service.form.enableDarkMode', defaultMessage: '!!!Enable Dark Mode', }, + darkReaderBrightness: { + id: 'settings.service.form.darkReaderBrightness', + defaultMessage: '!!!Darkreader Brightness', + }, + darkReaderContrast: { + id: 'settings.service.form.darkReaderContrast', + defaultMessage: '!!!Darkreader Contrast', + }, + darkReaderSepia: { + id: 'settings.service.form.darkReaderSepia', + defaultMessage: '!!!Darkreader Sepia', + }, enableProxy: { id: 'settings.service.form.proxy.isEnabled', defaultMessage: '!!!Use Proxy', @@ -96,6 +108,14 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex const { action } = this.props.router.params; const { recipes, services } = this.props.stores; const { createService, updateService } = this.props.actions.service; + data.darkReaderSettings = { + brightness: data.darkReaderBrightness, + contrast: data.darkReaderContrast, + sepia: data.darkReaderSepia, + }; + delete data.darkReaderContrast; + delete data.darkReaderBrightness; + delete data.darkReaderSepia; const serviceData = data; serviceData.isMuted = !serviceData.isMuted; @@ -166,6 +186,21 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex value: service.isDarkModeEnabled, default: stores.settings.app.darkMode, }, + darkReaderBrightness: { + label: intl.formatMessage(messages.darkReaderBrightness), + value: service.darkReaderSettings ? service.darkReaderSettings.brightness : undefined, + default: 100, + }, + darkReaderContrast: { + label: intl.formatMessage(messages.darkReaderContrast), + value: service.darkReaderSettings ? service.darkReaderSettings.contrast : undefined, + default: 90, + }, + darkReaderSepia: { + label: intl.formatMessage(messages.darkReaderSepia), + value: service.darkReaderSettings ? service.darkReaderSettings.sepia : undefined, + default: 10, + }, spellcheckerLanguage: { label: intl.formatMessage(globalMessages.spellcheckerLanguage), value: service.spellcheckerLanguage, diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9f19ad742..947f927e7 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/en.json b/src/i18n/locales/en.json index ff0d57435..544ad997d 100644 --- a/src/i18n/locales/en.json +++ b/src/i18n/locales/en.json @@ -300,6 +300,10 @@ "settings.service.form.enableAudio": "Cumasaigh fuaim", "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Darkreader Brightness", + "settings.service.form.darkReaderContrast": "Darkreader Contrast", + "settings.service.form.darkReaderSepia": "Darkreader Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Cumasaigh fógraí", "settings.service.form.enableService": "Cumasaigh seirbhís", "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite", diff --git a/src/models/Service.js b/src/models/Service.js index 12a2d4af9..f073ac9fc 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -56,6 +56,8 @@ export default class Service { @observable isDarkModeEnabled = false; + @observable darkReaderSettings = { brightness: 100, contrast: 90, sepia: 10 }; + @observable spellcheckerLanguage = null; @observable isFirstLoad = true; @@ -109,6 +111,8 @@ export default class Service { this.isDarkModeEnabled = data.isDarkModeEnabled !== undefined ? data.isDarkModeEnabled : this.isDarkModeEnabled; + this.darkReaderSettings = data.darkReaderSettings !== undefined ? data.darkReaderSettings : this.darkReaderSettings; + this.hasCustomUploadedIcon = data.hasCustomIcon !== undefined ? data.hasCustomIcon : this.hasCustomUploadedIcon; this.proxy = data.proxy !== undefined ? data.proxy : this.proxy; @@ -136,6 +140,7 @@ export default class Service { id: this.id, spellcheckerLanguage: this.spellcheckerLanguage, isDarkModeEnabled: this.isDarkModeEnabled, + darkReaderSettings: this.darkReaderSettings, team: this.team, url: this.url, hasCustomIcon: this.hasCustomIcon, diff --git a/src/styles/main.scss b/src/styles/main.scss index 1e9ed5714..ceec4a95e 100644 --- a/src/styles/main.scss +++ b/src/styles/main.scss @@ -40,3 +40,4 @@ $mdi-font-path: '../node_modules/mdi/fonts'; @import './searchInput.scss'; @import './select.scss'; @import './image-upload.scss'; +@import './slider.scss'; \ No newline at end of file diff --git a/src/styles/slider.scss b/src/styles/slider.scss new file mode 100644 index 000000000..36e0638c4 --- /dev/null +++ b/src/styles/slider.scss @@ -0,0 +1,54 @@ +@import './config.scss'; + +.theme__dark .franz-form .franz-form__slider-wrapper .slider { + border: 1px solid $dark-theme-gray; + background: $dark-theme-gray; + +} + + +.franz-form { + .franz-form__slider-wrapper { + display: flex; + flex-direction: row; + + .franz-form__label { margin-left: 20px; } + + .slider-container { + width: 100%; /* Width of the outside container */ + } + + /* The slider itself */ + .slider { + -webkit-appearance: none; + width: 100%; + height: 14px; + border-radius: $theme-border-radius; + background: $theme-gray-lighter; + outline: none; + opacity: 1.0; + -webkit-transition: .2s; + transition: opacity .2s; + } + + .slider::-webkit-slider-thumb { + -webkit-appearance: none; + appearance: none; + width: 14px; + height: 14px; + border-radius: 50%; + background: $theme-brand-primary; + box-shadow: 0 1px 4px rgba(0, 0, 0, .3); + cursor: pointer; + } + + .slider::-moz-range-thumb { + width: 14px; + height: 14px; + border-radius: 50%; + background: $theme-brand-primary; + box-shadow: 0 1px 4px rgba(0, 0, 0, .3); + cursor: pointer; + } + } +} diff --git a/src/webview/recipe.js b/src/webview/recipe.js index 7b762af17..8125ec064 100644 --- a/src/webview/recipe.js +++ b/src/webview/recipe.js @@ -157,6 +157,7 @@ class RecipeController { debug('isDarkModeEnabled', this.settings.service.isDarkModeEnabled); debug('System spellcheckerLanguage', this.settings.app.spellcheckerLanguage); debug('Service spellcheckerLanguage', this.settings.service.spellcheckerLanguage); + debug('darkReaderSettigs', this.settings.service.darkReaderSettings); if (this.userscript && this.userscript.internal_setSettings) { this.userscript.internal_setSettings(this.settings); @@ -233,7 +234,8 @@ class RecipeController { console.log('Injecting DarkReader'); // Use darkreader instead - enableDarkMode({}, { + const { brightness, contrast, sepia } = this.settings.service.darkReaderSettings; + enableDarkMode({ brightness, contrast, sepia }, { css: customDarkModeCss[window.location.host] || '', }); this.universalDarkModeInjected = true; -- cgit v1.2.3-70-g09d2 From 24c6751d7618bd695ca24485b10e7e4d050b5c7b Mon Sep 17 00:00:00 2001 From: Mahadevan Sreenivasan Date: Wed, 15 Apr 2020 15:49:49 +0530 Subject: fix: Home button doesn't navigate to Service URL (#573) * fix: Home button in service navigation bar doesn't navigate to Service Home - Currently this doesnt happen because the reload method in ServiceStore simply reloads the chromium webview. - Change .reload() to .goToIndex(0) where 0 is the absolute index in navigation history - Documentation can be found here - https://www.electronjs.org/docs/api/webview-tag#webviewgotoindexindex * fix: Home button navigation - Navigate to webiew.goToIndex(0) in WebControlsScreen instead of modifying ServicesStore based on @vantezzen's comments --- src/features/webControls/containers/WebControlsScreen.js | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/src/features/webControls/containers/WebControlsScreen.js b/src/features/webControls/containers/WebControlsScreen.js index 31168a397..258b15b14 100644 --- a/src/features/webControls/containers/WebControlsScreen.js +++ b/src/features/webControls/containers/WebControlsScreen.js @@ -52,11 +52,8 @@ class WebControlsScreen extends Component { } goHome() { - const { reloadActive } = this.props.actions.service; - if (!this.webview) return; - - reloadActive(); + this.webview.goToIndex(0); } reload() { -- cgit v1.2.3-70-g09d2 From 7207180d3f3d3aec28df006522ccd22eeba655dc Mon Sep 17 00:00:00 2001 From: saruwman <41330038+saruwman@users.noreply.github.com> Date: Wed, 15 Apr 2020 19:36:05 +0100 Subject: Warning about using Nodejs versions > 10 (#578) I removed the warning about using nodejs versions above 10 because they function well in the dev environement. --- README.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/README.md b/README.md index 5ee24c72e..d9e97e817 100644 --- a/README.md +++ b/README.md @@ -185,7 +185,7 @@ If you use an AUR Helper e.g. yay, simply install it via `yay -S ferdi`. #### Node.js -Please make sure you are running NodeJS v10 ([v10.16.3](https://nodejs.org/dist/v10.16.3/) suggested). Versions above will throw an errow when trying to install due to an [old fsevent dependency](https://github.com/fsevents/fsevents/issues/278). +Please make sure you are running NodeJS v10 or above. #### Git -- cgit v1.2.3-70-g09d2 From 95756558f80c1429e289b946ef9b569786d106ed Mon Sep 17 00:00:00 2001 From: "allcontributors[bot]" <46447321+allcontributors[bot]@users.noreply.github.com> Date: Wed, 15 Apr 2020 19:41:31 +0100 Subject: docs: add saruwman as a contributor (#579) * docs: update README.md [skip ci] * docs: update .all-contributorsrc [skip ci] Co-authored-by: allcontributors[bot] <46447321+allcontributors[bot]@users.noreply.github.com> --- .all-contributorsrc | 9 +++++++++ README.md | 5 ++++- 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.all-contributorsrc b/.all-contributorsrc index 4bcb71751..def591b62 100644 --- a/.all-contributorsrc +++ b/.all-contributorsrc @@ -492,6 +492,15 @@ "contributions": [ "code" ] + }, + { + "login": "saruwman", + "name": "saruwman", + "avatar_url": "https://avatars2.githubusercontent.com/u/41330038?v=4", + "profile": "https://github.com/saruwman", + "contributions": [ + "doc" + ] } ], "contributorsPerLine": 6, diff --git a/README.md b/README.md index d9e97e817..ad9c85799 100644 --- a/README.md +++ b/README.md @@ -14,7 +14,7 @@

GitHub Releases -Contributors +Contributors Open Collective backers Open Collective sponsors @@ -347,6 +347,9 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
Jake Lee

🖋
Sampath Kumar Krishnan

💻 + +
saruwman

📖 + -- cgit v1.2.3-70-g09d2 From 32fd099ec62cd2d11a1f3adb3c3172272bb0d70f Mon Sep 17 00:00:00 2001 From: Ferdi Bot <56048320+FerdiBot@users.noreply.github.com> Date: Fri, 17 Apr 2020 10:10:04 +0200 Subject: New Crowdin translations (#570) * New translations en-US.json (Spanish) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Italian) * New translations en-US.json (Japanese) * New translations en-US.json (Korean) * New translations en-US.json (Norwegian) * New translations en-US.json (Polish) * New translations en-US.json (Portuguese) * New translations en-US.json (Romanian) * New translations en-US.json (Indonesian) * New translations en-US.json (Russian) * New translations en-US.json (Serbian (Cyrillic)) * New translations en-US.json (Slovak) * New translations en-US.json (Slovenian) * New translations en-US.json (Swedish) * New translations en-US.json (Turkish) * New translations en-US.json (Ukrainian) * New translations en-US.json (Irish) * New translations en-US.json (Hungarian) * New translations en-US.json (Afrikaans) * New translations en-US.json (Czech) * New translations en-US.json (Arabic) * New translations en-US.json (Bosnian) * New translations en-US.json (Catalan) * New translations en-US.json (Chinese Simplified) * New translations en-US.json (Chinese Traditional) * New translations en-US.json (Croatian) * New translations en-US.json (Danish) * New translations en-US.json (Hebrew) * New translations en-US.json (Dutch) * New translations en-US.json (Finnish) * New translations en-US.json (Flemish) * New translations en-US.json (French) * New translations en-US.json (Georgian) * New translations en-US.json (German) * New translations en-US.json (Greek) * New translations en-US.json (Vietnamese) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Portuguese, Brazilian) * New translations en-US.json (Portuguese) * New translations en-US.json (Portuguese) * New translations en-US.json (Portuguese) * New translations en-US.json (Portuguese) --- src/i18n/locales/af.json | 4 + src/i18n/locales/ar.json | 4 + src/i18n/locales/bs.json | 4 + src/i18n/locales/ca.json | 4 + src/i18n/locales/cs.json | 4 + src/i18n/locales/da.json | 4 + src/i18n/locales/de.json | 4 + src/i18n/locales/el.json | 4 + src/i18n/locales/es.json | 4 + src/i18n/locales/fi.json | 4 + src/i18n/locales/fr.json | 4 + src/i18n/locales/ga.json | 4 + src/i18n/locales/he.json | 4 + src/i18n/locales/hr.json | 4 + src/i18n/locales/hu.json | 4 + src/i18n/locales/id.json | 4 + src/i18n/locales/it.json | 4 + src/i18n/locales/ja.json | 4 + src/i18n/locales/ka.json | 4 + src/i18n/locales/ko.json | 4 + src/i18n/locales/nl-BE.json | 4 + src/i18n/locales/nl.json | 4 + src/i18n/locales/no.json | 4 + src/i18n/locales/pl.json | 4 + src/i18n/locales/pt-BR.json | 4 + src/i18n/locales/pt.json | 560 +++++++++++++++++++++--------------------- src/i18n/locales/ro.json | 4 + src/i18n/locales/ru.json | 4 + src/i18n/locales/sk.json | 4 + src/i18n/locales/sl.json | 4 + src/i18n/locales/sr.json | 4 + src/i18n/locales/sv.json | 4 + src/i18n/locales/tr.json | 4 + src/i18n/locales/uk.json | 4 + src/i18n/locales/vi.json | 4 + src/i18n/locales/zh-HANT.json | 4 + src/i18n/locales/zh.json | 4 + 37 files changed, 426 insertions(+), 278 deletions(-) diff --git a/src/i18n/locales/af.json b/src/i18n/locales/af.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/af.json +++ b/src/i18n/locales/af.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/ar.json b/src/i18n/locales/ar.json index 015ada370..ebe4419f9 100644 --- a/src/i18n/locales/ar.json +++ b/src/i18n/locales/ar.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/bs.json b/src/i18n/locales/bs.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/bs.json +++ b/src/i18n/locales/bs.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index 30ecf9766..340b5f4cf 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Activa l'àudio", "settings.service.form.enableBadge": "Mostra les insígnies als missatges no llegits.", "settings.service.form.enableDarkMode": "Activar el Mode Fosc", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Activa les notificacions", "settings.service.form.enableService": "Activa el servei", "settings.service.form.headlineBadges": "Insígnies de missatges no llegits", diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index 3761c76f0..f2d80e845 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Zapnout zvuk", "settings.service.form.enableBadge": "Ukázat odznaky nepřečtených zpráv", "settings.service.form.enableDarkMode": "Povolit Tmavý vzhled", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Povolit upozornění", "settings.service.form.enableService": "Povolit službu", "settings.service.form.headlineBadges": "Odznaky nepřečtených zpráv", diff --git a/src/i18n/locales/da.json b/src/i18n/locales/da.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/da.json +++ b/src/i18n/locales/da.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index ee78dfc67..a4cff3a32 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Audio aktivieren", "settings.service.form.enableBadge": "Nachrichten-Badge anzeigen", "settings.service.form.enableDarkMode": "Dark Mode aktivieren", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Benachrichtigungen aktivieren", "settings.service.form.enableService": "Dienst aktivieren", "settings.service.form.headlineBadges": "Nachrichten-Badge", diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index f51060d96..a5d95e7f8 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Ενεργοποίηση ήχου", "settings.service.form.enableBadge": "Εμφάνιση εικονιδίων μη αναγνωσμένου μηνύματος", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Ενεργοποίηση ειδοποιήσεων", "settings.service.form.enableService": "Ενεργοποίηση υπηρεσίας", "settings.service.form.headlineBadges": "Εικονίδια μη αναγνωσμένου μηνύματος", diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 2d0a0023f..ba72a7a8e 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Habilitar audio", "settings.service.form.enableBadge": "Mostrar señal de mensajes no leídos", "settings.service.form.enableDarkMode": "Habilitar modo oscuro", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Activar notificaciones", "settings.service.form.enableService": "Activar servicio", "settings.service.form.headlineBadges": "Insignias de mensaje no leídos", diff --git a/src/i18n/locales/fi.json b/src/i18n/locales/fi.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/fi.json +++ b/src/i18n/locales/fi.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 6c53e7f81..9cc26b990 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Activer l'audio", "settings.service.form.enableBadge": "Afficher le badge des messages non lus", "settings.service.form.enableDarkMode": "Activer le mode sombre", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Activer les notifications", "settings.service.form.enableService": "Activer le service", "settings.service.form.headlineBadges": "Badge des messages non lus", diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index 5a701ac86..5da8219c0 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Cumasaigh fuaim", "settings.service.form.enableBadge": "Taispeáin comhartha do theachtaireachtaí neamhléite", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Cumasaigh fógraí", "settings.service.form.enableService": "Cumasaigh seirbhís", "settings.service.form.headlineBadges": "Comhartha do theachtaireachtaí neamhléite", diff --git a/src/i18n/locales/he.json b/src/i18n/locales/he.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/he.json +++ b/src/i18n/locales/he.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index a3243b405..879328576 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Omogućite zvuk", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Omogućite obavijesti", "settings.service.form.enableService": "Omogućite usluge", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index d39a569cd..cc699a6fb 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Hang engedélyezése", "settings.service.form.enableBadge": "Mutasd az olvasatlan jelzéseket", "settings.service.form.enableDarkMode": "Sötét mód engedélyezése", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Értesítések engedélyezése", "settings.service.form.enableService": "Szolgáltatás engedélyezése", "settings.service.form.headlineBadges": "Olvasatlan üzenet jelzések", diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 6065e05ab..47039a827 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Aktifkan audio", "settings.service.form.enableBadge": "Tampilkan lencana pesan belum dibaca", "settings.service.form.enableDarkMode": "Aktifkan Mode Gelap", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Aktifkan pemberitahuan", "settings.service.form.enableService": "Aktifkan layanan", "settings.service.form.headlineBadges": "Lencana pesan belum dibaca", diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 68307be0c..815f5bcb4 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Attiva audio", "settings.service.form.enableBadge": "Mostra l'etichetta dei messaggi non letti", "settings.service.form.enableDarkMode": "Attiva la modalità scura.", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Attiva le notifiche", "settings.service.form.enableService": "Attiva il servizio", "settings.service.form.headlineBadges": "Etichetta dei messaggi non letti", diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index 78dde7913..b7a7bbc7b 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "オーディオを有効にする", "settings.service.form.enableBadge": "未読件数の通知バッジを表示する", "settings.service.form.enableDarkMode": "ダークモードを有効にする", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "通知を有効にする", "settings.service.form.enableService": "サービスを有効にする", "settings.service.form.headlineBadges": "未読件数の通知バッジ", diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index e17ec57fd..2161bbc97 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "შეტყობინებების ჩართვა", "settings.service.form.enableService": "სერვისის ჩართვა", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/ko.json b/src/i18n/locales/ko.json index 5d2e0afed..fb02761b6 100644 --- a/src/i18n/locales/ko.json +++ b/src/i18n/locales/ko.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 86d622d3f..46619f3e0 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Audio inschakelen", "settings.service.form.enableBadge": "Toon badges met ongelezen berichten", "settings.service.form.enableDarkMode": "Dark Mode aanzetten", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Notificaties aanzetten", "settings.service.form.enableService": "Service aanzetten", "settings.service.form.headlineBadges": "Ongelezen berichten badges", diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 9e32f47b1..3995f56f8 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Audio inschakelen", "settings.service.form.enableBadge": "Toon badges met ongelezen berichten", "settings.service.form.enableDarkMode": "Dark mode aanzetten", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Meldingen inschakelen", "settings.service.form.enableService": "Service inschakelen", "settings.service.form.headlineBadges": "Ongelezen berichten badges", diff --git a/src/i18n/locales/no.json b/src/i18n/locales/no.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/no.json +++ b/src/i18n/locales/no.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index ea01997ca..65ce1c1db 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Włącz dźwięk", "settings.service.form.enableBadge": "Pokaż znacznik nieprzeczytanych wiadomości", "settings.service.form.enableDarkMode": "Włącz Ciemny motyw", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Aktywuj powiadomienia", "settings.service.form.enableService": "Aktywuj usługę", "settings.service.form.headlineBadges": "Znaczniki nieprzeczytanych wiadomości", diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 7f85c5996..cae5fa457 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Ativar áudio", "settings.service.form.enableBadge": "Mostrar emblemas de mensagens não lidas", "settings.service.form.enableDarkMode": "Ativar o Tema Escuro", + "settings.service.form.darkReaderBrightness": "Brilho", + "settings.service.form.darkReaderContrast": "Contraste", + "settings.service.form.darkReaderSepia": "Sépia", + "settings.service.form.headlineDarkReaderSettings": "Configurações do Leitor Escuro", "settings.service.form.enableNotification": "Ativar notificações", "settings.service.form.enableService": "Ativar serviço", "settings.service.form.headlineBadges": "Emblema de mensagem não lida", diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index aef7d6063..ff2eb8889 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json @@ -1,18 +1,18 @@ { "app.errorHandler.action": "Actualizar", - "app.errorHandler.headline": "Uoops! Algo correu mal", + "app.errorHandler.headline": "Alguma coisa correu mal", "changeserver.headline": "Alterar servidor", "changeserver.label": "Servidor", "changeserver.submit": "Enviar", - "feature.announcements.changelog.headline": "Alterações no Ferdi {version}", - "feature.debugger.title": "Publish debugging information", - "feature.delayApp.headline": "Por favor, adquira uma licença Ferdi para não ter tempo de espera", + "feature.announcements.changelog.headline": "Mudanças no Ferdi {version}", + "feature.debugger.title": "Publicar informações de debug", + "feature.delayApp.headline": "Por favor, adquira uma licença de apoiante Ferdi para não ficar à espera", "feature.delayApp.text": "Ferdi continuará em {seconds} segundos.", "feature.delayApp.trial.action": "Sim, eu quero o período de testes gratuito de 14 dias do Ferdi Professional", "feature.delayApp.trial.actionShort": "Ativar período de testes gratuito do Ferdi Professional", "feature.delayApp.trial.headline": "Empieza el periodo de prueba de Ferdi Profesional por 14 días y cruza la linea.", "feature.delayApp.upgrade.action": "Adquira uma licença de suporte Ferdi", - "feature.delayApp.upgrade.actionShort": "Atualizar conta", + "feature.delayApp.upgrade.actionShort": "Faça upgrade da conta", "feature.planSelection.cta.ctaDowngradeFree": "Despromover para Gratuito", "feature.planSelection.cta.stayOnFree": "Continuar em Gratuito", "feature.planSelection.cta.trial": "Iniciar meu teste grátis de 14 dias", @@ -29,13 +29,13 @@ "feature.planSelection.personal.text": "Mais serviços, sem espera - ideal para uso pessoal.", "feature.planSelection.pricesBasedOnAnnualPayment": "Todos os preços são baseados no pagamento anual", "feature.planSelection.pro.text": "Serviços ilimitados e recursos profissionais para si - e para a sua equipa.", - "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.", - "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", - "feature.publishDebugInfo.privacy": "Privacy policy", - "feature.publishDebugInfo.publish": "Accept and publish", - "feature.publishDebugInfo.published": "Your debug log was published and is now availible at", + "feature.publishDebugInfo.error": "Houve um erro ao tentar publicar as informações de depuração. Por favor, tente novamente mais tarde ou visualize a consola para mais informações.", + "feature.publishDebugInfo.info": "Publicar as suas informações de depuração ajuda-nos a encontrar problemas e erros no Ferdi. Ao publicar as suas informações de depuração, aceita a política de privacidade e termos de serviço do depurador Ferdi", + "feature.publishDebugInfo.privacy": "Política de Privacidade", + "feature.publishDebugInfo.publish": "Aceitar e publicar", + "feature.publishDebugInfo.published": "O seu registo de depuração foi publicado e está agora disponível em", "feature.publishDebugInfo.terms": "Termos de serviço", - "feature.publishDebugInfo.title": "Publish debug information", + "feature.publishDebugInfo.title": "Publicar informações de depuração", "feature.quickSwitch.info": "Seleccione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.", "feature.quickSwitch.search": "A procurar...", "feature.quickSwitch.title": "Troca Rápida", @@ -44,12 +44,12 @@ "feature.shareFranz.action.facebook": "Compartilhar no Facebook", "feature.shareFranz.action.twitter": "Compartilhar no Twitter", "feature.shareFranz.headline": "Ferdi é melhor em grupo!", - "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", - "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", - "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem. ", - "feature.todos.premium.info": "As Listas de Tarefa do Ferdi estão disponíveis para usuários premium!", - "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.", - "feature.todos.premium.upgrade": "Actualizar cuenta", + "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira a aplicação gratuita para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com", + "feature.shareFranz.shareText.twitter": "Adicionei {count} serviços no Ferdi! Faça o download da aplicação para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger", + "feature.shareFranz.text": "Diga aos seus amigos e colegas o quão incrível é Ferdi e ajude-nos a espalhar a mensagem.", + "feature.todos.premium.info": "As Listas de Tarefas de Ferdi agora estão disponíveis para utilizadores premium!", + "feature.todos.premium.rollout": "Todas as outras pessoas terão que esperar um pouco mais.", + "feature.todos.premium.upgrade": "Faça upgrade da conta", "feature.trialStatusBar.cta": "Promover agora", "feature.trialStatusBar.expired": "Seu teste grátis Ferdi {plan} expirou, por favor actualize sua conta.", "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Despromover para Gratuito", @@ -57,58 +57,58 @@ "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.", "feature.trialStatusBar.fullscreen.dialog.title": "Despromover o seu Plano Ferdi", "feature.trialStatusBar.restTime": "Seu teste grátis Ferdi {plan} termina em {time}.", - "global.api.unhealthy": "Não foi possível conectar-se aos serviços on-line do Ferdi.", - "global.franzProRequired": "Se requiere una cuenta Ferdi Profesional", - "global.notConnectedToTheInternet": "Você não está conectado à internet", - "global.spellchecker.useDefault": "Use o padrão do sistema ({default})", - "global.spellchecking.autodetect": "Detectar idioma automaticamente.", + "global.api.unhealthy": "Não é possível ligar aos serviços online de Ferdi", + "global.franzProRequired": "É necessária uma conta Ferdi Profissional", + "global.notConnectedToTheInternet": "Não está ligado à internet.", + "global.spellchecker.useDefault": "Use o padrão de sistema ({default})", + "global.spellchecking.autodetect": "Detectar idioma automaticamente", "global.spellchecking.autodetect.short": "Automático", - "global.spellchecking.language": "Idioma para verificação ortográfica", - "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional", - "import.headline": "Importe seus serviços do Ferdi 4 ", - "import.notSupportedHeadline": "Serviços ainda não suportados pelo Ferdi 5 ", + "global.spellchecking.language": "Idioma para corrector ortográfico", + "global.upgradeButton.upgradeToPro": "Faça upgrade para Ferdi Profissional", + "import.headline": "Importe os seus serviços do Ferdi 4", + "import.notSupportedHeadline": "Serviços ainda não são suportados por Ferdi 5", "import.skip.label": "Quero adicionar serviços manualmente", "import.submit.label": "Importar serviços", - "infobar.authRequestFailed": "Houve erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.", + "infobar.authRequestFailed": "Houve erros na autenticaçao. Se este erro persistir, por favor, tente desligar e autenticar novamente.", "infobar.buttonChangelog": "O que há de novo?", - "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações ", - "infobar.buttonReloadServices": "Recarregar serviços", - "infobar.requiredRequestsFailed": "Não foi possível carregar os serviços e informações de usuário", - "infobar.servicesUpdated": "Seus serviços foram atualizados.", + "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", + "infobar.buttonReloadServices": "Reiniciar serviços", + "infobar.requiredRequestsFailed": "Não foi possível reiniciar os serviços e informações de utilizador", + "infobar.servicesUpdated": "Os seus serviços foram atualizados.", "infobar.trialActivated": "O seu período de testes foi ativado com sucesso! Boas mensagens!", - "infobar.updateAvailable": "Uma nova atualização do Ferdi está disponível.", + "infobar.updateAvailable": "Está disponível uma nova atualização de Ferdi.", "invite.email.label": "Endereço de E-mail", - "invite.headline.friends": "Convide 3 amigos ou colegas", + "invite.headline.friends": "Convide 3 dos seus amigos ou colegas", "invite.name.label": "Nome", - "invite.skip.label": "Quero fazer isso depois", + "invite.skip.label": "Quero fazer isto depois", "invite.submit.label": "Enviar convites", "invite.successInfo": "Convites enviados com sucesso", "locked.headline": "Bloqueado", - "locked.info": "Ferdi está bloqueado no momento. Por favor, desbloqueie Ferdi com sua senha para ver suas mensagens.", - "locked.invalidCredentials": "Senha inválida", - "locked.password.label": "Senha", + "locked.info": "Ferdi está bloqueado de momento. Por favor, desbloqueie Ferdi com sua palavra-passe para ver as suas mensagens.", + "locked.invalidCredentials": "Palavra-passe inválida", + "locked.password.label": "Palavra-passe", "locked.submit.label": "Desbloquear", - "locked.touchId": "Unlock with Touch ID", - "locked.touchIdPrompt": "unlock via Touch ID", - "locked.unlockWithPassword": "Unlock with Password", + "locked.touchId": "Desbloquear com Touch ID", + "locked.touchIdPrompt": "desbloquear via Touch ID", + "locked.unlockWithPassword": "Desbloquear com palavra-passe", "login.changeServer": "Alterar servidor", - "login.customServerQuestion": "Using a custom Ferdi server?", - "login.customServerSuggestion": "Try importing your Franz account", + "login.customServerQuestion": "Usa uma conta Franz para entrar?", + "login.customServerSuggestion": "Tente importar a sua conta Franz para Ferdi", "login.email.label": "Endereço de E-mail", "login.headline": "Entrar", - "login.invalidCredentials": "E-mail ou senha inválida", - "login.link.password": "Trocar a senha", + "login.invalidCredentials": "E-mail ou palavra-passe inválidos", + "login.link.password": "Redefinir palavra-passe", "login.link.signup": "Criar uma conta gratuita", - "login.password.label": "Senha", - "login.serverLogout": "Sua sessão expirou, faça o login novamente.", + "login.password.label": "Palavra-passe", + "login.serverLogout": "A sua sessão expirou, faça login novamente.", "login.submit.label": "Entrar", - "login.tokenExpired": "Sua sessão expirou, faça o login novamente.", - "menu.Todoss.closeTodosDrawer": "Fechar a gaveta de Listas de Tarefa", - "menu.Todoss.openTodosDrawer": "Abrir a gaveta de Listas de Tarefa", - "menu.app.about": "Sobre Ferdi", - "menu.app.announcement": "Quais as novidades?", - "menu.app.autohideMenuBar": "Auto-ocultar barra de menu", - "menu.app.checkForUpdates": "Verificar se há atualizações", + "login.tokenExpired": "A sua sessão expirou, faça login novamente.", + "menu.Todoss.closeTodosDrawer": "Fechar a barra de Tarefas", + "menu.Todoss.openTodosDrawer": "Abrir a barra de Tarefas", + "menu.app.about": "Acerca de Ferdi", + "menu.app.announcement": "O que há de novo?", + "menu.app.autohideMenuBar": "Ocultar barra de menu automaticamente", + "menu.app.checkForUpdates": "Procurar atualizações", "menu.app.hide": "Ocultar", "menu.app.hideOthers": "Ocultar Outros", "menu.app.quit": "Sair", @@ -117,81 +117,81 @@ "menu.edit": "Editar", "menu.edit.copy": "Copiar", "menu.edit.cut": "Cortar", - "menu.edit.delete": "Excluir", + "menu.edit.delete": "Apagar", "menu.edit.emojiSymbols": "Emoji & Símbolos", - "menu.edit.findInPage": "Find in Page", + "menu.edit.findInPage": "Localizar na página", "menu.edit.paste": "Colar", - "menu.edit.pasteAndMatchStyle": "Colar e Corresponder ao Estilo", + "menu.edit.pasteAndMatchStyle": "Colar com a mesma formatação", "menu.edit.redo": "Refazer", "menu.edit.selectAll": "Selecionar Tudo", - "menu.edit.speech": "Falar", - "menu.edit.startDictation": "Iniciar Digitação", - "menu.edit.startSpeaking": "Começar a Falar", + "menu.edit.speech": "Comando de voz", + "menu.edit.startDictation": "Iniciar Ditado", + "menu.edit.startSpeaking": "Começar a falar", "menu.edit.stopSpeaking": "Parar de Falar", - "menu.edit.undo": "Desfazer", - "menu.file": "Arquivo", + "menu.edit.undo": "Voltar", + "menu.file": "Ficheiro", "menu.help": "Ajuda", - "menu.help.changelog": "Registro de Alterações ", - "menu.help.debugInfo": "Copiar Informações de Depuração", - "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.", - "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi", - "menu.help.learnMore": "Saiba Mais ", - "menu.help.privacy": "Declaração de Privacidade ", - "menu.help.publishDebugInfo": "Publish Debug Information", + "menu.help.changelog": "Histórico de alterações", + "menu.help.debugInfo": "Copiar Informações de Debug", + "menu.help.debugInfoCopiedBody": "As Informações de Debug foram copiadas para a área de transferência.", + "menu.help.debugInfoCopiedHeadline": "Informações de Debug de Ferdi", + "menu.help.learnMore": "Saiba Mais", + "menu.help.privacy": "Declaração de Privacidade", + "menu.help.publishDebugInfo": "Publicar informações de debug", "menu.help.support": "Suporte", "menu.help.tos": "Termos de Serviço", "menu.services": "Serviços", - "menu.services.activatePreviousService": "Pular para serviço anterior", - "menu.services.addNewService": "Adicionar Novo Serviço", + "menu.services.activatePreviousService": "Ativar serviço anterior", + "menu.services.addNewService": "Adicionar Novo Serviço...", "menu.services.goHome": "Início", - "menu.services.setNextServiceActive": "Pular para próximo serviço", - "menu.todos": "Tareas pendientes", - "menu.todos.enableTodos": "Habilitar Tareas pendientes", - "menu.view": "Visualizar ", + "menu.services.setNextServiceActive": "Ativar próximo serviço", + "menu.todos": "Tarefas", + "menu.todos.enableTodos": "Ativar Tarefas", + "menu.view": "Visualizar", "menu.view.back": "Anterior", - "menu.view.enterFullScreen": "Modo Tela Cheia", - "menu.view.exitFullScreen": "Sair da Tela Cheia", + "menu.view.enterFullScreen": "Entrar em Ecrã Completo", + "menu.view.exitFullScreen": "Sair do modo ecrã completo", "menu.view.forward": "Seguinte", "menu.view.lockFerdi": "Bloquear Ferdi", "menu.view.openQuickSwitch": "Abrir Troca Rápida", - "menu.view.reloadFranz": "Recarregar Ferdi", - "menu.view.reloadService": "Reiniciar o Serviço", + "menu.view.reloadFranz": "Reiniciar Ferdi", + "menu.view.reloadService": "Reiniciar serviço", "menu.view.resetZoom": "Tamanho real", - "menu.view.toggleDarkMode": "Toggle Dark Mode", - "menu.view.toggleDevTools": "Ferramentas de Desenvolvedor", - "menu.view.toggleFullScreen": "Modo Tela Cheia", - "menu.view.toggleServiceDevTools": "Ferramentas de Serviços de Desenvolvedor", - "menu.view.toggleTodosDevTools": "Ativar as Ferramentas de Desenvolvedor das Listas de Tarefas ", + "menu.view.toggleDarkMode": "Ativar modo noturno", + "menu.view.toggleDevTools": "Ativar/desativar ferramentas de programador", + "menu.view.toggleFullScreen": "Ativar/desativar Ecrâ Completo", + "menu.view.toggleServiceDevTools": "Ativar/desativar ferramentas de programador de serviço", + "menu.view.toggleTodosDevTools": "Ativar/desativar Ferramentas de Programador para Tarefas", "menu.view.zoomIn": "Ampliar", "menu.view.zoomOut": "Reduzir", - "menu.window": "Modo Janela", + "menu.window": "Janela", "menu.window.close": "Fechar", "menu.window.minimize": "Minimizar", "menu.workspaces": "Áreas de trabalho", "menu.workspaces.addNewWorkspace": "Adicionar nova área de trabalho...", - "menu.workspaces.closeWorkspaceDrawer": "Fechar menu da área de trabalho", + "menu.workspaces.closeWorkspaceDrawer": "Fechar barra da área de trabalho", "menu.workspaces.defaultWorkspace": "Todos os serviços", - "menu.workspaces.openWorkspaceDrawer": "Abrir o menu da área de trabalho", + "menu.workspaces.openWorkspaceDrawer": "Abrir a barra lateral da área de trabalho", "password.email.label": "Endereço de E-mail", - "password.headline": "Trocar a senha", - "password.link.login": "Fazer login na sua conta", + "password.headline": "Redefinir palavra-passe", + "password.link.login": "Entrar na sua conta", "password.link.signup": "Criar uma conta gratuita", - "password.noUser": "Nenhum usuário com este e-mail foi encontrado", + "password.noUser": "Não foi encontrado nenhum utilizador com este e-mail", "password.submit.label": "Enviar", "password.successInfo": "Por favor, verifique o seu e-mail", - "premiumFeature.button.upgradeAccount": "Atualizar conta", - "pricing.features.accountSync": "Sincronização Automática", - "pricing.features.adFree": "Sin anuncios para siempre!", - "pricing.features.appDelays": "Sem Telas de Espera", + "premiumFeature.button.upgradeAccount": "Faça upgrade da conta", + "pricing.features.accountSync": "Sincronização de conta", + "pricing.features.adFree": "Sem anúncios para sempre", + "pricing.features.appDelays": "Sem Ecrãs de Espera", "pricing.features.customWebsites": "Adicionar Websites Personalizados", "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho", "pricing.features.onPremise": "En sitio y otros servicios alojados", "pricing.features.recipes": "Escolha entre mais de 70 serviços", - "pricing.features.serviceProxies": "Apoderados de Servicio", - "pricing.features.spellchecker": "Soporte de corrector ortográfico", - "pricing.features.teamManagement": "Gestão de Time", - "pricing.features.thirdPartyServices": "Instalar servicios de terceros", - "pricing.features.unlimitedServices": "Agregar servicios ilimitados", + "pricing.features.serviceProxies": "Proxies de Serviço", + "pricing.features.spellchecker": "Suporte de correção ortográfica", + "pricing.features.teamManagement": "Gestão de Equipa", + "pricing.features.thirdPartyServices": "Instalar serviços de terceiros", + "pricing.features.unlimitedServices": "Adicionar serviços ilimitados", "pricing.features.upToSixServices": "Adicionar até 6 serviços", "pricing.features.upToThreeServices": "Adicionar até 3 serviços", "pricing.features.workspaces": "Áreas de trabalho", @@ -217,144 +217,144 @@ "pricing.trial.terms.noCreditCard": "No necesita tarjeta de crédito", "pricing.trial.terms.trialWorth": "Teste gratuito (normalmente {currency}{price} por mês)", "service.crashHandler.action": "Recarregar {name}", - "service.crashHandler.autoReload": "Tentando reestabelecer {name} automaticamente em {seconds} segundos", - "service.crashHandler.headline": "Ah, não!", + "service.crashHandler.autoReload": "A tentar restabelecer {name} automaticamente em {seconds} segundos", + "service.crashHandler.headline": "Oh não!", "service.crashHandler.text": "{name} causou um erro.", "service.disabledHandler.action": "Ativar {name}", "service.disabledHandler.headline": "{name} está desativado", "service.errorHandler.action": "Recarregar {name}", "service.errorHandler.editAction": "Editar {name}", - "service.errorHandler.headline": "Ah, não!", + "service.errorHandler.headline": "Oh não!", "service.errorHandler.message": "Erro", - "service.errorHandler.text": "{name} não pôde ser carregado.", - "service.restrictedHandler.action": "Actualizar cuenta", - "service.restrictedHandler.customUrl.headline": "Necesita el Plan Ferdi Profesional", - "service.restrictedHandler.customUrl.text": "Por favor suscribase al Plan Ferdi Profesional para utilizar urls personalizadas y servicios auto alojados.", - "service.restrictedHandler.serviceLimit.headline": "Ha llegado al límite del servicio.", - "service.restrictedHandler.serviceLimit.text": "Por favor mejore su cuenta para poder utilizar más de {count} servicios.", - "service.webviewLoader.loading": "Loading {service}", + "service.errorHandler.text": "{name} não pôde ser iniciado.", + "service.restrictedHandler.action": "Faça upgrade da conta", + "service.restrictedHandler.customUrl.headline": "É necessária uma conta Ferdi Profissional", + "service.restrictedHandler.customUrl.text": "Por favor, faça o upgrade para o plano Ferdi Professional para usar Urls personalizadas e serviços auto-hospedados.", + "service.restrictedHandler.serviceLimit.headline": "Atingiu o seu limite de serviços.", + "service.restrictedHandler.serviceLimit.text": "Por favor, faça o upgrade da sua conta para usar mais de {count} serviços.", + "service.webviewLoader.loading": "A iniciar {service}", "services.getStarted": "Iniciar", "services.login": "Por favor, inicie sua sessão para usar Ferdi.", - "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no icon de roda dentada no canto inferior esquerdo.", - "services.serverless": "Use Ferdi sem uma conta", - "services.welcome": "Bem-vindo ao Ferdi!", + "services.serverInfo": "Opcionalmente, pode mudar o seu servidor Ferdi clicando no ícone da engrenagem no canto inferior esquerdo.", + "services.serverless": "Use Ferdi sem conta", + "services.welcome": "Bem-vindo ao Ferdi", "settings.account.account.editButton": "Editar conta", "settings.account.accountType.basic": "Conta Básica", - "settings.account.accountType.premium": "Conta Apoiador Premium", - "settings.account.accountUnavailable": "Account is unavailable", - "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.", + "settings.account.accountType.premium": "Conta Apoiante Premium", + "settings.account.accountUnavailable": "Conta indisponível", + "settings.account.accountUnavailableInfo": "Está a usar o Ferdi sem uma conta. Se deseja usar o Ferdi com uma conta e manter os seus serviços sincronizados entre instalações, por favor, selecione um servidor no separador Configurações e faça a autenticação.", "settings.account.buttonSave": "Atualizar perfil", - "settings.account.deleteAccount": "Excluir conta", - "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!", - "settings.account.deleteInfo": "Se você não precisa mais de sua conta Ferdi, pode exclui-la juntamente com todos os dados relacionados, aqui.", + "settings.account.deleteAccount": "Apagar conta", + "settings.account.deleteEmailSent": "Recebeu um e-mail com um link para confirmar o cancelamento da sua conta. Atenção! A sua conta e dados não poderão ser restaurados!", + "settings.account.deleteInfo": "Se não precisa mais de sua conta Ferdi, pode apagá-la juntamente com toda a sua informação aqui.", "settings.account.headline": "Conta", "settings.account.headlineAccount": "Informações de conta", - "settings.account.headlineDangerZone": "Zona de Perigo", + "settings.account.headlineDangerZone": "Zona Perigosa", "settings.account.headlineInvoices": "Recibos", - "settings.account.headlinePassword": "Mudar senha", + "settings.account.headlinePassword": "Mudar palavra-passe", "settings.account.headlineProfile": "Atualizar perfil", - "settings.account.headlineSubscription": "Sua assinatura", + "settings.account.headlineSubscription": "A sua subscrição", "settings.account.headlineTrialUpgrade": "Consiga 14 días de prueba gratis de Ferdi Profesional ", - "settings.account.headlineUpgradeAccount": "Mejore su cuenta y reciba la experiencia completa de Ferdi", - "settings.account.invoiceDownload": "Baixar", - "settings.account.manageSubscription.label": "Gerencie a sua assinatura", - "settings.account.successInfo": "Suas alterações foram gravadas", + "settings.account.headlineUpgradeAccount": "Faça um upgrade à sua conta e usufrua da experiência completa Ferdi", + "settings.account.invoiceDownload": "Download", + "settings.account.manageSubscription.label": "Gerir assinatura", + "settings.account.successInfo": "As suas alterações foram gravadas", "settings.account.trial": "Prueba Gratis", "settings.account.trialEndsIn": "Su prueba gratis finaliza en {duration}.", "settings.account.trialUpdateBillingInfo": "Por favor actualice su información de facturación para continuar utilizando {license} luego del periodo de prueba.", "settings.account.tryReloadServices": "Tente novamente", "settings.account.tryReloadUserInfoRequest": "Tente novamente", - "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional", - "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações do usuário", - "settings.account.yourLicense": "Su Licencia Ferdi", - "settings.app.accentColorInfo": "Escreva sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)", + "settings.account.upgradeToPro.label": "Faça upgrade para Ferdi Profissional", + "settings.account.userInfoRequestFailed": "Não foi possível carregar as informações de utilizador", + "settings.account.yourLicense": "A sua licença Ferdi", + "settings.app.accentColorInfo": "Defina a cor de destaque em formato CSS compatível. (Padrão: #7367f0)", "settings.app.buttonClearAllCache": "Limpar cache", - "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações ", - "settings.app.buttonSearchForUpdate": "Verificar se há atualizações", - "settings.app.cacheInfo": "O cache do Ferdi está usando {size} de espaço em disco atualmente.", + "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", + "settings.app.buttonSearchForUpdate": "Procurar atualizações", + "settings.app.cacheInfo": "De momento, a cache de Ferdi está a usar {size} de espaço de disco.", "settings.app.currentVersion": "Versão atual:", "settings.app.form.accentColor": "Cor de destaque", - "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my OS's dark mode setting", + "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com a configuração modo noturno do sistema operativo", "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", - "settings.app.form.autoLaunchOnStart": "Abrir o Ferdi ao iniciar o sistema", - "settings.app.form.automaticUpdates": "Enable updates", + "settings.app.form.autoLaunchOnStart": "Abrir Ferdi ao iniciar o sistema", + "settings.app.form.automaticUpdates": "Ativar actualizações", "settings.app.form.beta": "Incluir versões beta", - "settings.app.form.customTodoServer": "Custom Todo Server", - "settings.app.form.darkMode": "Enable dark mode", + "settings.app.form.customTodoServer": "Servidor Personalizado de Tarefas", + "settings.app.form.darkMode": "Ativar modo noturno", "settings.app.form.enableGPUAcceleration": "Ativar Aceleração de GPU", - "settings.app.form.enableLock": "Enable Password Lock", + "settings.app.form.enableLock": "Ativar palavra-passe", "settings.app.form.enableSpellchecking": "Ativar correção ortográfica", - "settings.app.form.enableSystemTray": "Exibir o Ferdi na barra de sistema", - "settings.app.form.enableTodos": "Activar Ferdi Todos", - "settings.app.form.hibernate": "Activar hibernação do serviço", - "settings.app.form.hibernationStrategy": "Estratégia de Hibernação", - "settings.app.form.iconSize": "Service icon size", - "settings.app.form.inactivityLock": "Lock after inactivity", - "settings.app.form.keepAllWorkspacesLoaded": "Mantener todas las Áreas de trabajo cargadas", + "settings.app.form.enableSystemTray": "Mostrar Ferdi na barra de sistema", + "settings.app.form.enableTodos": "Ativar Tarefas Ferdi", + "settings.app.form.hibernate": "Ativar hibernação do serviço", + "settings.app.form.hibernationStrategy": "Estratégia de hibernação", + "settings.app.form.iconSize": "Tamanho de ícone de serviço", + "settings.app.form.inactivityLock": "Bloquear após inatividade", + "settings.app.form.keepAllWorkspacesLoaded": "Manter todas as áreas carregadas", "settings.app.form.language": "Idioma", - "settings.app.form.lockPassword": "Senha", - "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a área de sistema", - "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", - "settings.app.form.predefinedTodoServer": "Todo Server", - "settings.app.form.privateNotifications": "Não mostrar o conteúdo das mensagens nas notificações", - "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", - "settings.app.form.runInBackground": "Manter o Ferdi no fundo quando fechar a janela", - "settings.app.form.scheduledDNDEnabled": "Activar Não-Perturbar agendado", - "settings.app.form.scheduledDNDEnd": "Até", - "settings.app.form.scheduledDNDStart": "Desde", - "settings.app.form.sentry": "Send telemetry data", - "settings.app.form.serviceRibbonWidth": "Sidebar width", - "settings.app.form.showDisabledServices": "Mostrar abas de serviços desativados", + "settings.app.form.lockPassword": "Palavra-passe", + "settings.app.form.minimizeToSystemTray": "Minimizar Ferdi para a área de sistema", + "settings.app.form.navigationBarBehaviour": "Comportamento da barra de navegação", + "settings.app.form.predefinedTodoServer": "Servidor das Tarefas", + "settings.app.form.privateNotifications": "Não mostrar o conteúdo de mensagens nas notificações", + "settings.app.form.reloadAfterResume": "Reiniciar Ferdi após reinício de sistema", + "settings.app.form.runInBackground": "Manter Ferdi em segundo plano ao fechar a janela", + "settings.app.form.scheduledDNDEnabled": "Activar o agendamento Não Incomodar\"", + "settings.app.form.scheduledDNDEnd": "Para", + "settings.app.form.scheduledDNDStart": "De", + "settings.app.form.sentry": "Enviar dados de telemetria", + "settings.app.form.serviceRibbonWidth": "Largura da barra lateral", + "settings.app.form.showDisabledServices": "Mostrar separadores de serviços desativados", "settings.app.form.showMessagesBadgesWhenMuted": "Mostrar ícone de mensagem não lida quando as notificações estiverem desativadas", - "settings.app.form.showDragArea": "Show draggable area on window", - "settings.app.form.startMinimized": "Start minimized", - "settings.app.form.universalDarkMode": "Enable universal Dark Mode", - "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", + "settings.app.form.showDragArea": "Mostrar área arrastável na janela", + "settings.app.form.startMinimized": "Iniciar minimizado", + "settings.app.form.universalDarkMode": "Ativar o Modo Noturno Universal", + "settings.app.form.useTouchIdToUnlock": "Permite usar o TouchID para desbloquear Ferdi", "settings.app.headline": "Configurações", "settings.app.headlineAdvanced": "Avançado", "settings.app.headlineAppearance": "Aparência", "settings.app.headlineGeneral": "Geral", "settings.app.headlineLanguage": "Idioma", "settings.app.headlineUpdates": "Atualizações", - "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.", - "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", - "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.", - "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.", - "settings.app.lockedPassword": "Senha", - "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", - "settings.app.restartRequired": "As mudanças exigem reiniciar o sistema", - "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.", - "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.", - "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.", - "settings.app.subheadlineCache": "memória cache", - "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature.", - "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para seu idioma.", - "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", - "settings.app.updateStatusAvailable": "Atualização disponível, baixando...", - "settings.app.updateStatusSearching": "Buscando atualizações", - "settings.app.updateStatusUpToDate": "Você está usando a última versão do Ferdi", + "settings.app.hibernateInfo": "Por princípio, Ferdi manterá todos os serviços abertos e carregados em segundo plano para que estejam prontos sempre que os quiser utilizar. A hibernação do serviço suspende os serviços após um determinado tempo. Isto é útil para conservar memória RAM ou impedir que os serviços afetem o desempenho do computador.", + "settings.app.inactivityLockInfo": "Minutos de inatividade, após os quais Ferdi bloqueará automaticamente. Use 0 para desativar", + "settings.app.languageDisclaimer": "As traduções oficiais são Inglês e Alemão. Todas as outras traduções são feitas pela comunidade.", + "settings.app.lockInfo": "O bloqueio de palavra-passe permite manter as suas mensagens protegidas.\nAo usar o bloqueio de palavra-passe, será solicitado que volte a digitar a sua palavra-passe sempre que reiniciar Ferdi. Pode bloquear Ferdi usando o símbolo de bloquear no canto inferior esquerdo ou o atalho CMD/CTRL+Shift+L.", + "settings.app.lockedPassword": "Palavra-passe", + "settings.app.lockedPasswordInfo": "Por favor certifique-se de definir uma palavra-passe que se lembre.\nSe perder esta palavra-passe, terá que reinstalar Ferdi.", + "settings.app.restartRequired": "As mudanças requerem reinício de sistema", + "settings.app.scheduledDNDInfo": "O Não Incomodar permite definir um período de tempo em que não quer receber notificações.", + "settings.app.scheduledDNDTimeInfo": "Horas em formato 24h. Pode definir a hora do fim antes da hora de início (p. ex. início 17:00, fim 09:00) para ativar o modo \"Não incomodar\" durante a noite.", + "settings.app.sentryInfo": "O envio de dados de telemetria permite que encontremos erros na Ferdi - não será enviada nenhuma informação pessoal como dados da sua mensagem! Mudar esta opção requer o reinício de Ferdi.", + "settings.app.subheadlineCache": "Memória cache", + "settings.app.todoServerInfo": "Este servidor será usado para a funcionalidade \"Tarefas Ferdi\".", + "settings.app.translationHelp": "Ajude-nos a traduzir o Ferdi para o seu idioma.", + "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente os estilos do modo noturno para serviços que não o suportem de outra forma atualmente.", + "settings.app.updateStatusAvailable": "Atualização disponível, a fazer download...", + "settings.app.updateStatusSearching": "Está à procura de atualizações", + "settings.app.updateStatusUpToDate": "Está a utilizar a versão mais recente de Ferdi", "settings.invite.headline": "Convidar Amigos", "settings.navigation.account": "Conta", "settings.navigation.availableServices": "Serviços disponíveis", "settings.navigation.logout": "Sair", "settings.navigation.settings": "Configurações", - "settings.navigation.supportFerdi": "Support Ferdi", - "settings.navigation.team": "Administrar a equipe", - "settings.navigation.yourServices": "Seus serviços", - "settings.navigation.yourWorkspaces": "Suas áreas de trabalho", + "settings.navigation.supportFerdi": "Apoie Ferdi", + "settings.navigation.team": "Gerir Equipa", + "settings.navigation.yourServices": "Os seus serviços", + "settings.navigation.yourWorkspaces": "As suas áreas de trabalho", "settings.recipes.all": "Todos os serviços", - "settings.recipes.custom": "Servicios Personalizados", - "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", - "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", - "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", - "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", - "settings.recipes.customService.openDevDocs": "Developer Documentation", - "settings.recipes.customService.openFolder": "Open folder", + "settings.recipes.custom": "Serviços Personalizados", + "settings.recipes.customService.headline.communityRecipes": "Receitas da comunidade de terceiros", + "settings.recipes.customService.headline.customRecipes": "Receitas personalizadas de terceiros", + "settings.recipes.customService.headline.devRecipes": "As suas Receitas de Serviço de Desenvolvimento", + "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie a receita do serviço para:", + "settings.recipes.customService.openDevDocs": "Documentação para programadores", + "settings.recipes.customService.openFolder": "Abrir pasta", "settings.recipes.headline": "Serviços disponíveis", - "settings.recipes.missingService": "Sentiu falta de algum serviço?", + "settings.recipes.missingService": "Sente falta de algum serviço?", "settings.recipes.mostPopular": "Mais populares", - "settings.recipes.nothingFound": "Desculpe, mas nenhum serviço corresponde a sua pesquisa.", - "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado", + "settings.recipes.nothingFound": "Desculpe mas nenhum serviço corresponde à sua pesquisa.", + "settings.recipes.servicesSuccessfulAddedInfo": "Serviço adicionado com sucesso", "settings.searchService": "Procurar serviço", "settings.service.error.goBack": "Voltar aos serviços", "settings.service.error.headline": "Erro", @@ -363,122 +363,126 @@ "settings.service.form.availableServices": "Serviços disponíveis", "settings.service.form.customUrl": "Servidor personalizado", "settings.service.form.customUrlPremiumInfo": "Para adicionar serviços auto-hospedados, você precisa de uma conta Apoiador Ferdi Premium.", - "settings.service.form.customUrlUpgradeAccount": "Atualize a sua conta", - "settings.service.form.customUrlValidationError": "Não foi possível validar o servidor personalizado {name}.", + "settings.service.form.customUrlUpgradeAccount": "Faça upgrade à sua conta", + "settings.service.form.customUrlValidationError": "Não foi possível validar servidor personalizado {name}.", "settings.service.form.deleteButton": "Apagar serviço", "settings.service.form.editServiceHeadline": "Editar {name}", "settings.service.form.enableAudio": "Ativar áudio", "settings.service.form.enableBadge": "Mostrar aviso de mensagens não lidas", "settings.service.form.enableDarkMode": "Ativar modo noturno", + "settings.service.form.darkReaderBrightness": "Luminosidade", + "settings.service.form.darkReaderContrast": "Contraste", + "settings.service.form.darkReaderSepia": "Sépia", + "settings.service.form.headlineDarkReaderSettings": "Configurações do leitor noturno", "settings.service.form.enableNotification": "Ativar notificações", "settings.service.form.enableService": "Ativar serviço", - "settings.service.form.headlineBadges": "Mensagens não lidas", + "settings.service.form.headlineBadges": "Notificações de Mensagens não lidas", "settings.service.form.headlineGeneral": "Geral", "settings.service.form.headlineNotifications": "Notificações", "settings.service.form.icon": "Ícone personalizado", - "settings.service.form.iconDelete": "Excluir", - "settings.service.form.iconUpload": "Solte sua imagem ou clique aqui", - "settings.service.form.indirectMessageInfo": "Você será notificado por todas as mensagens em um canal, não apenas @usuário, @channel, @here, ...", + "settings.service.form.iconDelete": "Apagar", + "settings.service.form.iconUpload": "Arraste a sua imagem ou clíque aqui", + "settings.service.form.indirectMessageInfo": "Será notificado acerca de todas as mensagens de um canal, não apenas @utilizador, @canal, @aqui, ...", "settings.service.form.indirectMessages": "Mostrar avisos para todas as mensagens", - "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", + "settings.service.form.isMutedInfo": "Quando desativado, as notificações sonoras e áudio serão silenciados", "settings.service.form.name": "Nome", - "settings.service.form.openDarkmodeCss": "Open darkmode.css", - "settings.service.form.openUserCss": "Open user.css", - "settings.service.form.openUserJs": "Open user.js", + "settings.service.form.openDarkmodeCss": "Abrir darkmode.css", + "settings.service.form.openUserCss": "Abrir user.css", + "settings.service.form.openUserJs": "Abrir user.js", "settings.service.form.proxy.headline": "Configurações de HTTP/HTTPS Proxy", - "settings.service.form.proxy.host": "Proxy Host/IP", - "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores do Ferdi.", - "settings.service.form.proxy.isEnabled": "Usar o Proxy", - "settings.service.form.proxy.password": "Senha (opcional)", + "settings.service.form.proxy.host": "Servidor/IP Proxy", + "settings.service.form.proxy.info": "As configurações de proxy não serão sincronizadas com os servidores de Ferdi.", + "settings.service.form.proxy.isEnabled": "Usar Proxy", + "settings.service.form.proxy.password": "Palavra-passe (opcional)", "settings.service.form.proxy.port": "Porta", "settings.service.form.proxy.restartInfo": "Por favor, reinicie o Ferdi após alterar as configurações de proxy.", - "settings.service.form.proxy.user": "Usuário (opcional)", - "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.", - "settings.service.form.saveButton": "Salvar serviço", - "settings.service.form.tabHosted": "Hospedado", - "settings.service.form.tabOnPremise": "Auto-hospedado ⭐️", - "settings.service.form.team": "Equipe", - "settings.service.form.useHostedService": "Use o serviço {name} hospedado.", - "settings.service.form.yourServices": "Seus serviços", - "settings.services.deletedInfo": "Serviço excluído", + "settings.service.form.proxy.user": "Utilizador (opcional)", + "settings.service.form.recipeFileInfo": "Os seus ficheiros serão inseridos na página da web para que possa personalizar os serviços da maneira que desejar. Os ficheiros são apenas armazenados localmente e não são transferidos para outros computadores usando a mesma conta.", + "settings.service.form.saveButton": "Gravar serviço", + "settings.service.form.tabHosted": "Alojado", + "settings.service.form.tabOnPremise": "Auto-alojado ⭐️", + "settings.service.form.team": "Equipa", + "settings.service.form.useHostedService": "Use o serviço alojado {name}.", + "settings.service.form.yourServices": "Os seus serviços", + "settings.services.deletedInfo": "Serviço apagado", "settings.services.discoverServices": "Descobrir serviços", - "settings.services.headline": "Seus serviços", - "settings.services.noServicesAdded": "Você ainda não adicionou nenhum serviço.", + "settings.services.headline": "Os seus serviços", + "settings.services.noServicesAdded": "Ainda não adicionou nenhum serviço.", "settings.services.servicesRequestFailed": "Não foi possível carregar os seus serviços", "settings.services.tooltip.isDisabled": "O serviço está desativado", "settings.services.tooltip.isMuted": "Sem som", "settings.services.tooltip.notificationsDisabled": "Notificações desativadas", - "settings.services.updatedInfo": "Suas alterações foram gravadas", - "settings.supportFerdi.github": "Star on GitHub", - "settings.supportFerdi.headline": "Support Ferdi", - "settings.supportFerdi.openCollective": "Support our Open Collective", - "settings.supportFerdi.share": "Tell your Friends", - "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", - "settings.team.contentHeadline": "Franz Team Management", - "settings.team.copy": "Franz's Team Management allows you to manage Franz Subscriptions for multiple users. Please keep in mind that having a Franz Premium subscription will give you no advantages in using Ferdi: The only reason you still have access to Team Management is so you can manage your legacy Franz Teams and so that you don't loose any functionality in managing your account.", - "settings.team.headline": "Equipe", - "settings.team.intro": "Your are currently using Franz Servers, which is why you have access to Team Management.", - "settings.team.manageAction": "Manage your Team on meetfranz.com", - "settings.team.teamsUnavailable": "Teams are unavailable", - "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.", - "settings.team.upgradeAction": "Atualize a sua conta para versão paga", + "settings.services.updatedInfo": "As suas alterações foram gravadas", + "settings.supportFerdi.github": "Adicione uma estrela no Github", + "settings.supportFerdi.headline": "Apoie Ferdi", + "settings.supportFerdi.openCollective": "Apoie o nosso Open Collective", + "settings.supportFerdi.share": "Diga aos seus amigos", + "settings.supportFerdi.title": "Gosta de Ferdi? Espalhe o amor!", + "settings.team.contentHeadline": "Gestão de Equipas Franz", + "settings.team.copy": "A Gestão de Equipas Franz permite gerir as assinaturas Franz para múltiplos utilizadores. Por favor, lembre-se que ter uma assinatura Franz Premium não lhe dará nenhuma vantagem ao usar Ferdi: a única razão pela qual ainda tem acesso à Gestão de Equipas é para que possa gerir as suas equipas antigas e para que não perca nenhuma funcionalidade na gestão da sua conta.", + "settings.team.headline": "Equipa", + "settings.team.intro": "Atualmente não tem acesso ao Gestor de Equipas porque está a usar os Servidores Franz.", + "settings.team.manageAction": "Faça a gestão da sua Equipa em meetfranz.com", + "settings.team.teamsUnavailable": "Equipas não estão disponíveis", + "settings.team.teamsUnavailableInfo": "De momento, Equipas estão disponíveis apenas quando usar o Servidor Franz e após pagar o Franz Profissional. Por favor, altere o seu servidor para https://api.franzinfra.com para usar equipas.", + "settings.team.upgradeAction": "Faça upgrade à sua conta", "settings.user.form.accountType.company": "Empresa", "settings.user.form.accountType.individual": "Pessoal", "settings.user.form.accountType.label": "Tipo de conta", "settings.user.form.accountType.non-profit": "Sem fins lucrativos", - "settings.user.form.currentPassword": "Senha atual", + "settings.user.form.currentPassword": "Palavra-passe atual", "settings.user.form.email": "E-mail", "settings.user.form.firstname": "Nome", - "settings.user.form.lastname": "Sobrenome", - "settings.user.form.newPassword": "Nova senha", + "settings.user.form.lastname": "Apelido", + "settings.user.form.newPassword": "Nova palavra-passe", "settings.workspace.add.form.name": "Nome", - "settings.workspace.add.form.submitButton": "Criar workspace", - "settings.workspace.form.buttonDelete": "Apagar workspace", - "settings.workspace.form.buttonSave": "Salvar workspace", - "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", - "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", + "settings.workspace.add.form.submitButton": "Criar área de trabalho", + "settings.workspace.form.buttonDelete": "Apagar área de trabalho", + "settings.workspace.form.buttonSave": "Gravar área de trabalho", + "settings.workspace.form.keepLoaded": "Manter esta área de trabalho carregada*", + "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela opção global de \"Manter todos as áreas de trabalho carregadas\".", "settings.workspace.form.name": "Nome", - "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace", - "settings.workspace.form.yourWorkspaces": "Suas áreas de trabalho", - "settings.workspaces.deletedInfo": "Área de trabalho deletada", - "settings.workspaces.headline": "Suas áreas de trabalho", + "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços nesta área de trabalho", + "settings.workspace.form.yourWorkspaces": "As suas áreas de trabalho", + "settings.workspaces.deletedInfo": "Área de trabalho foi apagada", + "settings.workspaces.headline": "As suas áreas de trabalho", "settings.workspaces.noWorkspacesAdded": "Você não possui nenhuma área de trabalho adicionadas anteriormente.", "settings.workspaces.tryReloadWorkspaces": "Tente novamente", - "settings.workspaces.updatedInfo": "Suas alterações foram gravadas", - "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo Workspaces do Ferdi", - "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.", + "settings.workspaces.updatedInfo": "As suas alterações foram gravadas", + "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Apresentando áreas de trabalho Ferdi", + "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permitem que se concentre no que realmente é importante. Configure diferentes conjuntos de serviços e mude-os facilmente e a qualquer momento. Você decide quais os serviços que precisa e onde colocá-los, para que o possamos ajudar a estar no seu melhor. - Ou desligar do trabalho quando quiser.", "settings.workspaces.workspacesRequestFailed": "Não foi possível carregar suas áreas de trabalho", "sidebar.addNewService": "Adicionar novo serviço", - "sidebar.closeTodosDrawer": "Close Ferdi Todos", - "sidebar.closeWorkspaceDrawer": "Fechar menu da área de trabalho", + "sidebar.closeTodosDrawer": "Fechar Tarefas Ferdi", + "sidebar.closeWorkspaceDrawer": "Fechar barra da área de trabalho", "sidebar.lockFerdi": "Bloquear Ferdi", "sidebar.muteApp": "Desativar notificações e áudio", - "sidebar.openTodosDrawer": "Open Ferdi Todos", - "sidebar.openWorkspaceDrawer": "Abrir o menu da área de trabalho", + "sidebar.openTodosDrawer": "Abrir Tarefas Ferdi", + "sidebar.openWorkspaceDrawer": "Abrir a barra lateral da área de trabalho", "sidebar.settings": "Configurações", "sidebar.unmuteApp": "Ativar notificações e áudio", "signup.email.label": "Endereço de E-mail", - "signup.emailDuplicate": "Já existe um usuário com este endereço de e-mail", + "signup.emailDuplicate": "Já existe um utilizador com este endereço de e-mail", "signup.firstname.label": "Nome", - "signup.headline": "Cadastrar-se", - "signup.lastname.label": "Sobrenome", - "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os ", - "signup.legal.privacy": "Declaração de Privacidade ", + "signup.headline": "Entrar", + "signup.lastname.label": "Apelido", + "signup.legal.info": "Ao criar uma conta Ferdi, você aceita os", + "signup.legal.privacy": "Declaração de Privacidade", "signup.legal.terms": "Termos de serviço", - "signup.link.login": "Já tem uma conta?", - "signup.password.label": "Senha", - "signup.submit.label": "Criar uma conta", + "signup.link.login": "Já tem uma conta, entrar?", + "signup.password.label": "Palavra-passe", + "signup.submit.label": "Criar conta", "subscription.bestValue": "Best value", "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", - "subscription.cta.allOptions": "See all options", - "subscription.cta.choosePlan": "Choose your plan", - "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", - "subscription.interval.per": "per {interval}", - "subscription.interval.perMonth": "per month", + "subscription.cta.allOptions": "Ver todas as opções", + "subscription.cta.choosePlan": "Escolha o seu plano", + "subscription.includedProFeatures": "O plano Ferdi Professional inclui:", + "subscription.interval.per": "por {interval}", + "subscription.interval.perMonth": "por mês", "subscription.interval.perMonthPerUser": "por mês e por utilizador", - "subscription.planItem.upgradeAccount": "Actualizar cuenta", + "subscription.planItem.upgradeAccount": "Faça upgrade da conta", "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:", - "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ê!", + "subscription.teaser.intro": "Ferdi 5 vem com uma grande variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas incluídas. Confira os nossos novos planos e encontre o que melhor serve as suas necessidades!", "subscriptionPopup.buttonCancel": "Cancelar", "subscriptionPopup.buttonDone": "Feito", "tabs.item.deleteService": "Apagar serviço", @@ -490,27 +494,27 @@ "tabs.item.enableNotification": "Ativar notificações", "tabs.item.enableService": "Ativar serviço", "tabs.item.reload": "Actualizar", - "validation.email": "inválido", - "validation.minLength": "{campo} deve ter pelo menos {comprimento} mais caracteres ", - "validation.oneRequired": "Necessário pelo menos um", - "validation.required": "{campo} obrigatório", - "validation.url": "{campo} essa URL não é válida", + "validation.email": "{field} é inválido", + "validation.minLength": "{field} deve ter pelo menos {length} caracteres", + "validation.oneRequired": "É necessário pelo menos um", + "validation.required": "{field} é obrigatório", + "validation.url": "{field} não é um URL válido", "webControls.back": "Anterior", "webControls.forward": "Seguinte", "webControls.goHome": "Início", - "webControls.openInBrowser": "Abrir no navegador", + "webControls.openInBrowser": "Abrir no Browser", "webControls.reload": "Actualizar", "welcome.loginButton": "Entrar na sua conta", "welcome.signupButton": "Criar uma conta gratuita", - "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho", + "workspaceDrawer.addNewWorkspaceLabel": "Adicionar nova área de trabalho", "workspaceDrawer.allServices": "Todos os serviços", "workspaceDrawer.headline": "Áreas de trabalho", "workspaceDrawer.item.contextMenuEdit": "editar", - "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado anteriormente", - "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho", - "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes", - "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga", - "workspaceDrawer.workspaceFeatureInfo": "

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.

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ê.

", + "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço adicionado", + "workspaceDrawer.premiumCtaButtonLabel": "Crie a sua primeira área de trabalho", + "workspaceDrawer.proFeatureBadge": "Funcionalidade Premium", + "workspaceDrawer.reactivatePremiumAccountLabel": "Reative conta premium", + "workspaceDrawer.workspaceFeatureInfo": "

As áreas de trabalho do Ferdi permitem que se concentre no que realmente é importante. Configure diferentes conjuntos de serviços e mude-os facilmente e a qualquer momento.

Você decide quais os serviços que precisa e onde colocá-los, para que o possamos ajudar a estar no seu melhor. - Ou desligar do trabalho quando quiser.

", "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho", - "workspaces.switchingIndicator.switchingTo": "Mudando para" + "workspaces.switchingIndicator.switchingTo": "A mudar para" } diff --git a/src/i18n/locales/ro.json b/src/i18n/locales/ro.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/ro.json +++ b/src/i18n/locales/ro.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index f6d697834..63eee53b5 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Включить звук", "settings.service.form.enableBadge": "Показывать иконку непрочитанных сообщений", "settings.service.form.enableDarkMode": "Включить Тёмный режим", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Включить уведомления", "settings.service.form.enableService": "Включить сервис", "settings.service.form.headlineBadges": "Значки непрочитанных сообщений", diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index e07d1a0f5..eff949a7a 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Zapnúť zvuk", "settings.service.form.enableBadge": "Zobraziť symboly neprečítaných správ", "settings.service.form.enableDarkMode": "Zapnúť Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Povoliť oznámenia", "settings.service.form.enableService": "Povoliť službu", "settings.service.form.headlineBadges": "Symboly neprečítaných správ", diff --git a/src/i18n/locales/sl.json b/src/i18n/locales/sl.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/sl.json +++ b/src/i18n/locales/sl.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index 4b6982628..f2e268058 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Omogućite zvuk", "settings.service.form.enableBadge": "Покажи беџеве за непрочитане поруке", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Omogućite obavijesti", "settings.service.form.enableService": "Omogućite usluge", "settings.service.form.headlineBadges": "Беџеви за непрочитане поруке", diff --git a/src/i18n/locales/sv.json b/src/i18n/locales/sv.json index efb7cfd2c..0d3e18a27 100644 --- a/src/i18n/locales/sv.json +++ b/src/i18n/locales/sv.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Aktivera ljud", "settings.service.form.enableBadge": "Visa olästa meddelandemärken", "settings.service.form.enableDarkMode": "Aktivera mörkt läge", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Aktivera aviseringar", "settings.service.form.enableService": "Aktivera tjänst", "settings.service.form.headlineBadges": "Olästa meddelandemärken", diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 4fa22605f..54515f6fe 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Sesi etkinleştirin", "settings.service.form.enableBadge": "Okunmamış mesajları göster", "settings.service.form.enableDarkMode": "Karanlık modu aç", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Bildirimleri etkinleştir", "settings.service.form.enableService": "Servisi etkinleştir", "settings.service.form.headlineBadges": "Okunmamış mesajlar", diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index cc0f4f1dd..c6acfb4e9 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Увімкнути звук", "settings.service.form.enableBadge": "Показувати непрочитані повідомлення", "settings.service.form.enableDarkMode": "Переходь на Темну Сторону", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Увімкнути сповіщення", "settings.service.form.enableService": "Увімкнути сервіс", "settings.service.form.headlineBadges": "Значки непрочитаних повідомлень", diff --git a/src/i18n/locales/vi.json b/src/i18n/locales/vi.json index 6ffed81a1..65b0edbfa 100644 --- a/src/i18n/locales/vi.json +++ b/src/i18n/locales/vi.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/zh-HANT.json b/src/i18n/locales/zh-HANT.json index c842d890d..026df56c3 100644 --- a/src/i18n/locales/zh-HANT.json +++ b/src/i18n/locales/zh-HANT.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "啟用音效", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "啟用夜間模式", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "啟用通知", "settings.service.form.enableService": "啟用服務", "settings.service.form.headlineBadges": "Unread message badges", diff --git a/src/i18n/locales/zh.json b/src/i18n/locales/zh.json index 4260e7375..f70b2c837 100644 --- a/src/i18n/locales/zh.json +++ b/src/i18n/locales/zh.json @@ -370,6 +370,10 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", + "settings.service.form.darkReaderBrightness": "Brightness", + "settings.service.form.darkReaderContrast": "Contrast", + "settings.service.form.darkReaderSepia": "Sepia", + "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", -- cgit v1.2.3-70-g09d2 From 3239172af9fb68226e1e11392b16f833b726ad72 Mon Sep 17 00:00:00 2001 From: Bennett Date: Fri, 17 Apr 2020 14:32:53 +0200 Subject: Merge Franz 5.5.0 beta.1 and 2 (#549) * Automatic i18n update (i18n.meetfranz.com) * Fix zoom not working * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Add environment variable FRANZ_APPDATA_DIR * Add environment variable for config FRANZ_APPDATA_DIR * fix stuff that shouldn't need fixing in the first place * notarize app * bump version to 5.4.1 * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * update to electron 7.1.7 * bump version to 5.5.0 * Automatic i18n update (i18n.meetfranz.com) * Bump electron to 7.1.10 * plan changes * filter plan variants * add missing string * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Replace/remove deprecated electron function calls Electron replaced several function calls with object properties. Franz still uses some of these deprecated functions, so this commit will replace these with their new property counterpart. This commit is only transferring the changes made in getferdi/ferdi#371 and getferdi/ferdi#384 into the upstream repository. * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Update to electron 8.0.1 * feat(Service): Add service hibernation to save system resources * Fix linting issues * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Bump version to electron 8.1.1 * update strings * update electron-notarize * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Automatic i18n update (i18n.meetfranz.com) * Add audio & video permission request for cataline * Automatic i18n update (i18n.meetfranz.com) * bump version to beta 1 * Automatic i18n update (i18n.meetfranz.com) * enable external links * Fix main content href * Automatic i18n update (i18n.meetfranz.com) * fix(Service): Fix issue with user agent override in service workers * Automatic i18n update (i18n.meetfranz.com) * fix macOS string replacement * Automatic i18n update (i18n.meetfranz.com) * fix(Experimental): Fix Google signin * fix(Service): Add integrity checks to prevent services recipes getting lost * Remove service reload on app-resume * update strings * bump version to beta 2 * Automatic i18n update (i18n.meetfranz.com) * bump electron-builder and electron-updater deps * test video permissions * fix `extendInfo` keys * fix typo * fix permission request * update camera/microphone entitlements * Automatic i18n update (i18n.meetfranz.com) * Test screen capture permissions * unpack `mac-screen-capture-permissions` * don't require localstorage temp key for permissions request * move macOS permission request to main process * Fix checking for permissions * fix(macOS): Ask the user to move Franz to the `/Applications` Folder * only try to recover recipe when user is online * update service request link * Update changelog * Reset `service.lostRecipeReloadAttempt` once service is alive again * Update translations * Fix crash on macOS * Fix merge errors * Fix lint * Disable ConnectionLostBanner * #551 Add information about Ferdi to the user agent * Fix requested changes * Remove tsbuildinfo files * Add .tsbuildinfo files to gitignore * Fix "Cannot destructure property 'app' of '_electron.remote' as it is undefined" Co-authored-by: FranzBot Co-authored-by: Makazzz Co-authored-by: Stefan Malzner --- .gitignore | 1 + .travis.yml | 1 + electron-builder.yml | 1 + package-lock.json | 148 ++++++- package.json | 9 +- packages/theme/package-lock.json | 2 +- packages/theme/src/themes/dark/index.ts | 2 +- packages/theme/src/themes/default/index.ts | 3 +- .../services/content/ConnectionLostBanner.js | 119 ++++++ src/components/services/content/ServiceView.js | 8 +- src/components/services/tabs/TabItem.js | 2 +- .../settings/services/EditServiceForm.js | 14 + src/components/ui/FeatureList.js | 5 + src/containers/settings/EditServiceScreen.js | 17 +- src/electron/macOSPermissions.js | 14 + .../announcements/components/AnnouncementScreen.js | 41 +- src/features/planSelection/components/PlanItem.js | 19 +- .../planSelection/components/PlanSelection.js | 76 ++-- .../containers/PlanSelectionScreen.js | 4 +- src/helpers/plan-helpers.js | 12 +- src/helpers/userAgent-helpers.js | 45 +++ src/i18n/locales/defaultMessages.json | 447 +++++++++++++++++++-- src/i18n/locales/en-US.json | 8 +- .../services/content/ConnectionBanner.json | 67 +++ .../services/content/ConnectionLost.json | 67 +++ .../services/content/ConnectionLostBanner.json | 41 ++ .../components/services/content/WebControls.json | 67 +++ .../settings/services/EditServiceForm.json | 45 ++- .../messages/src/components/ui/FeatureList.json | 13 + .../src/containers/settings/EditServiceScreen.json | 65 +-- .../containers/settings/EditSettingsScreen.json | 2 +- .../components/WebControls.json | 67 +++ src/index.js | 13 +- src/internal-server | 2 +- src/models/Recipe.js | 4 + src/models/Service.js | 54 ++- src/stores/AppStore.js | 15 +- src/stores/ServicesStore.js | 67 ++- src/webview/lib/RecipeWebview.js | 4 + 39 files changed, 1410 insertions(+), 181 deletions(-) create mode 100644 src/components/services/content/ConnectionLostBanner.js create mode 100644 src/electron/macOSPermissions.js create mode 100644 src/helpers/userAgent-helpers.js create mode 100644 src/i18n/messages/src/components/services/content/ConnectionBanner.json create mode 100644 src/i18n/messages/src/components/services/content/ConnectionLost.json create mode 100644 src/i18n/messages/src/components/services/content/ConnectionLostBanner.json create mode 100644 src/i18n/messages/src/components/services/content/WebControls.json create mode 100644 src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json diff --git a/.gitignore b/.gitignore index d38c475bf..626cd7ea2 100644 --- a/.gitignore +++ b/.gitignore @@ -12,3 +12,4 @@ yarn-error.log npm-debug.log* lerna-debug.log uidev/lib +*.tsbuildinfo \ No newline at end of file diff --git a/.travis.yml b/.travis.yml index 29bdd5ba8..e0fd7b8ae 100644 --- a/.travis.yml +++ b/.travis.yml @@ -27,6 +27,7 @@ before_script: - travis_retry npm install node-sass -g script: - travis_retry travis_wait 100 npm run build + cache: npm branches: diff --git a/electron-builder.yml b/electron-builder.yml index 23625c825..330fc64e1 100644 --- a/electron-builder.yml +++ b/electron-builder.yml @@ -60,4 +60,5 @@ protocols: asarUnpack: - ./recipes + - ./node_modules/mac-screen-capture-permissions - ./assets/images/taskbar diff --git a/package-lock.json b/package-lock.json index 2200d61d1..b1aa4e88d 100644 --- a/package-lock.json +++ b/package-lock.json @@ -10525,6 +10525,15 @@ } } }, + "electron-util": { + "version": "0.14.0", + "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.14.0.tgz", + "integrity": "sha512-f8DXlOLrI7aq2S1yRlgx8Dc+Zbq5hlKKyVUnc73HyLEijo8/0KT9Cqlcduy75qwwynVw+cvbuqtqgIlrHLijyw==", + "requires": { + "electron-is-dev": "^1.1.0", + "new-github-issue-url": "^0.2.1" + } + }, "electron-window-state": { "version": "5.0.3", "resolved": "https://registry.npmjs.org/electron-window-state/-/electron-window-state-5.0.3.tgz", @@ -18541,6 +18550,118 @@ "resolved": "https://registry.npmjs.org/lru_map/-/lru_map-0.3.3.tgz", "integrity": "sha1-tcg1G5Rky9dQM1p5ZQoOwOVhGN0=" }, + "mac-screen-capture-permissions": { + "version": "1.1.0", + "resolved": "https://registry.npmjs.org/mac-screen-capture-permissions/-/mac-screen-capture-permissions-1.1.0.tgz", + "integrity": "sha512-jMRumlB3FScui/7yW+5FqqbuO7CQ0XOJVT5oTsb7W9eRQDhCIpJpIF0XxLVXwq2DIOp0fYsz1LFiBjnyDYULyQ==", + "requires": { + "electron-util": "^0.13.0", + "execa": "^2.0.4", + "macos-version": "^5.2.0" + }, + "dependencies": { + "cross-spawn": { + "version": "7.0.2", + "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", + "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", + "requires": { + "path-key": "^3.1.0", + "shebang-command": "^2.0.0", + "which": "^2.0.1" + } + }, + "electron-util": { + "version": "0.13.1", + "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.13.1.tgz", + "integrity": "sha512-CvOuAyQPaPtnDp7SspwnT1yTb1yynw6yp4LrZCfEJ7TG/kJFiZW9RqMHlCEFWMn3QNoMkNhGVeCvWJV5NsYyuQ==", + "requires": { + "electron-is-dev": "^1.1.0", + "new-github-issue-url": "^0.2.1" + } + }, + "execa": { + "version": "2.1.0", + "resolved": "https://registry.npmjs.org/execa/-/execa-2.1.0.tgz", + "integrity": "sha512-Y/URAVapfbYy2Xp/gb6A0E7iR8xeqOCXsuuaoMn7A5PzrXUK84E1gyiEfq0wQd/GHA6GsoHWwhNq8anb0mleIw==", + "requires": { + "cross-spawn": "^7.0.0", + "get-stream": "^5.0.0", + "is-stream": "^2.0.0", + "merge-stream": "^2.0.0", + "npm-run-path": "^3.0.0", + "onetime": "^5.1.0", + "p-finally": "^2.0.0", + "signal-exit": "^3.0.2", + "strip-final-newline": "^2.0.0" + } + }, + "get-stream": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", + "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", + "requires": { + "pump": "^3.0.0" + } + }, + "is-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-2.0.0.tgz", + "integrity": "sha512-XCoy+WlUr7d1+Z8GgSuXmpuUFC9fOhRXglJMx+dwLKTkL44Cjd4W1Z5P+BQZpr+cR93aGP4S/s7Ftw6Nd/kiEw==" + }, + "merge-stream": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", + "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" + }, + "npm-run-path": { + "version": "3.1.0", + "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", + "integrity": "sha512-Dbl4A/VfiVGLgQv29URL9xshU8XDY1GeLy+fsaZ1AA8JDSfjvr5P5+pzRbWqRSBxk6/DW7MIh8lTM/PaGnP2kg==", + "requires": { + "path-key": "^3.0.0" + } + }, + "onetime": { + "version": "5.1.0", + "resolved": "https://registry.npmjs.org/onetime/-/onetime-5.1.0.tgz", + "integrity": "sha512-5NcSkPHhwTVFIQN+TUqXoS5+dlElHXdpAWu9I0HP20YOtIi+aZ0Ct82jdlILDxjLEAWwvm+qj1m6aEtsDVmm6Q==", + "requires": { + "mimic-fn": "^2.1.0" + } + }, + "p-finally": { + "version": "2.0.1", + "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-2.0.1.tgz", + "integrity": "sha512-vpm09aKwq6H9phqRQzecoDpD8TmVyGw70qmWlyq5onxY7tqyTTFVvxMykxQSQKILBSFlbXpypIw2T1Ml7+DDtw==" + }, + "path-key": { + "version": "3.1.1", + "resolved": "https://registry.npmjs.org/path-key/-/path-key-3.1.1.tgz", + "integrity": "sha512-ojmeN0qd+y0jszEtoY48r0Peq5dwMEkIlCOu6Q5f41lfkswXuKtYrhgoTpLnyIcHm24Uhqx+5Tqm2InSwLhE6Q==" + }, + "shebang-command": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/shebang-command/-/shebang-command-2.0.0.tgz", + "integrity": "sha512-kHxr2zZpYtdmrN1qDjrrX/Z1rR1kG8Dx+gkpK1G4eXmvXswmcE1hTWBWYUzlraYw1/yZp6YuDY77YtvbN0dmDA==", + "requires": { + "shebang-regex": "^3.0.0" + } + }, + "shebang-regex": { + "version": "3.0.0", + "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-3.0.0.tgz", + "integrity": "sha512-7++dFhtcx3353uBaq8DDR4NuxBetBzC7ZQOhmTQInHEd6bSrXdiEyzCvG07Z44UYdLShWUyXt5M/yhz8ekcb1A==" + }, + "which": { + "version": "2.0.2", + "resolved": "https://registry.npmjs.org/which/-/which-2.0.2.tgz", + "integrity": "sha512-BLI3Tl1TW3Pvl70l3yq3Y64i+awpwXqsGBYWkkqMtnbXgrMD+yj7rhW0kuEDxzJaYXGjEW5ogapKNMEKNMjibA==", + "requires": { + "isexe": "^2.0.0" + } + } + } + }, "macos-notification-state": { "version": "1.3.1", "resolved": "https://registry.npmjs.org/macos-notification-state/-/macos-notification-state-1.3.1.tgz", @@ -18556,6 +18677,14 @@ "integrity": "sha512-OHhSbtcviqMPt7yfw5ef5aghS2jzFVKEFyCJndQt2YpSQ9qRVSEv2axSJI1paVThEu+FFGs584h/1YhxjVqajA==", "dev": true }, + "macos-version": { + "version": "5.2.0", + "resolved": "https://registry.npmjs.org/macos-version/-/macos-version-5.2.0.tgz", + "integrity": "sha512-egt1bqVE1evUjCup2QN2F0g42AuVcumdM31xNbABz+uXquYPzWP4OrqDm+HpCfM+6t4JzWrzABQW+MZM+FW+Jg==", + "requires": { + "semver": "^5.6.0" + } + }, "macroable": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/macroable/-/macroable-1.0.0.tgz", @@ -18685,9 +18814,9 @@ } }, "marked": { - "version": "0.7.0", - "resolved": "https://registry.npmjs.org/marked/-/marked-0.7.0.tgz", - "integrity": "sha512-c+yYdCZJQrsRjTPhUx7VKkApw9bwDkNbHUKo1ovgcfDjb2kc8rLuRbIFyXL5WOEUwzSSKo3IXpph2K6DqB/KZg==" + "version": "0.6.1", + "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", + "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==" }, "matchdep": { "version": "2.0.0", @@ -18990,8 +19119,7 @@ "mimic-fn": { "version": "2.1.0", "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", - "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", - "dev": true + "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" }, "mimic-response": { "version": "1.0.1", @@ -19480,6 +19608,11 @@ "integrity": "sha512-iyam8fBuCUpWeKPGpaNMetEocMt364qkCsfL9JuhjXX6dRnguRVOfk2GZaDpPjcOKiiXCPINZC1GczQ7iTq3Zw==", "dev": true }, + "new-github-issue-url": { + "version": "0.2.1", + "resolved": "https://registry.npmjs.org/new-github-issue-url/-/new-github-issue-url-0.2.1.tgz", + "integrity": "sha512-md4cGoxuT4T4d/HDOXbrUHkTKrp/vp+m3aOA7XXVYwNsUNMK49g3SQicTSeV5GIz/5QVGAeYRAOlyp9OvlgsYA==" + }, "next-tick": { "version": "1.0.0", "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", @@ -24962,6 +25095,11 @@ "integrity": "sha1-u0P/VZim6wXYm1n80SnJgzE2Br8=", "dev": true }, + "strip-final-newline": { + "version": "2.0.0", + "resolved": "https://registry.npmjs.org/strip-final-newline/-/strip-final-newline-2.0.0.tgz", + "integrity": "sha512-BrpvfNAE3dcvq7ll3xVumzjKjZQ5tI1sEUIKr3Uoks0XUl45St3FlatVqef9prk4jRDzhW6WZg+3bk93y6pLjA==" + }, "strip-indent": { "version": "2.0.0", "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-2.0.0.tgz", diff --git a/package.json b/package.json index c267f6ae2..5c9be8488 100644 --- a/package.json +++ b/package.json @@ -77,6 +77,7 @@ "electron-react-titlebar": "0.8.2", "electron-spellchecker": "2.2.1", "electron-updater": "4.2.5", + "electron-util": "0.14.0", "electron-window-state": "5.0.3", "fs-extra": "7.0.1", "gulp-csso": "3.0.1", @@ -85,8 +86,10 @@ "gulp-uglify": "3.0.2", "hex-to-rgba": "1.0.2", "jsonwebtoken": "8.5.1", - "lodash": "4.17.15", - "marked": "0.7.0", + "lodash": "^4.17.4", + "mac-screen-capture-permissions": "1.1.0", + "macos-version": "5.2.0", + "marked": "0.6.1", "mdi": "^1.9.33", "mime-types": "2.1.25", "mobx": "5.15.0", @@ -138,7 +141,7 @@ "@babel/preset-react": "7.7.4", "@babel/register": "7.7.4", "@types/classnames": "^2.2.6", - "@types/color": "^3.0.0", + "@types/color": "3.0.0", "@types/color-convert": "^1.9.0", "@types/jss": "^9.5.7", "@types/lodash": "4.14.149", diff --git a/packages/theme/package-lock.json b/packages/theme/package-lock.json index f74af2f24..85a87cf04 100644 --- a/packages/theme/package-lock.json +++ b/packages/theme/package-lock.json @@ -1,6 +1,6 @@ { "name": "@meetfranz/theme", - "version": "1.0.4", + "version": "1.0.14", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index 30cc19d99..b436d92f9 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts @@ -65,7 +65,7 @@ export const selectOptionItemHoverColor = selectColor; export const selectSearchColor = inputBackground; // Modal -export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.8).rgb().string(); +export const colorModalOverlayBackground = color(legacyStyles.darkThemeBlack).alpha(0.9).rgb().string(); export const colorModalBackground = legacyStyles.darkThemeGrayDark; // Services diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index edf56f21e..f8dc36574 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts @@ -1,7 +1,6 @@ import color from 'color'; import { cloneDeep } from 'lodash'; -import { darkgreen } from 'color-name'; import * as legacyStyles from '../legacy'; export interface IStyleTypes { @@ -145,7 +144,7 @@ export const badgeFontSize = uiFontSize - 2; export const badgeBorderRadius = 50; // Modal -export const colorModalOverlayBackground = color('#000').alpha(0.5).rgb().string(); +export const colorModalOverlayBackground = color('#000').alpha(0.8).rgb().string(); export const colorModalBackground = colorContentBackground; // Services diff --git a/src/components/services/content/ConnectionLostBanner.js b/src/components/services/content/ConnectionLostBanner.js new file mode 100644 index 000000000..9609a65b1 --- /dev/null +++ b/src/components/services/content/ConnectionLostBanner.js @@ -0,0 +1,119 @@ +import React, { Component } from 'react'; +import PropTypes from 'prop-types'; +import { observer } from 'mobx-react'; +import injectSheet from 'react-jss'; +import { Icon } from '@meetfranz/ui'; +import { intlShape, defineMessages } from 'react-intl'; + +import { + mdiAlert, +} from '@mdi/js'; +import { LIVE_API_WEBSITE } from '../../../config'; +// import { Button } from '@meetfranz/forms'; + +const messages = defineMessages({ + text: { + id: 'connectionLostBanner.message', + defaultMessage: '!!!Oh no! Franz lost the connection to {name}.', + }, + moreInformation: { + id: 'connectionLostBanner.informationLink', + defaultMessage: '!!!What happened?', + }, + cta: { + id: 'connectionLostBanner.cta', + defaultMessage: '!!!Reload Service', + }, +}); + +const styles = theme => ({ + root: { + background: theme.colorBackground, + borderRadius: theme.borderRadius, + position: 'absolute', + zIndex: 300, + height: 50, + display: 'flex', + flexDirection: 'row', + alignItems: 'center', + bottom: 10, + right: 10, + justifyContent: 'center', + padding: 10, + fontSize: 12, + }, + link: { + display: 'inline-flex', + opacity: 0.7, + }, + button: { + transition: 'opacity 0.25s', + color: theme.colorText, + border: [1, 'solid', theme.colorText], + borderRadius: theme.borderRadiusSmall, + padding: 4, + fontSize: 12, + marginLeft: 15, + + '&:hover': { + opacity: 0.8, + }, + }, + icon: { + marginRight: 10, + fill: theme.styleTypes.danger.accent, + }, +}); + +@injectSheet(styles) @observer +class ConnectionLostBanner extends Component { + static propTypes = { + classes: PropTypes.object.isRequired, + name: PropTypes.string.isRequired, + reload: PropTypes.func.isRequired, + } + + static contextTypes = { + intl: intlShape, + }; + + inputRef = React.createRef(); + + render() { + const { + classes, + name, + reload, + } = this.props; + + const { intl } = this.context; + + return ( +
+ +

+ {intl.formatMessage(messages.text, { name })} +
+ + {intl.formatMessage(messages.moreInformation)} + +

+ +
+ ); + } +} + +export default ConnectionLostBanner; diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js index f6832038a..d91016c71 100644 --- a/src/components/services/content/ServiceView.js +++ b/src/components/services/content/ServiceView.js @@ -193,7 +193,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends ) : ( <> - {!service.isHibernating ? ( + {(!service.isHibernating || service.disableHibernation) ? ( <> {showNavBar && ( @@ -203,6 +203,12 @@ export default @inject('stores', 'actions') @observer class ServiceView extends setWebviewReference={setWebviewReference} detachService={detachService} /> + {/* {service.lostRecipeConnection && ( + + )} */} ) : (
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js index 36338a910..ea7a66a62 100644 --- a/src/components/services/tabs/TabItem.js +++ b/src/components/services/tabs/TabItem.js @@ -145,7 +145,7 @@ class TabItem extends Component { • )} - {service.isHibernating && ( + {service.isHibernating && !service.disableHibernation && ( diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index bb4f4a76f..4fd1f99ef 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js @@ -94,6 +94,10 @@ const messages = defineMessages({ id: 'settings.service.form.isMutedInfo', defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', }, + disableHibernationInfo: { + id: 'settings.service.form.disableHibernationInfo', + defaultMessage: '!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.', + }, headlineNotifications: { id: 'settings.service.form.headlineNotifications', defaultMessage: '!!!Notifications', @@ -154,6 +158,7 @@ export default @observer class EditServiceForm extends Component { isProxyFeatureEnabled: PropTypes.bool.isRequired, isServiceProxyIncludedInCurrentPlan: PropTypes.bool.isRequired, isSpellcheckerIncludedInCurrentPlan: PropTypes.bool.isRequired, + isHibernationFeatureActive: PropTypes.bool.isRequired, }; static defaultProps = { @@ -219,6 +224,7 @@ export default @observer class EditServiceForm extends Component { isProxyFeatureEnabled, isServiceProxyIncludedInCurrentPlan, isSpellcheckerIncludedInCurrentPlan, + isHibernationFeatureActive, } = this.props; const { intl } = this.context; @@ -365,6 +371,14 @@ export default @observer class EditServiceForm extends Component {

{intl.formatMessage(messages.headlineGeneral)}

+ {isHibernationFeatureActive && ( + <> + +

+ {intl.formatMessage(messages.disableHibernationInfo)} +

+ + )} {form.$('isDarkModeEnabled').value && ( diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js index f1039709c..dbc2a9078 100644 --- a/src/components/ui/FeatureList.js +++ b/src/components/ui/FeatureList.js @@ -66,6 +66,10 @@ const messages = defineMessages({ id: 'pricing.features.adFree', defaultMessage: '!!!Forever ad-free', }, + appDelayEnabled: { + id: 'pricing.features.appDelaysEnabled', + defaultMessage: '!!!Occasional Waiting Screens', + }, }); export class FeatureList extends Component { @@ -96,6 +100,7 @@ export class FeatureList extends Component { const features = []; if (plan === PLANS.FREE) { features.push( + messages.appDelayEnabled, messages.upToThreeServices, messages.availableRecipes, messages.accountSync, diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 560068efc..14c1ef41e 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js @@ -33,6 +33,10 @@ const messages = defineMessages({ id: 'settings.service.form.enableService', defaultMessage: '!!!Enable service', }, + disableHibernation: { + id: 'settings.service.form.disableHibernation', + defaultMessage: '!!!Disable hibernation', + }, enableNotification: { id: 'settings.service.form.enableNotification', defaultMessage: '!!!Enable Notifications', @@ -134,8 +138,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex const { stores, + router, } = this.props; + const { action } = router.params; + let defaultSpellcheckerLanguage = SPELLCHECKER_LOCALES[stores.settings.app.spellcheckerLanguage]; if (stores.settings.app.spellcheckerLanguage === 'automatic') { @@ -160,6 +167,11 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex value: service.isEnabled, default: true, }, + disableHibernation: { + label: intl.formatMessage(messages.disableHibernation), + value: action !== 'edit' ? false : service.disableHibernation, + default: false, + }, isNotificationEnabled: { label: intl.formatMessage(messages.enableNotification), value: service.isNotificationEnabled, @@ -327,7 +339,9 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex } render() { - const { recipes, services, user } = this.props.stores; + const { + recipes, services, user, settings, + } = this.props.stores; const { action } = this.props.router.params; let recipe; @@ -381,6 +395,7 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex isProxyFeatureEnabled={proxyFeature.isEnabled} isServiceProxyIncludedInCurrentPlan={proxyFeature.isIncludedInCurrentPlan} isSpellcheckerIncludedInCurrentPlan={spellcheckerFeature.isIncludedInCurrentPlan} + isHibernationFeatureActive={settings.app.hibernate} /> ); diff --git a/src/electron/macOSPermissions.js b/src/electron/macOSPermissions.js new file mode 100644 index 000000000..4ba6a7619 --- /dev/null +++ b/src/electron/macOSPermissions.js @@ -0,0 +1,14 @@ +import { systemPreferences } from 'electron'; +import { + hasScreenCapturePermission, + hasPromptedForPermission, +} from 'mac-screen-capture-permissions'; + +export default function () { + systemPreferences.askForMediaAccess('camera'); + systemPreferences.askForMediaAccess('microphone'); + + if (!hasPromptedForPermission()) { + hasScreenCapturePermission(); + } +} diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js index 38de2dbc8..2f25e7139 100644 --- a/src/features/announcements/components/AnnouncementScreen.js +++ b/src/features/announcements/components/AnnouncementScreen.js @@ -192,6 +192,11 @@ class AnnouncementScreen extends Component { stores: PropTypes.shape({ ui: PropTypes.instanceOf(UIStore).isRequired, }).isRequired, + actions: PropTypes.shape({ + app: PropTypes.shape({ + openExternalUrl: PropTypes.func.isRequired, + }).isRequired, + }).isRequired, }; static contextTypes = { @@ -199,7 +204,7 @@ class AnnouncementScreen extends Component { }; render() { - const { classes, stores } = this.props; + const { classes, stores, actions } = this.props; const { intl } = this.context; const { changelog, announcement } = announcementsStore; const themeImage = stores.ui.isDarkThemeActive ? 'dark' : 'light'; @@ -223,14 +228,23 @@ class AnnouncementScreen extends Component { __html: marked(announcement.main.text, markedOptions), }} /> -
-
+ {(announcement.main.cta.label || announcement.main.cta.href) && ( +
+
+ )}
@@ -250,7 +264,14 @@ class AnnouncementScreen extends Component {
diff --git a/src/features/planSelection/components/PlanItem.js b/src/features/planSelection/components/PlanItem.js index ec061377b..3855fedf1 100644 --- a/src/features/planSelection/components/PlanItem.js +++ b/src/features/planSelection/components/PlanItem.js @@ -49,6 +49,7 @@ const styles = theme => ({ priceWrapper: { height: 50, marginBottom: 0, + marginTop: ({ text }) => (!text ? 15 : 0), }, price: { fontSize: 50, @@ -64,7 +65,7 @@ const styles = theme => ({ cta: { background: theme.styleTypes.primary.accent, color: theme.styleTypes.primary.contrast, - margin: [40, 'auto', 0, 'auto'], + margin: [30, 'auto', 0, 'auto'], }, divider: { width: 40, @@ -77,10 +78,14 @@ const styles = theme => ({ background: color(theme.styleTypes.primary.accent).darken(0.25).hex(), color: theme.styleTypes.primary.contrast, position: 'relative', + height: 'auto', }, content: { padding: [10, 20, 20], background: '#EFEFEF', + display: 'flex', + flexDirection: 'column', + justifyContent: 'space-between', }, simpleCTA: { background: 'none', @@ -167,10 +172,14 @@ export default @observer @injectSheet(styles) class PlanItem extends Component {
)}

{name}

-

- {text} -

-
+ {text && ( + <> +

+ {text} +

+
+ + )}

{currency} diff --git a/src/features/planSelection/components/PlanSelection.js b/src/features/planSelection/components/PlanSelection.js index 4bf5238dd..6f0dd30ad 100644 --- a/src/features/planSelection/components/PlanSelection.js +++ b/src/features/planSelection/components/PlanSelection.js @@ -6,7 +6,7 @@ import { defineMessages, intlShape } from 'react-intl'; import { H1, H2, Icon } from '@meetfranz/ui'; import color from 'color'; -import { mdiRocket, mdiArrowRight } from '@mdi/js'; +import { mdiArrowRight } from '@mdi/js'; import PlanItem from './PlanItem'; import { i18nPlanName } from '../../../helpers/plan-helpers'; import { PLANS } from '../../../config'; @@ -79,10 +79,10 @@ const styles = theme => ({ overflowY: 'scroll', }, container: { - width: '80%', + // width: '80%', height: 'auto', - background: theme.styleTypes.primary.accent, - padding: 40, + // background: theme.styleTypes.primary.accent, + // padding: 40, borderRadius: theme.borderRadius, maxWidth: 1000, @@ -104,23 +104,6 @@ const styles = theme => ({ boxShadow: [0, 2, 30, color('#000').alpha(0.1).rgb().string()], }, }, - bigIcon: { - background: theme.styleTypes.danger.accent, - width: 120, - height: 120, - display: 'flex', - alignItems: 'center', - borderRadius: '100%', - justifyContent: 'center', - margin: [-100, 'auto', 20], - - '& svg': { - width: '80px !important', - height: '80px !important', - filter: 'drop-shadow( 0px 2px 3px rgba(0, 0, 0, 0.3))', - fill: theme.styleTypes.danger.contrast, - }, - }, headline: { fontSize: 40, }, @@ -158,7 +141,7 @@ const styles = theme => ({ overflow: 'scroll-x', }, featuredPlan: { - transform: 'scale(1.05)', + transform: ({ isPersonalPlanAvailable }) => (isPersonalPlanAvailable ? 'scale(1.05)' : null), }, disclaimer: { textAlign: 'right', @@ -177,8 +160,13 @@ class PlanSelection extends Component { upgradeAccount: PropTypes.func.isRequired, stayOnFree: PropTypes.func.isRequired, hadSubscription: PropTypes.bool.isRequired, + isPersonalPlanAvailable: PropTypes.bool, }; + static defaultProps = { + isPersonalPlanAvailable: true, + } + static contextTypes = { intl: intlShape, }; @@ -196,6 +184,7 @@ class PlanSelection extends Component { upgradeAccount, stayOnFree, hadSubscription, + isPersonalPlanAvailable, } = this.props; const { intl } = this.context; @@ -206,15 +195,14 @@ class PlanSelection extends Component { className={classes.root} >

-
- -

{intl.formatMessage(messages.welcome, { name: firstname })}

-

{intl.formatMessage(messages.subheadline)}

+ {isPersonalPlanAvailable && ( +

{intl.formatMessage(messages.subheadline)}

+ )}
upgradeAccount(plans.pro.yearly.id)} className={classes.featuredPlan} perUser - bestValue - > - - - upgradeAccount(plans.personal.yearly.id)} + bestValue={isPersonalPlanAvailable} > + {isPersonalPlanAvailable && ( + upgradeAccount(plans.personal.yearly.id)} + > + + + )}
); diff --git a/src/helpers/plan-helpers.js b/src/helpers/plan-helpers.js index ee22e4471..b474f8bbd 100644 --- a/src/helpers/plan-helpers.js +++ b/src/helpers/plan-helpers.js @@ -20,6 +20,10 @@ const messages = defineMessages({ }, }); +export function cleanupPlanId(id) { + return id.replace(/(.*)-x[0-9]/, '$1'); +} + export function i18nPlanName(planId, intl) { if (!planId) { throw new Error('planId is required'); @@ -29,7 +33,9 @@ export function i18nPlanName(planId, intl) { throw new Error('intl context is required'); } - const plan = PLANS_MAPPING[planId]; + const id = cleanupPlanId(planId); + + const plan = PLANS_MAPPING[id]; return intl.formatMessage(messages[plan]); } @@ -39,7 +45,9 @@ export function getPlan(planId) { throw new Error('planId is required'); } - const plan = PLANS_MAPPING[planId]; + const id = cleanupPlanId(planId); + + const plan = PLANS_MAPPING[id]; return plan; } diff --git a/src/helpers/userAgent-helpers.js b/src/helpers/userAgent-helpers.js new file mode 100644 index 000000000..15edc1054 --- /dev/null +++ b/src/helpers/userAgent-helpers.js @@ -0,0 +1,45 @@ +import { remote, app } from 'electron'; +import os from 'os'; +import macosVersion from 'macos-version'; +import { isMac, isWindows } from '../environment'; + +// This helper gets included from the backend and frontend but we only need to use "remote" +// if we are in the frontend +const ferdiVersion = remote && remote.app ? remote.app.getVersion() : app.getVersion(); + +function macOS() { + const version = macosVersion(); + + return `Macintosh; Intel Mac OS X ${version.replace(/\./g, '_')}`; +} + +function windows() { + const version = os.release(); + const [majorVersion, minorVersion] = version.split('.'); + return `Windows NT ${majorVersion}.${minorVersion}; Win64; x64`; +} + +function linux() { + return 'X11; Ubuntu; Linux x86_64'; +} + +export default function userAgent(removeChromeVersion = false) { + let platformString = ''; + + if (isMac) { + platformString = macOS(); + } else if (isWindows) { + platformString = windows(); + } else { + platformString = linux(); + } + + let applicationString = ''; + if (!removeChromeVersion) { + applicationString = ` Ferdi/${ferdiVersion} (Electron ${process.versions.electron})`; + } + + // TODO: Update AppleWebKit and Safari version after electron update + return `Mozilla/5.0 (${platformString}) AppleWebKit/537.36 (KHTML, like Gecko) Chrome${!removeChromeVersion ? `/${process.versions.chrome}` : ''} Safari/537.36${applicationString}`; + // Mozilla/5.0 (Macintosh; Intel Mac OS X 10_14_6) AppleWebKit/537.36 (KHTML, like Gecko) old-airport-include/1.0.0 Chrome Electron/7.1.7 Safari/537.36 +} diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 56d0b1971..f3ff7caf3 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json @@ -1190,6 +1190,190 @@ ], "path": "src/components/layout/Sidebar.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Home", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/services/content/ConnectionBanner.js", + "id": "webControls.goHome", + "start": { + "column": 10, + "line": 13 + } + }, + { + "defaultMessage": "!!!Open in Browser", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/services/content/ConnectionBanner.js", + "id": "webControls.openInBrowser", + "start": { + "column": 17, + "line": 17 + } + }, + { + "defaultMessage": "!!!Back", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/services/content/ConnectionBanner.js", + "id": "webControls.back", + "start": { + "column": 8, + "line": 21 + } + }, + { + "defaultMessage": "!!!Forward", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/services/content/ConnectionBanner.js", + "id": "webControls.forward", + "start": { + "column": 11, + "line": 25 + } + }, + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/services/content/ConnectionBanner.js", + "id": "webControls.reload", + "start": { + "column": 10, + "line": 29 + } + } + ], + "path": "src/components/services/content/ConnectionBanner.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Home", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/services/content/ConnectionLost.js", + "id": "webControls.goHome", + "start": { + "column": 10, + "line": 13 + } + }, + { + "defaultMessage": "!!!Open in Browser", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/services/content/ConnectionLost.js", + "id": "webControls.openInBrowser", + "start": { + "column": 17, + "line": 17 + } + }, + { + "defaultMessage": "!!!Back", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/services/content/ConnectionLost.js", + "id": "webControls.back", + "start": { + "column": 8, + "line": 21 + } + }, + { + "defaultMessage": "!!!Forward", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/services/content/ConnectionLost.js", + "id": "webControls.forward", + "start": { + "column": 11, + "line": 25 + } + }, + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/services/content/ConnectionLost.js", + "id": "webControls.reload", + "start": { + "column": 10, + "line": 29 + } + } + ], + "path": "src/components/services/content/ConnectionLost.json" + }, + { + "descriptors": [ + { + "defaultMessage": "!!!Oh no! Franz lost the connection to {name}.", + "end": { + "column": 3, + "line": 18 + }, + "file": "src/components/services/content/ConnectionLostBanner.js", + "id": "connectionLostBanner.message", + "start": { + "column": 8, + "line": 15 + } + }, + { + "defaultMessage": "!!!What happened?", + "end": { + "column": 3, + "line": 22 + }, + "file": "src/components/services/content/ConnectionLostBanner.js", + "id": "connectionLostBanner.informationLink", + "start": { + "column": 19, + "line": 19 + } + }, + { + "defaultMessage": "!!!Reload Service", + "end": { + "column": 3, + "line": 26 + }, + "file": "src/components/services/content/ConnectionLostBanner.js", + "id": "connectionLostBanner.cta", + "start": { + "column": 7, + "line": 23 + } + } + ], + "path": "src/components/services/content/ConnectionLostBanner.json" + }, { "descriptors": [ { @@ -1431,6 +1615,76 @@ ], "path": "src/components/services/content/Services.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Home", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/components/services/content/WebControls.js", + "id": "webControls.goHome", + "start": { + "column": 10, + "line": 13 + } + }, + { + "defaultMessage": "!!!Open in Browser", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/components/services/content/WebControls.js", + "id": "webControls.openInBrowser", + "start": { + "column": 17, + "line": 17 + } + }, + { + "defaultMessage": "!!!Back", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/components/services/content/WebControls.js", + "id": "webControls.back", + "start": { + "column": 8, + "line": 21 + } + }, + { + "defaultMessage": "!!!Forward", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/components/services/content/WebControls.js", + "id": "webControls.forward", + "start": { + "column": 11, + "line": 25 + } + }, + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/components/services/content/WebControls.js", + "id": "webControls.reload", + "start": { + "column": 10, + "line": 29 + } + } + ], + "path": "src/components/services/content/WebControls.json" + }, { "descriptors": [ { @@ -2421,107 +2675,120 @@ } }, { - "defaultMessage": "!!!Notifications", + "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", "end": { "column": 3, "line": 99 }, "file": "src/components/settings/services/EditServiceForm.js", + "id": "settings.service.form.disableHibernationInfo", + "start": { + "column": 26, + "line": 96 + } + }, + { + "defaultMessage": "!!!Notifications", + "end": { + "column": 3, + "line": 103 + }, + "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.headlineNotifications", "start": { "column": 25, - "line": 96 + "line": 100 } }, { "defaultMessage": "!!!Unread message badges", "end": { "column": 3, - "line": 103 + "line": 107 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.headlineBadges", "start": { "column": 18, - "line": 100 + "line": 104 } }, { "defaultMessage": "!!!General", "end": { "column": 3, - "line": 107 + "line": 111 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.headlineGeneral", "start": { "column": 19, - "line": 104 + "line": 108 } }, { "defaultMessage": "!!!Delete", "end": { "column": 3, - "line": 111 + "line": 115 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.iconDelete", "start": { "column": 14, - "line": 108 + "line": 112 } }, { "defaultMessage": "!!!Drop your image, or click here", "end": { "column": 3, - "line": 115 + "line": 119 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.iconUpload", "start": { "column": 14, - "line": 112 + "line": 116 } }, { "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", "end": { "column": 3, - "line": 119 + "line": 123 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.proxy.headline", "start": { "column": 17, - "line": 116 + "line": 120 } }, { "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", "end": { "column": 3, - "line": 123 + "line": 127 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.proxy.restartInfo", "start": { "column": 20, - "line": 120 + "line": 124 } }, { "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", "end": { "column": 3, - "line": 127 + "line": 131 }, "file": "src/components/settings/services/EditServiceForm.js", "id": "settings.service.form.proxy.info", "start": { "column": 13, - "line": 124 + "line": 128 } } ], @@ -3888,6 +4155,19 @@ "column": 10, "line": 65 } + }, + { + "defaultMessage": "!!!Occasional Waiting Screens", + "end": { + "column": 3, + "line": 72 + }, + "file": "src/components/ui/FeatureList.js", + "id": "pricing.features.appDelaysEnabled", + "start": { + "column": 19, + "line": 69 + } } ], "path": "src/components/ui/FeatureList.json" @@ -4006,172 +4286,185 @@ } }, { - "defaultMessage": "!!!Enable Notifications", + "defaultMessage": "!!!Disable hibernation", "end": { "column": 3, "line": 39 }, "file": "src/containers/settings/EditServiceScreen.js", - "id": "settings.service.form.enableNotification", + "id": "settings.service.form.disableHibernation", "start": { "column": 22, "line": 36 } }, { - "defaultMessage": "!!!Show unread message badges", + "defaultMessage": "!!!Enable Notifications", "end": { "column": 3, "line": 43 }, "file": "src/containers/settings/EditServiceScreen.js", + "id": "settings.service.form.enableNotification", + "start": { + "column": 22, + "line": 40 + } + }, + { + "defaultMessage": "!!!Show unread message badges", + "end": { + "column": 3, + "line": 47 + }, + "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.enableBadge", "start": { "column": 15, - "line": 40 + "line": 44 } }, { "defaultMessage": "!!!Enable audio", "end": { "column": 3, - "line": 47 + "line": 51 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.enableAudio", "start": { "column": 15, - "line": 44 + "line": 48 } }, { "defaultMessage": "!!!Team", "end": { "column": 3, - "line": 51 + "line": 55 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.team", "start": { "column": 8, - "line": 48 + "line": 52 } }, { "defaultMessage": "!!!Service URL", "end": { "column": 3, - "line": 55 + "line": 59 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.customUrl", "start": { "column": 13, - "line": 52 + "line": 56 } }, { "defaultMessage": "!!!Show message badge for all new messages", "end": { "column": 3, - "line": 59 + "line": 63 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.indirectMessages", "start": { "column": 20, - "line": 56 + "line": 60 } }, { "defaultMessage": "!!!Custom icon", "end": { "column": 3, - "line": 63 + "line": 67 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.icon", "start": { "column": 8, - "line": 60 + "line": 64 } }, { "defaultMessage": "!!!Enable Dark Mode", "end": { "column": 3, - "line": 67 + "line": 71 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.enableDarkMode", "start": { "column": 18, - "line": 64 + "line": 68 } }, { "defaultMessage": "!!!Use Proxy", "end": { "column": 3, - "line": 71 + "line": 75 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.proxy.isEnabled", "start": { "column": 15, - "line": 68 + "line": 72 } }, { "defaultMessage": "!!!Proxy Host/IP", "end": { "column": 3, - "line": 75 + "line": 79 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.proxy.host", "start": { "column": 13, - "line": 72 + "line": 76 } }, { "defaultMessage": "!!!Port", "end": { "column": 3, - "line": 79 + "line": 83 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.proxy.port", "start": { "column": 13, - "line": 76 + "line": 80 } }, { "defaultMessage": "!!!User", "end": { "column": 3, - "line": 83 + "line": 87 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.proxy.user", "start": { "column": 13, - "line": 80 + "line": 84 } }, { "defaultMessage": "!!!Password", "end": { "column": 3, - "line": 87 + "line": 91 }, "file": "src/containers/settings/EditServiceScreen.js", "id": "settings.service.form.proxy.password", "start": { "column": 17, - "line": 84 + "line": 88 } } ], @@ -5324,6 +5617,76 @@ ], "path": "src/features/quickSwitch/Component.json" }, + { + "descriptors": [ + { + "defaultMessage": "!!!Home", + "end": { + "column": 3, + "line": 16 + }, + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "id": "webControls.goHome", + "start": { + "column": 10, + "line": 13 + } + }, + { + "defaultMessage": "!!!Open in Browser", + "end": { + "column": 3, + "line": 20 + }, + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "id": "webControls.openInBrowser", + "start": { + "column": 17, + "line": 17 + } + }, + { + "defaultMessage": "!!!Back", + "end": { + "column": 3, + "line": 24 + }, + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "id": "webControls.back", + "start": { + "column": 8, + "line": 21 + } + }, + { + "defaultMessage": "!!!Forward", + "end": { + "column": 3, + "line": 28 + }, + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "id": "webControls.forward", + "start": { + "column": 11, + "line": 25 + } + }, + { + "defaultMessage": "!!!Reload", + "end": { + "column": 3, + "line": 32 + }, + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "id": "webControls.reload", + "start": { + "column": 10, + "line": 29 + } + } + ], + "path": "src/features/recipeConnectionLost/components/WebControls.json" + }, { "descriptors": [ { diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 947f927e7..8a95970a2 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -4,6 +4,9 @@ "changeserver.headline": "Change server", "changeserver.label": "Server", "changeserver.submit": "Submit", + "connectionLostBanner.cta": "Reload Service", + "connectionLostBanner.informationLink": "What happened?", + "connectionLostBanner.message": "Oh no! Ferdi lost the connection to {name}.", "feature.announcements.changelog.headline": "Changes in Ferdi {version}", "feature.debugger.title": "Publish debugging information", "feature.delayApp.headline": "Please purchase a Ferdi Supporter License to skip waiting", @@ -183,6 +186,7 @@ "pricing.features.accountSync": "Account Synchronisation", "pricing.features.adFree": "Forever ad-free", "pricing.features.appDelays": "No Waiting Screens", + "pricing.features.appDelaysEnabled": "Occasional Waiting Screens", "pricing.features.customWebsites": "Add Custom Websites", "pricing.features.desktopNotifications": "Desktop Notifications", "pricing.features.onPremise": "On-premise & other Hosted Services", @@ -305,8 +309,8 @@ "settings.app.form.sentry": "Send telemetry data", "settings.app.form.serviceRibbonWidth": "Sidebar width", "settings.app.form.showDisabledServices": "Display disabled services tabs", - "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", "settings.app.form.showDragArea": "Show draggable area on window", + "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled", "settings.app.form.startMinimized": "Start minimized", "settings.app.form.universalDarkMode": "Enable universal Dark Mode", "settings.app.form.useTouchIdToUnlock": "Allow using TouchID to unlock Ferdi", @@ -366,6 +370,8 @@ "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.", "settings.service.form.deleteButton": "Delete service", + "settings.service.form.disableHibernation": "Disable hibernation", + "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", "settings.service.form.editServiceHeadline": "Edit {name}", "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", diff --git a/src/i18n/messages/src/components/services/content/ConnectionBanner.json b/src/i18n/messages/src/components/services/content/ConnectionBanner.json new file mode 100644 index 000000000..1047c28b5 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/ConnectionBanner.json @@ -0,0 +1,67 @@ +[ + { + "id": "webControls.goHome", + "defaultMessage": "!!!Home", + "file": "src/components/services/content/ConnectionBanner.js", + "start": { + "line": 13, + "column": 10 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "webControls.openInBrowser", + "defaultMessage": "!!!Open in Browser", + "file": "src/components/services/content/ConnectionBanner.js", + "start": { + "line": 17, + "column": 17 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "webControls.back", + "defaultMessage": "!!!Back", + "file": "src/components/services/content/ConnectionBanner.js", + "start": { + "line": 21, + "column": 8 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "webControls.forward", + "defaultMessage": "!!!Forward", + "file": "src/components/services/content/ConnectionBanner.js", + "start": { + "line": 25, + "column": 11 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "webControls.reload", + "defaultMessage": "!!!Reload", + "file": "src/components/services/content/ConnectionBanner.js", + "start": { + "line": 29, + "column": 10 + }, + "end": { + "line": 32, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ConnectionLost.json b/src/i18n/messages/src/components/services/content/ConnectionLost.json new file mode 100644 index 000000000..ee3f7a4ba --- /dev/null +++ b/src/i18n/messages/src/components/services/content/ConnectionLost.json @@ -0,0 +1,67 @@ +[ + { + "id": "webControls.goHome", + "defaultMessage": "!!!Home", + "file": "src/components/services/content/ConnectionLost.js", + "start": { + "line": 13, + "column": 10 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "webControls.openInBrowser", + "defaultMessage": "!!!Open in Browser", + "file": "src/components/services/content/ConnectionLost.js", + "start": { + "line": 17, + "column": 17 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "webControls.back", + "defaultMessage": "!!!Back", + "file": "src/components/services/content/ConnectionLost.js", + "start": { + "line": 21, + "column": 8 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "webControls.forward", + "defaultMessage": "!!!Forward", + "file": "src/components/services/content/ConnectionLost.js", + "start": { + "line": 25, + "column": 11 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "webControls.reload", + "defaultMessage": "!!!Reload", + "file": "src/components/services/content/ConnectionLost.js", + "start": { + "line": 29, + "column": 10 + }, + "end": { + "line": 32, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json b/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json new file mode 100644 index 000000000..fd7019f41 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/ConnectionLostBanner.json @@ -0,0 +1,41 @@ +[ + { + "id": "connectionLostBanner.message", + "defaultMessage": "!!!Oh no! Franz lost the connection to {name}.", + "file": "src/components/services/content/ConnectionLostBanner.js", + "start": { + "line": 15, + "column": 8 + }, + "end": { + "line": 18, + "column": 3 + } + }, + { + "id": "connectionLostBanner.informationLink", + "defaultMessage": "!!!What happened?", + "file": "src/components/services/content/ConnectionLostBanner.js", + "start": { + "line": 19, + "column": 19 + }, + "end": { + "line": 22, + "column": 3 + } + }, + { + "id": "connectionLostBanner.cta", + "defaultMessage": "!!!Reload Service", + "file": "src/components/services/content/ConnectionLostBanner.js", + "start": { + "line": 23, + "column": 7 + }, + "end": { + "line": 26, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/services/content/WebControls.json b/src/i18n/messages/src/components/services/content/WebControls.json new file mode 100644 index 000000000..5af5143d0 --- /dev/null +++ b/src/i18n/messages/src/components/services/content/WebControls.json @@ -0,0 +1,67 @@ +[ + { + "id": "webControls.goHome", + "defaultMessage": "!!!Home", + "file": "src/components/services/content/WebControls.js", + "start": { + "line": 13, + "column": 10 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "webControls.openInBrowser", + "defaultMessage": "!!!Open in Browser", + "file": "src/components/services/content/WebControls.js", + "start": { + "line": 17, + "column": 17 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "webControls.back", + "defaultMessage": "!!!Back", + "file": "src/components/services/content/WebControls.js", + "start": { + "line": 21, + "column": 8 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "webControls.forward", + "defaultMessage": "!!!Forward", + "file": "src/components/services/content/WebControls.js", + "start": { + "line": 25, + "column": 11 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "webControls.reload", + "defaultMessage": "!!!Reload", + "file": "src/components/services/content/WebControls.js", + "start": { + "line": 29, + "column": 10 + }, + "end": { + "line": 32, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json index df64c8a5f..811c49498 100644 --- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json +++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json @@ -233,16 +233,29 @@ "column": 3 } }, + { + "id": "settings.service.form.disableHibernationInfo", + "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", + "file": "src/components/settings/services/EditServiceForm.js", + "start": { + "line": 96, + "column": 26 + }, + "end": { + "line": 99, + "column": 3 + } + }, { "id": "settings.service.form.headlineNotifications", "defaultMessage": "!!!Notifications", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 96, + "line": 100, "column": 25 }, "end": { - "line": 99, + "line": 103, "column": 3 } }, @@ -251,11 +264,11 @@ "defaultMessage": "!!!Unread message badges", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 100, + "line": 104, "column": 18 }, "end": { - "line": 103, + "line": 107, "column": 3 } }, @@ -264,11 +277,11 @@ "defaultMessage": "!!!General", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 104, + "line": 108, "column": 19 }, "end": { - "line": 107, + "line": 111, "column": 3 } }, @@ -277,11 +290,11 @@ "defaultMessage": "!!!Delete", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 108, + "line": 112, "column": 14 }, "end": { - "line": 111, + "line": 115, "column": 3 } }, @@ -290,11 +303,11 @@ "defaultMessage": "!!!Drop your image, or click here", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 112, + "line": 116, "column": 14 }, "end": { - "line": 115, + "line": 119, "column": 3 } }, @@ -303,11 +316,11 @@ "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 116, + "line": 120, "column": 17 }, "end": { - "line": 119, + "line": 123, "column": 3 } }, @@ -316,11 +329,11 @@ "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 120, + "line": 124, "column": 20 }, "end": { - "line": 123, + "line": 127, "column": 3 } }, @@ -329,11 +342,11 @@ "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", "file": "src/components/settings/services/EditServiceForm.js", "start": { - "line": 124, + "line": 128, "column": 13 }, "end": { - "line": 127, + "line": 131, "column": 3 } } diff --git a/src/i18n/messages/src/components/ui/FeatureList.json b/src/i18n/messages/src/components/ui/FeatureList.json index 3201115b3..8d1dc4360 100644 --- a/src/i18n/messages/src/components/ui/FeatureList.json +++ b/src/i18n/messages/src/components/ui/FeatureList.json @@ -193,5 +193,18 @@ "line": 68, "column": 3 } + }, + { + "id": "pricing.features.appDelaysEnabled", + "defaultMessage": "!!!Occasional Waiting Screens", + "file": "src/components/ui/FeatureList.js", + "start": { + "line": 69, + "column": 19 + }, + "end": { + "line": 72, + "column": 3 + } } ] \ No newline at end of file diff --git a/src/i18n/messages/src/containers/settings/EditServiceScreen.json b/src/i18n/messages/src/containers/settings/EditServiceScreen.json index 9b46a1e6f..36937ebf8 100644 --- a/src/i18n/messages/src/containers/settings/EditServiceScreen.json +++ b/src/i18n/messages/src/containers/settings/EditServiceScreen.json @@ -26,8 +26,8 @@ } }, { - "id": "settings.service.form.enableNotification", - "defaultMessage": "!!!Enable Notifications", + "id": "settings.service.form.disableHibernation", + "defaultMessage": "!!!Disable hibernation", "file": "src/containers/settings/EditServiceScreen.js", "start": { "line": 36, @@ -38,16 +38,29 @@ "column": 3 } }, + { + "id": "settings.service.form.enableNotification", + "defaultMessage": "!!!Enable Notifications", + "file": "src/containers/settings/EditServiceScreen.js", + "start": { + "line": 40, + "column": 22 + }, + "end": { + "line": 43, + "column": 3 + } + }, { "id": "settings.service.form.enableBadge", "defaultMessage": "!!!Show unread message badges", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 40, + "line": 44, "column": 15 }, "end": { - "line": 43, + "line": 47, "column": 3 } }, @@ -56,11 +69,11 @@ "defaultMessage": "!!!Enable audio", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 44, + "line": 48, "column": 15 }, "end": { - "line": 47, + "line": 51, "column": 3 } }, @@ -69,11 +82,11 @@ "defaultMessage": "!!!Team", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 48, + "line": 52, "column": 8 }, "end": { - "line": 51, + "line": 55, "column": 3 } }, @@ -82,11 +95,11 @@ "defaultMessage": "!!!Service URL", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 52, + "line": 56, "column": 13 }, "end": { - "line": 55, + "line": 59, "column": 3 } }, @@ -95,11 +108,11 @@ "defaultMessage": "!!!Show message badge for all new messages", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 56, + "line": 60, "column": 20 }, "end": { - "line": 59, + "line": 63, "column": 3 } }, @@ -108,11 +121,11 @@ "defaultMessage": "!!!Custom icon", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 60, + "line": 64, "column": 8 }, "end": { - "line": 63, + "line": 67, "column": 3 } }, @@ -121,11 +134,11 @@ "defaultMessage": "!!!Enable Dark Mode", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 64, + "line": 68, "column": 18 }, "end": { - "line": 67, + "line": 71, "column": 3 } }, @@ -134,11 +147,11 @@ "defaultMessage": "!!!Use Proxy", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 68, + "line": 72, "column": 15 }, "end": { - "line": 71, + "line": 75, "column": 3 } }, @@ -147,11 +160,11 @@ "defaultMessage": "!!!Proxy Host/IP", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 72, + "line": 76, "column": 13 }, "end": { - "line": 75, + "line": 79, "column": 3 } }, @@ -160,11 +173,11 @@ "defaultMessage": "!!!Port", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 76, + "line": 80, "column": 13 }, "end": { - "line": 79, + "line": 83, "column": 3 } }, @@ -173,11 +186,11 @@ "defaultMessage": "!!!User", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 80, + "line": 84, "column": 13 }, "end": { - "line": 83, + "line": 87, "column": 3 } }, @@ -186,11 +199,11 @@ "defaultMessage": "!!!Password", "file": "src/containers/settings/EditServiceScreen.js", "start": { - "line": 84, + "line": 88, "column": 17 }, "end": { - "line": 87, + "line": 91, "column": 3 } } diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 5e084c1e1..42199503b 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json @@ -300,7 +300,7 @@ }, { "id": "settings.app.form.adaptableDarkMode", - "defaultMessage": "!!!Synchronize dark mode with my Mac's dark mode setting", + "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", "file": "src/containers/settings/EditSettingsScreen.js", "start": { "line": 121, diff --git a/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json b/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json new file mode 100644 index 000000000..f3bcaf345 --- /dev/null +++ b/src/i18n/messages/src/features/recipeConnectionLost/components/WebControls.json @@ -0,0 +1,67 @@ +[ + { + "id": "webControls.goHome", + "defaultMessage": "!!!Home", + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "start": { + "line": 13, + "column": 10 + }, + "end": { + "line": 16, + "column": 3 + } + }, + { + "id": "webControls.openInBrowser", + "defaultMessage": "!!!Open in Browser", + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "start": { + "line": 17, + "column": 17 + }, + "end": { + "line": 20, + "column": 3 + } + }, + { + "id": "webControls.back", + "defaultMessage": "!!!Back", + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "start": { + "line": 21, + "column": 8 + }, + "end": { + "line": 24, + "column": 3 + } + }, + { + "id": "webControls.forward", + "defaultMessage": "!!!Forward", + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "start": { + "line": 25, + "column": 11 + }, + "end": { + "line": 28, + "column": 3 + } + }, + { + "id": "webControls.reload", + "defaultMessage": "!!!Reload", + "file": "src/features/recipeConnectionLost/components/WebControls.js", + "start": { + "line": 29, + "column": 10 + }, + "end": { + "line": 32, + "column": 3 + } + } +] \ No newline at end of file diff --git a/src/index.js b/src/index.js index 594097288..e5f678759 100644 --- a/src/index.js +++ b/src/index.js @@ -37,6 +37,7 @@ import Tray from './lib/Tray'; import Settings from './electron/Settings'; import handleDeepLink from './electron/deepLinking'; import { isPositionValid } from './electron/windowUtils'; +// import askFormacOSPermissions from './electron/macOSPermissions'; import { appId } from './package.json'; // eslint-disable-line import/no-unresolved import './electron/exception'; @@ -46,10 +47,14 @@ import { } from './config'; import { asarPath } from './helpers/asar-helpers'; import { isValidExternalURL } from './helpers/url-helpers'; -/* eslint-enable import/first */ +import userAgent from './helpers/userAgent-helpers'; const debug = require('debug')('Ferdi:App'); +// Globally set useragent to fix user agent override in service workers +debug('Set userAgent to ', userAgent()); +app.userAgentFallback = userAgent(); + // Keep a global reference of the window object, if you don't, the window will // be closed automatically when the JavaScript object is garbage collected. let mainWindow; @@ -182,6 +187,7 @@ const createWindow = () => { nodeIntegration: true, webviewTag: true, preload: path.join(__dirname, 'sentry.js'), + enableRemoteModule: true, }, }); @@ -291,6 +297,11 @@ const createWindow = () => { } }); + // Asking for permissions like this currently crashes Ferdi + // if (isMac) { + // askFormacOSPermissions(); + // } + mainWindow.on('show', () => { debug('Skip taskbar: true'); mainWindow.setSkipTaskbar(false); diff --git a/src/internal-server b/src/internal-server index 38fc9925d..95ae59926 160000 --- a/src/internal-server +++ b/src/internal-server @@ -1 +1 @@ -Subproject commit 38fc9925d88971cee26cc08343da2f0e153c053a +Subproject commit 95ae59926dbd88d55a5377be997558a9e112ab49 diff --git a/src/models/Recipe.js b/src/models/Recipe.js index 6655f8310..dcb998a19 100644 --- a/src/models/Recipe.js +++ b/src/models/Recipe.js @@ -38,6 +38,8 @@ export default class Recipe { disablewebsecurity = false; + autoHibernate = false; + constructor(data) { if (!data) { throw Error('Recipe config not valid'); @@ -78,6 +80,8 @@ export default class Recipe { this.disablewebsecurity = data.config.disablewebsecurity || this.disablewebsecurity; + this.autoHibernate = data.config.autoHibernate || this.autoHibernate; + this.message = data.config.message || this.message; } diff --git a/src/models/Service.js b/src/models/Service.js index f073ac9fc..dc8febe0b 100644 --- a/src/models/Service.js +++ b/src/models/Service.js @@ -2,6 +2,8 @@ import { autorun, computed, observable } from 'mobx'; import normalizeUrl from 'normalize-url'; import path from 'path'; +import userAgent from '../helpers/userAgent-helpers'; + const debug = require('debug')('Ferdi:Service'); export const RESTRICTION_TYPES = { @@ -74,6 +76,20 @@ export default class Service { @observable restrictionType = null; + @observable isHibernationEnabled = false; + + @observable lastUsed = Date.now(); // timestamp + + @observable lastPoll = null; + + @observable lastPollAnswer = null; + + @observable lostRecipeConnection = false; + + @observable lostRecipeReloadAttempt = 0; + + @observable chromelessUserAgent = false; + constructor(data, recipe) { if (!data) { console.error('Service config not valid'); @@ -119,6 +135,8 @@ export default class Service { this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage; + this.isHibernationEnabled = data.isHibernationEnabled !== undefined ? data.isHibernationEnabled : this.isHibernationEnabled; + this.recipe = recipe; autorun(() => { @@ -187,21 +205,34 @@ export default class Service { } @computed get userAgent() { - let { userAgent } = window.navigator; + let ua = userAgent(this.chromelessUserAgent); if (typeof this.recipe.overrideUserAgent === 'function') { - userAgent = this.recipe.overrideUserAgent(); + ua = this.recipe.overrideUserAgent(); } - // Remove Ferdi as it can cause incompatabilities with services. - // This way, Ferdi will look like a normal Chrome instance - userAgent = userAgent.replace(/(Ferdi|Electron)([^\s]+\s)/g, ''); - - return userAgent; + return ua; } initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { const webContents = this.webview.getWebContents(); + const handleUserAgent = (url, forwardingHack = false) => { + if (url.startsWith('https://accounts.google.com')) { + if (!this.chromelessUserAgent) { + debug('Setting user agent to chromeless for url', url); + this.webview.setUserAgent(userAgent(true)); + if (forwardingHack) { + this.webview.loadURL(url); + } + this.chromelessUserAgent = true; + } + } else if (this.chromelessUserAgent) { + debug('Setting user agent to contain chrome'); + this.webview.setUserAgent(this.userAgent); + this.chromelessUserAgent = false; + } + }; + this.webview.addEventListener('ipc-message', e => handleIPCMessage({ serviceId: this.id, channel: e.channel, @@ -209,7 +240,6 @@ export default class Service { })); this.webview.addEventListener('new-window', (event, url, frameName, options) => { - console.log('open window', event, url, frameName, options); openWindow({ event, url, @@ -218,6 +248,9 @@ export default class Service { }); }); + + this.webview.addEventListener('will-navigate', event => handleUserAgent(event.url, true)); + this.webview.addEventListener('did-start-loading', (event) => { debug('Did start load', this.name, event); @@ -235,7 +268,10 @@ export default class Service { }; this.webview.addEventListener('did-frame-finish-load', didLoad.bind(this)); - this.webview.addEventListener('did-navigate', didLoad.bind(this)); + this.webview.addEventListener('did-navigate', (event) => { + handleUserAgent(event.url); + didLoad(); + }); this.webview.addEventListener('did-fail-load', (event) => { debug('Service failed to load', this.name, event); diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index e2e3760a8..da6055e5f 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js @@ -218,13 +218,16 @@ export default class AppStore extends Store { // macOS catalina notifications hack // notifications got stuck after upgrade but forcing a notification // via `new Notification` triggered the permission request - if (isMac && !localStorage.getItem(CATALINA_NOTIFICATION_HACK_KEY)) { - // eslint-disable-next-line no-new - new window.Notification('Welcome to Franz 5', { - body: 'Have a wonderful day & happy messaging.', - }); + if (isMac) { + if (!localStorage.getItem(CATALINA_NOTIFICATION_HACK_KEY)) { + debug('Triggering macOS Catalina notification permission trigger'); + // eslint-disable-next-line no-new + new window.Notification('Welcome to Franz 5', { + body: 'Have a wonderful day & happy messaging.', + }); - localStorage.setItem(CATALINA_NOTIFICATION_HACK_KEY, true); + localStorage.setItem(CATALINA_NOTIFICATION_HACK_KEY, true); + } } } diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 19e6f8299..80c7d7e81 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js @@ -5,7 +5,7 @@ import { computed, observable, } from 'mobx'; -import { remove } from 'lodash'; +import { debounce, remove } from 'lodash'; import ms from 'ms'; import fs from 'fs-extra'; import path from 'path'; @@ -127,6 +127,60 @@ export default class ServicesStore extends Store { ); } + initialize() { + super.initialize(); + + // Check services to become hibernated + this.serviceMaintenanceTick(); + } + + teardown() { + super.teardown(); + + // Stop checking services for hibernation + this.serviceMaintenanceTick.cancel(); + } + + /** + * Сheck for services to become hibernated. + */ + serviceMaintenanceTick = debounce(() => { + this._serviceMaintenance(); + this.serviceMaintenanceTick(); + debug('Service maintenance tick'); + }, ms('10s')); + + /** + * Run various maintenance tasks on services + */ + _serviceMaintenance() { + this.all.forEach((service) => { + // Defines which services should be hibernated. + if (!service.isActive && (Date.now() - service.lastUsed > ms('5m'))) { + // If service is stale for 5 min, hibernate it. + this._hibernate({ serviceId: service.id }); + } + + if (service.lastPoll && (service.lastPoll) - service.lastPollAnswer > ms('30s')) { + // If service did not reply for more than 30s try to reload. + if (!service.isActive) { + if (this.stores.app.isOnline && service.lostRecipeReloadAttempt < 3) { + service.webview.reload(); + service.lostRecipeReloadAttempt += 1; + + service.lostRecipeConnection = false; + } + } else { + service.lostRecipeConnection = true; + } + } else { + service.lostRecipeConnection = false; + service.lostRecipeReloadAttempt = 0; + } + }); + } + + // Computed props @computed get all() { if (this.stores.user.isLoggedIn) { const services = this.allServicesRequest.execute().result; @@ -379,6 +433,7 @@ export default class ServicesStore extends Store { this.all[index].isActive = false; }); service.isActive = true; + service.lastUsed = Date.now(); // Update list of last used services this.lastUsedServices = this.lastUsedServices.filter(id => id !== serviceId); @@ -475,10 +530,16 @@ export default class ServicesStore extends Store { const service = this.one(serviceId); if (channel === 'hello') { + debug('Received hello event from', serviceId); + this._initRecipePolling(service.id); this._initializeServiceRecipeInWebview(serviceId); this._shareSettingsWithServiceProcess(); + } else if (channel === 'alive') { + service.lastPollAnswer = Date.now(); } else if (channel === 'messages') { + debug(`Received unread message info from '${serviceId}'`, args[0]); + this.actions.service.setUnreadMessageCount({ serviceId, count: { @@ -600,6 +661,7 @@ export default class ServicesStore extends Store { if (!service.isEnabled) return; service.resetMessageCount(); + service.lostRecipeConnection = false; // service.webview.loadURL(service.url); service.webview.reload(); @@ -777,7 +839,7 @@ export default class ServicesStore extends Store { const isMuted = isAppMuted || service.isMuted; if (isAttached) { - service.webview.setAudioMuted(isMuted); + service.webview.audioMuted = isMuted; } }); } @@ -863,6 +925,7 @@ export default class ServicesStore extends Store { service.webview.send('poll'); service.timer = setTimeout(loop, delay); + service.lastPoll = Date.now(); }; loop(); diff --git a/src/webview/lib/RecipeWebview.js b/src/webview/lib/RecipeWebview.js index 4fac21c55..add5fffa6 100644 --- a/src/webview/lib/RecipeWebview.js +++ b/src/webview/lib/RecipeWebview.js @@ -14,6 +14,10 @@ class RecipeWebview { this.loopFunc(); debug('Poll event'); + + // This event is for checking if the service recipe is still actively + // communicating with the client + ipcRenderer.sendToHost('alive'); }); } -- cgit v1.2.3-70-g09d2 From 7a4b50a26cfa57a3dcacfbe93798eff40577c6c9 Mon Sep 17 00:00:00 2001 From: vantezzen Date: Fri, 17 Apr 2020 18:04:42 +0200 Subject: Bump version number --- package.json | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/package.json b/package.json index 5c9be8488..becd0d227 100644 --- a/package.json +++ b/package.json @@ -2,7 +2,7 @@ "name": "ferdi", "productName": "Ferdi", "appId": "com.kytwb.ferdi", - "version": "5.4.4-beta.3", + "version": "5.5.0-gm", "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", "copyright": "kytwb", "main": "index.js", -- cgit v1.2.3-70-g09d2 From b578b1a97bbf5214d3483c8f7b5997f300c5650b Mon Sep 17 00:00:00 2001 From: vantezzen Date: Fri, 17 Apr 2020 18:05:59 +0200 Subject: Prepare code --- recipes | 2 +- src/i18n/locales/en-US.json | 4 ---- 2 files changed, 1 insertion(+), 5 deletions(-) diff --git a/recipes b/recipes index 1392757b0..803c7eb1b 160000 --- a/recipes +++ b/recipes @@ -1 +1 @@ -Subproject commit 1392757b077c8ce582f00a1e47b35affcc448058 +Subproject commit 803c7eb1b65ad793513aaba56df507bc820959a6 diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 8a95970a2..d1b01f884 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json @@ -376,10 +376,6 @@ "settings.service.form.enableAudio": "Enable audio", "settings.service.form.enableBadge": "Show unread message badges", "settings.service.form.enableDarkMode": "Enable Dark Mode", - "settings.service.form.darkReaderBrightness": "Brightness", - "settings.service.form.darkReaderContrast": "Contrast", - "settings.service.form.darkReaderSepia": "Sepia", - "settings.service.form.headlineDarkReaderSettings": "Dark Reader Settings", "settings.service.form.enableNotification": "Enable notifications", "settings.service.form.enableService": "Enable service", "settings.service.form.headlineBadges": "Unread message badges", -- cgit v1.2.3-70-g09d2