aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--.all-contributorsrc9
-rw-r--r--.github/ISSUE_TEMPLATE/bug_report.md15
-rw-r--r--README.md9
-rw-r--r--misty.yml4
-rw-r--r--package-lock.json19
-rw-r--r--package.json4
m---------recipes0
-rw-r--r--src/components/settings/services/EditServiceForm.js2
-rw-r--r--src/components/settings/settings/EditSettingsForm.js2
-rw-r--r--src/config.js3
-rw-r--r--src/containers/settings/RecipesScreen.js3
-rw-r--r--src/features/todos/preload.js27
-rw-r--r--src/i18n/locales/fr.json14
-rw-r--r--src/i18n/locales/pt.json304
m---------src/internal-server0
-rw-r--r--src/models/Service.js6
-rw-r--r--src/stores/SettingsStore.js8
17 files changed, 229 insertions, 200 deletions
diff --git a/.all-contributorsrc b/.all-contributorsrc
index 2644b1edb..2da78ea6b 100644
--- a/.all-contributorsrc
+++ b/.all-contributorsrc
@@ -287,6 +287,15 @@
287 "contributions": [ 287 "contributions": [
288 "code" 288 "code"
289 ] 289 ]
290 },
291 {
292 "login": "dpeukert",
293 "name": "Daniel Peukert",
294 "avatar_url": "https://avatars2.githubusercontent.com/u/3451904?v=4",
295 "profile": "https://gitlab.com/dpeukert",
296 "contributions": [
297 "code"
298 ]
290 } 299 }
291 ], 300 ],
292 "contributorsPerLine": 6, 301 "contributorsPerLine": 6,
diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md
index 9792c40be..c298ded4a 100644
--- a/.github/ISSUE_TEMPLATE/bug_report.md
+++ b/.github/ISSUE_TEMPLATE/bug_report.md
@@ -22,16 +22,11 @@ If applicable, add screenshots to help explain your problem.
22 22
23**Desktop (please complete the following information):** 23**Desktop (please complete the following information):**
24 24
25- OS: [e.g. iOS] 25- OS: [e.g. macOS, Windows 10 etc.]
26- Browser [e.g. chrome, safari] 26- Ferdi Version [e.g. 5.4.3]
27- Version [e.g. 22] 27<!-- You can find Ferdi's version by opening File > About Ferdi or Help > About Ferdi, depending on your Operating System -->
28 28- Server Used: [e.g. https://api.getferdi.com]
29**Smartphone (please complete the following information):** 29<!-- You can find Ferdi's server in Ferdi's settings under "Server". If you self-host or use Ferdi without an account please say so. -->
30
31- Device: [e.g. iPhone6]
32- OS: [e.g. iOS8.1]
33- Browser [e.g. stock browser, safari]
34- Version [e.g. 22]
35 30
36**Additional context** 31**Additional context**
37Add any other context about the problem here. 32Add any other context about the problem here.
diff --git a/README.md b/README.md
index 67bac2277..7b4abef5b 100644
--- a/README.md
+++ b/README.md
@@ -180,13 +180,19 @@ $ npm run rebuild
180 180
181### Start development app 181### Start development app
182 182
183Run these two commands **simultaneously** in different console tabs: 183Run these two commands **simultaneously** in different terminals:
184 184
185```bash 185```bash
186$ npm run dev 186$ npm run dev
187$ npm run start 187$ npm run start
188``` 188```
189 189
190Optionally, you can run both commands in one terminal with [misty](https://github.com/adlk/misty) (see [misty.yml](https://github.com/getferdi/ferdi/blob/develop/misty.yml)):
191
192```bash
193$ npx misty
194```
195
190Be aware that the development database will be reset regularly. 196Be aware that the development database will be reset regularly.
191 197
192### Packaging 198### Packaging
@@ -255,6 +261,7 @@ Thanks goes to these wonderful people ([emoji key](https://allcontributors.org/d
255 <tr> 261 <tr>
256 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td> 262 <td align="center"><a href="http://lhw.ring0.de"><img src="https://avatars2.githubusercontent.com/u/351875?v=4" width="40px;" alt=""/><br /><sub><b>Lennart Weller</b></sub></a><br /><a href="#platform-lhw" title="Packaging/porting to new platform">📦</a></td>
257 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td> 263 <td align="center"><a href="https://github.com/jereksel"><img src="https://avatars0.githubusercontent.com/u/1307829?v=4" width="40px;" alt=""/><br /><sub><b>Andrzej Ressel</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=jereksel" title="Code">💻</a></td>
264 <td align="center"><a href="https://gitlab.com/dpeukert"><img src="https://avatars2.githubusercontent.com/u/3451904?v=4" width="40px;" alt=""/><br /><sub><b>Daniel Peukert</b></sub></a><br /><a href="https://github.com/getferdi/ferdi/commits?author=dpeukert" title="Code">💻</a></td>
258 </tr> 265 </tr>
259</table> 266</table>
260 267
diff --git a/misty.yml b/misty.yml
index a1e024c4e..2b93d025e 100644
--- a/misty.yml
+++ b/misty.yml
@@ -2,5 +2,5 @@ code:
2 cmd: npm run dev 2 cmd: npm run dev
3 3
4app: 4app:
5 cmd: npx electron ./build 5 cmd: npm start
6 waitOn: http://localhost:8000 \ No newline at end of file 6 waitOn: http://localhost:8000
diff --git a/package-lock.json b/package-lock.json
index fd54e00b0..94e2b995b 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -1,6 +1,6 @@
1{ 1{
2 "name": "ferdi", 2 "name": "ferdi",
3 "version": "5.4.3", 3 "version": "5.4.4-beta.1",
4 "lockfileVersion": 1, 4 "lockfileVersion": 1,
5 "requires": true, 5 "requires": true,
6 "dependencies": { 6 "dependencies": {
@@ -19890,15 +19890,9 @@
19890 } 19890 }
19891 }, 19891 },
19892 "normalize-url": { 19892 "normalize-url": {
19893 "version": "1.9.1", 19893 "version": "5.0.0",
19894 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-1.9.1.tgz", 19894 "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-5.0.0.tgz",
19895 "integrity": "sha1-LMDWazHqIwNkWENuNiDYWVTGbDw=", 19895 "integrity": "sha512-bAEm2fx8Dq/a35Z6PIRkkBBJvR56BbEJvhpNtvCZ4W9FyORSna77fn+xtYFjqk5JpBS+fMnAOG/wFgkQBmB7hw=="
19896 "requires": {
19897 "object-assign": "^4.0.1",
19898 "prepend-http": "^1.0.0",
19899 "query-string": "^4.1.0",
19900 "sort-keys": "^1.0.0"
19901 }
19902 }, 19896 },
19903 "now-and-later": { 19897 "now-and-later": {
19904 "version": "2.0.1", 19898 "version": "2.0.1",
@@ -21006,11 +21000,6 @@
21006 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=", 21000 "integrity": "sha1-IZMqVJ9eUv/ZqCf1cOBL5iqX2lQ=",
21007 "dev": true 21001 "dev": true
21008 }, 21002 },
21009 "prepend-http": {
21010 "version": "1.0.4",
21011 "resolved": "https://registry.npmjs.org/prepend-http/-/prepend-http-1.0.4.tgz",
21012 "integrity": "sha1-1PRWKwzjaW5BrFLQ4ALlemNdxtw="
21013 },
21014 "preserve": { 21003 "preserve": {
21015 "version": "0.2.0", 21004 "version": "0.2.0",
21016 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz", 21005 "resolved": "https://registry.npmjs.org/preserve/-/preserve-0.2.0.tgz",
diff --git a/package.json b/package.json
index e86de3761..89a8283fe 100644
--- a/package.json
+++ b/package.json
@@ -2,7 +2,7 @@
2 "name": "ferdi", 2 "name": "ferdi",
3 "productName": "Ferdi", 3 "productName": "Ferdi",
4 "appId": "com.kytwb.ferdi", 4 "appId": "com.kytwb.ferdi",
5 "version": "5.4.3", 5 "version": "5.4.4-beta.1",
6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", 6 "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.",
7 "copyright": "kytwb", 7 "copyright": "kytwb",
8 "main": "index.js", 8 "main": "index.js",
@@ -96,7 +96,7 @@
96 "moment": "^2.17.1", 96 "moment": "^2.17.1",
97 "ms": "2.1.2", 97 "ms": "2.1.2",
98 "node-fetch": "2.6.0", 98 "node-fetch": "2.6.0",
99 "normalize-url": "^1.9.1", 99 "normalize-url": "5.0.0",
100 "pretty-bytes": "^4.0.2", 100 "pretty-bytes": "^4.0.2",
101 "prop-types": "^15.5.10", 101 "prop-types": "^15.5.10",
102 "react": "16.12.0", 102 "react": "16.12.0",
diff --git a/recipes b/recipes
Subproject 6ff794422f296f5370299e497792ee91eccb8dc Subproject f47c638a38baad7a978baf8e204743227f4005e
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js
index fa34ac60b..89c82c7f8 100644
--- a/src/components/settings/services/EditServiceForm.js
+++ b/src/components/settings/services/EditServiceForm.js
@@ -169,7 +169,7 @@ export default @observer class EditServiceForm extends Component {
169 if (recipe.validateUrl && values.customUrl) { 169 if (recipe.validateUrl && values.customUrl) {
170 this.setState({ isValidatingCustomUrl: true }); 170 this.setState({ isValidatingCustomUrl: true });
171 try { 171 try {
172 values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false }); 172 values.customUrl = normalizeUrl(values.customUrl, { stripWWW: false, removeTrailingSlash: false });
173 isValid = await recipe.validateUrl(values.customUrl); 173 isValid = await recipe.validateUrl(values.customUrl);
174 } catch (err) { 174 } catch (err) {
175 console.warn('ValidateURL', err); 175 console.warn('ValidateURL', err);
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js
index f7868db50..2797a2dce 100644
--- a/src/components/settings/settings/EditSettingsForm.js
+++ b/src/components/settings/settings/EditSettingsForm.js
@@ -450,7 +450,7 @@ export default @observer class EditSettingsForm extends Component {
450 <Hr /> 450 <Hr />
451 451
452 {isMac && <Toggle field={form.$('adaptableDarkMode')} />} 452 {isMac && <Toggle field={form.$('adaptableDarkMode')} />}
453 {!(isMac && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} disabled={isAdaptableDarkModeEnabled} />} 453 {!(isMac && isAdaptableDarkModeEnabled) && <Toggle field={form.$('darkMode')} />}
454 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && ( 454 {(isDarkmodeEnabled || isAdaptableDarkModeEnabled) && (
455 <> 455 <>
456 <Toggle field={form.$('universalDarkMode')} /> 456 <Toggle field={form.$('universalDarkMode')} />
diff --git a/src/config.js b/src/config.js
index 4eb59c7bc..b5314ab8e 100644
--- a/src/config.js
+++ b/src/config.js
@@ -66,8 +66,7 @@ export const DEFAULT_APP_SETTINGS = {
66 66
67 // Ferdi specific options 67 // Ferdi specific options
68 server: LIVE_API, 68 server: LIVE_API,
69 // todoServer: PRODUCTION_TODOS_FRONTEND_URL, 69 todoServer: PRODUCTION_TODOS_FRONTEND_URL,
70 todoServer: 'https://todoist.com/app',
71 autohideMenuBar: false, 70 autohideMenuBar: false,
72 lockingFeatureEnabled: false, 71 lockingFeatureEnabled: false,
73 locked: false, 72 locked: false,
diff --git a/src/containers/settings/RecipesScreen.js b/src/containers/settings/RecipesScreen.js
index 70b599d9c..460b915bb 100644
--- a/src/containers/settings/RecipesScreen.js
+++ b/src/containers/settings/RecipesScreen.js
@@ -161,7 +161,8 @@ export default @inject('stores', 'actions') @observer class RecipesScreen extend
161 serviceStatus={services.actionStatus} 161 serviceStatus={services.actionStatus}
162 recipeFilter={filter} 162 recipeFilter={filter}
163 recipeDirectory={recipeDirectory} 163 recipeDirectory={recipeDirectory}
164 openRecipeDirectory={() => { 164 openRecipeDirectory={async () => {
165 await fs.ensureDir(recipeDirectory);
165 shell.openItem(recipeDirectory); 166 shell.openItem(recipeDirectory);
166 }} 167 }}
167 openDevDocs={() => { 168 openDevDocs={() => {
diff --git a/src/features/todos/preload.js b/src/features/todos/preload.js
index d1838e0d6..d834cf547 100644
--- a/src/features/todos/preload.js
+++ b/src/features/todos/preload.js
@@ -21,3 +21,30 @@ ipcRenderer.on(IPC.TODOS_HOST_CHANNEL, (event, message) => {
21 debug('Received host message', event, message); 21 debug('Received host message', event, message);
22 hostMessageListener(message); 22 hostMessageListener(message);
23}); 23});
24
25if (window.location.href === 'https://app.franztodos.com/login/') {
26 // Insert info element informing about Franz accounts
27 const infoElement = document.createElement('p');
28 infoElement.innerText = `You are using Franz's official Todo Service.
29This service will only work with accounts registered with Franz - no Ferdi accounts will work here!
30If you do not have a Franz account you can change the Todo service by going into Ferdi's settings and changing the "Todo server".
31You can choose any service as this Todo server, e.g. Todoist or Apple Notes.`;
32
33 // Franz Todos uses React. Because of this we can't directly insert the element into the page
34 // but we have to wait for React to finish rendering the login page
35 let numChecks = 0;
36 const waitForReact = setInterval(() => {
37 const textElement = document.querySelector('p');
38 if (textElement) {
39 clearInterval(waitForReact);
40 textElement.parentElement.insertBefore(infoElement, textElement);
41 } else {
42 numChecks += 1;
43
44 // Stop after ~10 seconds. We are probably not on the login page
45 if (numChecks > 1000) {
46 clearInterval(waitForReact);
47 }
48 }
49 }, 10);
50}
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index 4dfeac44d..be60bf960 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -257,11 +257,11 @@
257 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.", 257 "settings.app.cacheInfo": "Le cache de Ferdi occupe actuellement {size} en espace disque.",
258 "settings.app.currentVersion": "Version actuelle :", 258 "settings.app.currentVersion": "Version actuelle :",
259 "settings.app.form.accentColor": "Accent de couleur", 259 "settings.app.form.accentColor": "Accent de couleur",
260 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 260 "settings.app.form.adaptableDarkMode": "Synchroniser le mode sombre avec les paramètres du mode sombre de mon Mac",
261 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan", 261 "settings.app.form.autoLaunchInBackground": "Ouvrir en arrière-plan",
262 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage", 262 "settings.app.form.autoLaunchOnStart": "Lancer Ferdi au démarrage",
263 "settings.app.form.beta": "Accepter les versions bêta", 263 "settings.app.form.beta": "Accepter les versions bêta",
264 "settings.app.form.darkMode": "Enable dark mode", 264 "settings.app.form.darkMode": "Activer le mode sombre",
265 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU", 265 "settings.app.form.enableGPUAcceleration": "Activer l'accélération GPU",
266 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe", 266 "settings.app.form.enableLock": "Activer le verrouillage par mot de passe",
267 "settings.app.form.enableSpellchecking": "Activer la vérification orthographique", 267 "settings.app.form.enableSpellchecking": "Activer la vérification orthographique",
@@ -269,7 +269,7 @@
269 "settings.app.form.enableTodos": "Activer Ferdi Todos", 269 "settings.app.form.enableTodos": "Activer Ferdi Todos",
270 "settings.app.form.hibernate": "Activer le service d'hibernation", 270 "settings.app.form.hibernate": "Activer le service d'hibernation",
271 "settings.app.form.hibernationStrategy": "Stratégie d'hibernation", 271 "settings.app.form.hibernationStrategy": "Stratégie d'hibernation",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 272 "settings.app.form.inactivityLock": "Verrouiller après inactivité",
273 "settings.app.form.keepAllWorkspacesLoaded": "Garder tous les espaces de travail charger", 273 "settings.app.form.keepAllWorkspacesLoaded": "Garder tous les espaces de travail charger",
274 "settings.app.form.language": "Langue", 274 "settings.app.form.language": "Langue",
275 "settings.app.form.lockPassword": "Mot de passe", 275 "settings.app.form.lockPassword": "Mot de passe",
@@ -280,12 +280,12 @@
280 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger", 280 "settings.app.form.scheduledDNDEnabled": "Activer Ne-pas-Déranger",
281 "settings.app.form.scheduledDNDEnd": "À", 281 "settings.app.form.scheduledDNDEnd": "À",
282 "settings.app.form.scheduledDNDStart": "De", 282 "settings.app.form.scheduledDNDStart": "De",
283 "settings.app.form.sentry": "Send telemetry data", 283 "settings.app.form.sentry": "Envoyer des données de télémétrie",
284 "settings.app.form.server": "Serveur", 284 "settings.app.form.server": "Serveur",
285 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés", 285 "settings.app.form.showDisabledServices": "Afficher les onglets des services désactivés",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées", 286 "settings.app.form.showMessagesBadgesWhenMuted": "Afficher les badges de messages non lus quand les notifications sont désactivées",
287 "settings.app.form.showServiceNavigationBar": "Toujours afficher la barre de navigation du service", 287 "settings.app.form.showServiceNavigationBar": "Toujours afficher la barre de navigation du service",
288 "settings.app.form.startMinimized": "Start minimized in tray", 288 "settings.app.form.startMinimized": "Démarrer en mode réduit",
289 "settings.app.form.todoServer": "Serveur Todo", 289 "settings.app.form.todoServer": "Serveur Todo",
290 "settings.app.form.universalDarkMode": "Activer le mode sombre universel", 290 "settings.app.form.universalDarkMode": "Activer le mode sombre universel",
291 "settings.app.headline": "Paramètres", 291 "settings.app.headline": "Paramètres",
@@ -295,7 +295,7 @@
295 "settings.app.headlineLanguage": "Langue", 295 "settings.app.headlineLanguage": "Langue",
296 "settings.app.headlineUpdates": "Mises à jour", 296 "settings.app.headlineUpdates": "Mises à jour",
297 "settings.app.hibernateInfo": "Par défaut, Ferdi gardera tous vos services ouverts et chargés en arrière-plan afin qu'ils soient prêts lorsque vous voulez les utiliser. Le service d'hibernation déchargera vos services après un montant spécifié. Ceci est utile pour sauver de la RAM ou garder les services de ralentir votre ordinateur.", 297 "settings.app.hibernateInfo": "Par défaut, Ferdi gardera tous vos services ouverts et chargés en arrière-plan afin qu'ils soient prêts lorsque vous voulez les utiliser. Le service d'hibernation déchargera vos services après un montant spécifié. Ceci est utile pour sauver de la RAM ou garder les services de ralentir votre ordinateur.",
298 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 298 "settings.app.inactivityLockInfo": "Minutes d'inactivité, après lesquelles Ferdi devrait se verrouiller automatiquement. Utilisez 0 pour désactiver",
299 "settings.app.languageDisclaimer": "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.", 299 "settings.app.languageDisclaimer": "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.",
300 "settings.app.lockInfo": "Le mot de passe de verrouillage de Ferdi vous permet de garder vos messages protégés.\nEn utilisant le mot de passe de verrouillage de Ferdi, vous allez être demandé de rentrer un mot de passe à chaque fois que vous démarré Ferdi ou verrouillé Ferdi vous même avec le symbole de cadenas en bas à gauche dans le coins ou avec le raccourcie CMD/CTRL+Shift+L.", 300 "settings.app.lockInfo": "Le mot de passe de verrouillage de Ferdi vous permet de garder vos messages protégés.\nEn utilisant le mot de passe de verrouillage de Ferdi, vous allez être demandé de rentrer un mot de passe à chaque fois que vous démarré Ferdi ou verrouillé Ferdi vous même avec le symbole de cadenas en bas à gauche dans le coins ou avec le raccourcie CMD/CTRL+Shift+L.",
301 "settings.app.lockedPassword": "Mot de passe", 301 "settings.app.lockedPassword": "Mot de passe",
@@ -303,7 +303,7 @@
303 "settings.app.restartRequired": "Les modifications nécessitent un redémarrage", 303 "settings.app.restartRequired": "Les modifications nécessitent un redémarrage",
304 "settings.app.scheduledDNDInfo": "Planifier le Ne-pas-Déranger vous permet de définir une période de temps dans lequel vous ne voulez pas de notifications de Ferdi.", 304 "settings.app.scheduledDNDInfo": "Planifier le Ne-pas-Déranger vous permet de définir une période de temps dans lequel vous ne voulez pas de notifications de Ferdi.",
305 "settings.app.scheduledDNDTimeInfo": "Le temps est en format 24 heures. La fin du temps peut être avant le début du temps (ex: début 17:00, fin 09:00) pour activer le Ne-pas-Déranger durant la nuit.", 305 "settings.app.scheduledDNDTimeInfo": "Le temps est en format 24 heures. La fin du temps peut être avant le début du temps (ex: début 17:00, fin 09:00) pour activer le Ne-pas-Déranger durant la nuit.",
306 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 306 "settings.app.sentryInfo": "L'envoi de données de télémétrie nous permet de trouver des erreurs dans Ferdi - nous n'enverrons aucune information personnelle comme vos données de message! La modification de cette option nécessite le redémarrage de Ferdi.",
307 "settings.app.serverInfo": "On vous recommande de vous déconnecter après d'avoir changer votre serveur dans vos paramètres au risque que les paramètres ne sois pas sauvegarder.", 307 "settings.app.serverInfo": "On vous recommande de vous déconnecter après d'avoir changer votre serveur dans vos paramètres au risque que les paramètres ne sois pas sauvegarder.",
308 "settings.app.serverMoneyInfo": "Vous êtes entrain d'utilisé le serveur officiel de Franz pour Ferdi.\nNous savons que Ferdi vous permet d'utilisé toutes les fonctionnalités gratuitement mais vous êtes toujours entrain d'utilisé les resources des serveurs de Franz - dont les créateurs paient pour.\nS'il vous plaît [Link 1]payé pour un compte Franz[/Link] ou [Link 2]utilisé un ferdi-serveur hébergé par soi-même[/Link] (si vous avez la connaissance et les resources pour).\nEn utilisant Ferdi, vous profité beaucoup des recettes de Franz, resources serveurs et son développement.", 308 "settings.app.serverMoneyInfo": "Vous êtes entrain d'utilisé le serveur officiel de Franz pour Ferdi.\nNous savons que Ferdi vous permet d'utilisé toutes les fonctionnalités gratuitement mais vous êtes toujours entrain d'utilisé les resources des serveurs de Franz - dont les créateurs paient pour.\nS'il vous plaît [Link 1]payé pour un compte Franz[/Link] ou [Link 2]utilisé un ferdi-serveur hébergé par soi-même[/Link] (si vous avez la connaissance et les resources pour).\nEn utilisant Ferdi, vous profité beaucoup des recettes de Franz, resources serveurs et son développement.",
309 "settings.app.subheadlineCache": "Cache", 309 "settings.app.subheadlineCache": "Cache",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 2a45b7dbb..e886e9748 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -25,20 +25,20 @@
25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.", 25 "feature.planSelection.personal.text": "More services, no waiting - ideal for personal use.",
26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment", 26 "feature.planSelection.pricesBasedOnAnnualPayment": "All prices based on yearly payment",
27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.", 27 "feature.planSelection.pro.text": "Unlimited services and professional features for you - and your team.",
28 "feature.quickSwitch.info": "Select a service with TAB, ↑ and ↓. Open a service with ENTER.", 28 "feature.quickSwitch.info": "Selecione um serviço com TAB, ↑ e ↓. Abra um serviço com ENTER.",
29 "feature.quickSwitch.search": "Search...", 29 "feature.quickSwitch.search": "Localizar...",
30 "feature.quickSwitch.title": "QuickSwitch", 30 "feature.quickSwitch.title": "Troca Rápida",
31 "feature.serviceLimit.limitReached": "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", 31 "feature.serviceLimit.limitReached": "Você adicionou {amount} serviços de um total de {limit} que estão inclusos no seu plano. Por favor, atualize sua conta para adicionar mais serviços.",
32 "feature.shareFranz.action.email": "Enviar por e-mail", 32 "feature.shareFranz.action.email": "Enviar por e-mail",
33 "feature.shareFranz.action.facebook": "Compartilahr no Facebook", 33 "feature.shareFranz.action.facebook": "Compartilahr no Facebook",
34 "feature.shareFranz.action.twitter": "Compartilhar no Twitter", 34 "feature.shareFranz.action.twitter": "Compartilhar no Twitter",
35 "feature.shareFranz.headline": "Ferdi is better together!", 35 "feature.shareFranz.headline": "Ferdi é melhor em grupo!",
36 "feature.shareFranz.shareText.email": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com", 36 "feature.shareFranz.shareText.email": "Eu adicionei {count} serviços ao Ferdi! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.getferdi.com",
37 "feature.shareFranz.shareText.twitter": "I've added {count} services to Ferdi! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.getferdi.com /cc @FerdiMessenger", 37 "feature.shareFranz.shareText.twitter": "Eu adicionei uma contagem de serviços para o Ferdi! Baixe gratuitamente o aplicativo para WhatsApp, Messenger, Slack, Skype e outros em www.getferdi.com /cc @FerdiMessenger",
38 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Ferdi is and help us to spread the word.", 38 "feature.shareFranz.text": "Conte aos seus amigos e colegas o quanto incrível o Ferdi é e nos ajude a espalhar a mensagem.",
39 "feature.todos.premium.info": "Ferdi Todos are available to premium users now!", 39 "feature.todos.premium.info": "As Tarefas do Ferdi estão disponíveis para usuários premium!",
40 "feature.todos.premium.rollout": "Everyone else will have to wait a little longer.", 40 "feature.todos.premium.rollout": "As outras pessoas terão que esperar um pouquinho mais.",
41 "feature.todos.premium.upgrade": "Upgrade Account", 41 "feature.todos.premium.upgrade": "Atualizar conta",
42 "feature.trialStatusBar.cta": "Upgrade now", 42 "feature.trialStatusBar.cta": "Upgrade now",
43 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.", 43 "feature.trialStatusBar.expired": "Your free Ferdi {plan} Trial has expired, please upgrade your account.",
44 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free", 44 "feature.trialStatusBar.fullscreen.dialog.cta.downgrade": "Downgrade to Free",
@@ -47,18 +47,18 @@
47 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan", 47 "feature.trialStatusBar.fullscreen.dialog.title": "Downgrade your Ferdi Plan",
48 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.", 48 "feature.trialStatusBar.restTime": "Your Free Ferdi {plan} Trial ends in {time}.",
49 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi", 49 "global.api.unhealthy": "Não foi possível estabelecer ligação aos serviços do Ferdi",
50 "global.franzProRequired": "Ferdi Professional Required", 50 "global.franzProRequired": "Ferdi Plano Profissional é necessário",
51 "global.notConnectedToTheInternet": "Não estás ligado à Internet", 51 "global.notConnectedToTheInternet": "Não estás ligado à Internet",
52 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})", 52 "global.spellchecker.useDefault": "Utilizar o Sistema por Omissão ({default})",
53 "global.spellchecking.autodetect": "Detectar a lingua automaticamente", 53 "global.spellchecking.autodetect": "Detectar a lingua automaticamente",
54 "global.spellchecking.autodetect.short": "Automático", 54 "global.spellchecking.autodetect.short": "Automático",
55 "global.spellchecking.language": "Linguagem para correção ortográfica", 55 "global.spellchecking.language": "Linguagem para correção ortográfica",
56 "global.upgradeButton.upgradeToPro": "Upgrade to Ferdi Professional", 56 "global.upgradeButton.upgradeToPro": "Atualizar para o Ferdi Profissional",
57 "import.headline": "Importa os teus serviços do Ferdi", 57 "import.headline": "Importa os teus serviços do Ferdi",
58 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5", 58 "import.notSupportedHeadline": "Estes serviços ainda não são suportados pelo Ferdi 5",
59 "import.skip.label": "Eu quero adicionar serviços manualmente", 59 "import.skip.label": "Eu quero adicionar serviços manualmente",
60 "import.submit.label": "Importar serviços", 60 "import.submit.label": "Importar serviços",
61 "infobar.authRequestFailed": "There were errors while trying to perform an authenticated request. Please try logging out and back in if this error persists.", 61 "infobar.authRequestFailed": "Ocorreram erros ao tentar autenticar. Por favor, tente desconectar e autenticar novamente se o erro persistir.",
62 "infobar.buttonChangelog": "O que há de novo?", 62 "infobar.buttonChangelog": "O que há de novo?",
63 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações", 63 "infobar.buttonInstallUpdate": "Reiniciar e instalar atualizações",
64 "infobar.buttonReloadServices": "Recarregar serviços", 64 "infobar.buttonReloadServices": "Recarregar serviços",
@@ -72,12 +72,12 @@
72 "invite.skip.label": "Pretendo fazer isto mais tarde", 72 "invite.skip.label": "Pretendo fazer isto mais tarde",
73 "invite.submit.label": "Enviar convites", 73 "invite.submit.label": "Enviar convites",
74 "invite.successInfo": "Convites enviados com sucesso", 74 "invite.successInfo": "Convites enviados com sucesso",
75 "locked.headline": "Locked", 75 "locked.headline": "Bloqueado",
76 "locked.info": "Ferdi is currently locked. Please unlock Ferdi with your password to see your messages.", 76 "locked.info": "Ferdi es bloqueado no momento. Por favor, desbloqueie Ferdi com sua senha para ver suas mensagens.",
77 "locked.invalidCredentials": "Password invalid", 77 "locked.invalidCredentials": "Senha inválida",
78 "locked.password.label": "Password", 78 "locked.password.label": "Senha",
79 "locked.submit.label": "Unlock", 79 "locked.submit.label": "Desbloquear",
80 "login.changeServer": "Change server", 80 "login.changeServer": "Alterar servidor",
81 "login.customServerQuestion": "Using a custom Ferdi server?", 81 "login.customServerQuestion": "Using a custom Ferdi server?",
82 "login.customServerSuggestion": "Try importing your Franz account", 82 "login.customServerSuggestion": "Try importing your Franz account",
83 "login.email.label": "Endereço de e-mail", 83 "login.email.label": "Endereço de e-mail",
@@ -85,7 +85,7 @@
85 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos", 85 "login.invalidCredentials": "O email ou a palavra-passe estão incorrectos",
86 "login.link.password": "Repor a minha palavra-passe", 86 "login.link.password": "Repor a minha palavra-passe",
87 "login.link.signup": "Criar uma conta gratuita", 87 "login.link.signup": "Criar uma conta gratuita",
88 "login.password.label": "Password", 88 "login.password.label": "Senha",
89 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.", 89 "login.serverLogout": "A sua sessão expirou, inicie sessão novamente.",
90 "login.submit.label": "Iniciar Sessão", 90 "login.submit.label": "Iniciar Sessão",
91 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.", 91 "login.tokenExpired": "A sua sessão expirou, inicie sessão novamente.",
@@ -93,7 +93,7 @@
93 "menu.Todoss.openTodosDrawer": "Abrir a gaveta Todos", 93 "menu.Todoss.openTodosDrawer": "Abrir a gaveta Todos",
94 "menu.app.about": "Sobre o Ferdi", 94 "menu.app.about": "Sobre o Ferdi",
95 "menu.app.announcement": "O que há de novo?", 95 "menu.app.announcement": "O que há de novo?",
96 "menu.app.autohideMenuBar": "Auto-hide menu bar", 96 "menu.app.autohideMenuBar": "Auto-ocultar barra de menu",
97 "menu.app.checkForUpdates": "Procurar atualizações", 97 "menu.app.checkForUpdates": "Procurar atualizações",
98 "menu.app.hide": "Ocultar", 98 "menu.app.hide": "Ocultar",
99 "menu.app.hideOthers": "Ocultar Outros", 99 "menu.app.hideOthers": "Ocultar Outros",
@@ -118,8 +118,8 @@
118 "menu.help": "Ajuda", 118 "menu.help": "Ajuda",
119 "menu.help.changelog": "Registo de alterações", 119 "menu.help.changelog": "Registo de alterações",
120 "menu.help.debugInfo": "Copiar a informação Debug", 120 "menu.help.debugInfo": "Copiar a informação Debug",
121 "menu.help.debugInfoCopiedBody": "Your Debug Information has been copied to your clipboard.", 121 "menu.help.debugInfoCopiedBody": "As Informações de Depuração foram copiadas para a área de transferência.",
122 "menu.help.debugInfoCopiedHeadline": "Ferdi Debug Information", 122 "menu.help.debugInfoCopiedHeadline": "Informações de Depuração do Ferdi",
123 "menu.help.learnMore": "Saber mais", 123 "menu.help.learnMore": "Saber mais",
124 "menu.help.privacy": "Declaração de privacidade", 124 "menu.help.privacy": "Declaração de privacidade",
125 "menu.help.support": "Suporte", 125 "menu.help.support": "Suporte",
@@ -127,24 +127,24 @@
127 "menu.services": "Serviços", 127 "menu.services": "Serviços",
128 "menu.services.activatePreviousService": "Activar o serviço anterior", 128 "menu.services.activatePreviousService": "Activar o serviço anterior",
129 "menu.services.addNewService": "Adicionar Novo Serviço...", 129 "menu.services.addNewService": "Adicionar Novo Serviço...",
130 "menu.services.goHome": "Home", 130 "menu.services.goHome": "Início",
131 "menu.services.setNextServiceActive": "Activar o próximo serviço", 131 "menu.services.setNextServiceActive": "Activar o próximo serviço",
132 "menu.todos": "Todos", 132 "menu.todos": "Tarefas",
133 "menu.todos.enableTodos": "Activar Todos", 133 "menu.todos.enableTodos": "Activar Todos",
134 "menu.view": "Ver", 134 "menu.view": "Ver",
135 "menu.view.back": "Back", 135 "menu.view.back": "Anterior",
136 "menu.view.enterFullScreen": "Ativar Modo de Ecrã Completo", 136 "menu.view.enterFullScreen": "Ativar Modo de Ecrã Completo",
137 "menu.view.exitFullScreen": "Sair do Modo de Ecrã Completo", 137 "menu.view.exitFullScreen": "Sair do Modo de Ecrã Completo",
138 "menu.view.forward": "Forward", 138 "menu.view.forward": "Próximo",
139 "menu.view.lockFerdi": "Lock Ferdi", 139 "menu.view.lockFerdi": "Bloquear Ferdi",
140 "menu.view.openQuickSwitch": "Open Quick Switch", 140 "menu.view.openQuickSwitch": "Abrir Troca Rápida",
141 "menu.view.reloadFranz": "Recarregar Ferdi", 141 "menu.view.reloadFranz": "Recarregar Ferdi",
142 "menu.view.reloadService": "Recarregar serviço", 142 "menu.view.reloadService": "Recarregar serviço",
143 "menu.view.resetZoom": "Tamanho Real", 143 "menu.view.resetZoom": "Tamanho Real",
144 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento", 144 "menu.view.toggleDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento",
145 "menu.view.toggleFullScreen": "Ativar/Desativar Ecrã Completo", 145 "menu.view.toggleFullScreen": "Ativar/Desativar Ecrã Completo",
146 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços", 146 "menu.view.toggleServiceDevTools": "Ativar/Desativar Ferramentas de Desenvolvimento de Serviços",
147 "menu.view.toggleTodosDevTools": "Toggle Todos Developer Tools", 147 "menu.view.toggleTodosDevTools": "Ativar Ferramentas de Desenvolvedor das Tarefas",
148 "menu.view.zoomIn": "Aumentar", 148 "menu.view.zoomIn": "Aumentar",
149 "menu.view.zoomOut": "Reduzir", 149 "menu.view.zoomOut": "Reduzir",
150 "menu.window": "Janela", 150 "menu.window": "Janela",
@@ -163,29 +163,29 @@
163 "password.submit.label": "Submeter", 163 "password.submit.label": "Submeter",
164 "password.successInfo": "Por favor verifique o seu endereço de e-mail", 164 "password.successInfo": "Por favor verifique o seu endereço de e-mail",
165 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta", 165 "premiumFeature.button.upgradeAccount": "Atualiza a tua conta",
166 "pricing.features.accountSync": "Account Synchronisation", 166 "pricing.features.accountSync": "Sincronização Automática",
167 "pricing.features.adFree": "Sem publicidade para sempre", 167 "pricing.features.adFree": "Sem publicidade para sempre",
168 "pricing.features.appDelays": "No Waiting Screens", 168 "pricing.features.appDelays": "Sem Telas de Espera",
169 "pricing.features.customWebsites": "Add Custom Websites", 169 "pricing.features.customWebsites": "Adicionar Websites Personalizados",
170 "pricing.features.desktopNotifications": "Desktop Notifications", 170 "pricing.features.desktopNotifications": "Notificações no ambiente de trabalho",
171 "pricing.features.onPremise": "On-premise & other Hosted Services", 171 "pricing.features.onPremise": "On-premise & other Hosted Services",
172 "pricing.features.recipes": "Choose from more than 70 Services", 172 "pricing.features.recipes": "Escolha entre mais de 70 serviços",
173 "pricing.features.serviceProxies": "Service Proxies", 173 "pricing.features.serviceProxies": "Serviços de proxy",
174 "pricing.features.spellchecker": "Spellchecker support", 174 "pricing.features.spellchecker": "Suporte ao corretor ortográfico",
175 "pricing.features.teamManagement": "Team Management", 175 "pricing.features.teamManagement": "Gestão de Equipes",
176 "pricing.features.thirdPartyServices": "Install 3rd party services", 176 "pricing.features.thirdPartyServices": "Instalar serviços de terceiros",
177 "pricing.features.unlimitedServices": "Add unlimited services", 177 "pricing.features.unlimitedServices": "Instalar serviços ilimitados",
178 "pricing.features.upToSixServices": "Add up to 6 services", 178 "pricing.features.upToSixServices": "Adicionar até 6 serviços",
179 "pricing.features.upToThreeServices": "Add up to 3 services", 179 "pricing.features.upToThreeServices": "Adicionar até 3 serviços",
180 "pricing.features.workspaces": "Espaços de trabalho", 180 "pricing.features.workspaces": "Espaços de trabalho",
181 "pricing.plan.free": "Ferdi Free", 181 "pricing.plan.free": "Ferdi Gratuito",
182 "pricing.plan.legacy": "Ferdi Premium", 182 "pricing.plan.legacy": "Ferdi Premium",
183 "pricing.plan.personal": "Ferdi Personal", 183 "pricing.plan.personal": "Ferdi Pessoal",
184 "pricing.plan.personal-monthly": "Ferdi Personal Monthly", 184 "pricing.plan.personal-monthly": "Ferdi Pessoal Mensal",
185 "pricing.plan.personal-yearly": "Ferdi Personal Yearly", 185 "pricing.plan.personal-yearly": "Ferdi Pessoal Anual",
186 "pricing.plan.pro": "Ferdi Professional", 186 "pricing.plan.pro": "Ferdi Profissional",
187 "pricing.plan.pro-monthly": "Ferdi Professional Monthly", 187 "pricing.plan.pro-monthly": "Ferdi Profissional Mensal",
188 "pricing.plan.pro-yearly": "Ferdi Professional Yearly", 188 "pricing.plan.pro-yearly": "Ferdi Profissional Anual",
189 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional", 189 "pricing.trial.cta.accept": "Yes, upgrade my account to Ferdi Professional",
190 "pricing.trial.cta.skip": "Continue to Ferdi", 190 "pricing.trial.cta.skip": "Continue to Ferdi",
191 "pricing.trial.cta.start": "Start using Ferdi", 191 "pricing.trial.cta.start": "Start using Ferdi",
@@ -210,22 +210,22 @@
210 "service.errorHandler.headline": "Oh não!", 210 "service.errorHandler.headline": "Oh não!",
211 "service.errorHandler.message": "Erro", 211 "service.errorHandler.message": "Erro",
212 "service.errorHandler.text": "{name} falhou o carregamento", 212 "service.errorHandler.text": "{name} falhou o carregamento",
213 "service.restrictedHandler.action": "Upgrade Account", 213 "service.restrictedHandler.action": "Atualizar conta",
214 "service.restrictedHandler.customUrl.headline": "Ferdi Professional Plan required", 214 "service.restrictedHandler.customUrl.headline": "É necessário um plano Ferdi Profissional",
215 "service.restrictedHandler.customUrl.text": "Please upgrade to the Ferdi Professional plan to use custom urls & self hosted services.", 215 "service.restrictedHandler.customUrl.text": "Por favor adquira um plano Ferdi Profesional para utilizar url's personalizadas e serviços próprios.",
216 "service.restrictedHandler.serviceLimit.headline": "You have reached your service limit.", 216 "service.restrictedHandler.serviceLimit.headline": "Você atingiu seu limite de serviço.",
217 "service.restrictedHandler.serviceLimit.text": "Please upgrade your account to use more than {count} services.", 217 "service.restrictedHandler.serviceLimit.text": "Por favor, atualize sua conta para usar mais do que {count} serviços.",
218 "service.webviewLoader.loading": "Loading {service}", 218 "service.webviewLoader.loading": "Carregando {service}",
219 "services.getStarted": "Vamos começar", 219 "services.getStarted": "Vamos começar",
220 "services.login": "Please login to use Ferdi.", 220 "services.login": "Por favor, inicie sua sessão para usar Ferdi.",
221 "services.serverInfo": "Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", 221 "services.serverInfo": "Opcionalmente, você pode mudar seu servidor Ferdi clicando no ícone de engrenagem localizada no canto inferior esquerdo.",
222 "services.serverless": "Use Ferdi without an Account", 222 "services.serverless": "Use Ferdi sem uma conta",
223 "services.welcome": "Bem-vindo ao Ferdi", 223 "services.welcome": "Bem-vindo ao Ferdi",
224 "settings.account.account.editButton": "Editar conta", 224 "settings.account.account.editButton": "Editar conta",
225 "settings.account.accountType.basic": "Conta Básica", 225 "settings.account.accountType.basic": "Conta Básica",
226 "settings.account.accountType.premium": "Conta Premium", 226 "settings.account.accountType.premium": "Conta Premium",
227 "settings.account.accountUnavailable": "Account is unavailable", 227 "settings.account.accountUnavailable": "Conta indisponível",
228 "settings.account.accountUnavailableInfo": "You are using Ferdi without an account. If you want to use Ferdi with an account and keep your services synchronized across installations, please select a server in the Settings tab then login.", 228 "settings.account.accountUnavailableInfo": "Você está utilizando Ferdis sem uma conta. Se você deseja usar o Ferdi com uma conta e manter seus serviços atualizados, Por favor selecione um servidor em Configurações seção Servidor.",
229 "settings.account.buttonSave": "Atualizar o perfil", 229 "settings.account.buttonSave": "Atualizar o perfil",
230 "settings.account.deleteAccount": "Apagar conta", 230 "settings.account.deleteAccount": "Apagar conta",
231 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!", 231 "settings.account.deleteEmailSent": "Recebeu um email com um endereço para confirmar a remoção da sua conta. A sua conta e dados não poderão ser restaurados!",
@@ -238,7 +238,7 @@
238 "settings.account.headlineProfile": "Atualizar o perfil", 238 "settings.account.headlineProfile": "Atualizar o perfil",
239 "settings.account.headlineSubscription": "A sua subscrição", 239 "settings.account.headlineSubscription": "A sua subscrição",
240 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial", 240 "settings.account.headlineTrialUpgrade": "Get the free 14 day Ferdi Professional Trial",
241 "settings.account.headlineUpgradeAccount": "Upgrade your account & get the full Ferdi experience", 241 "settings.account.headlineUpgradeAccount": "Dê um upgrade na sua conta e tenha uma completa experiência do Ferdi",
242 "settings.account.invoiceDownload": "Transferir", 242 "settings.account.invoiceDownload": "Transferir",
243 "settings.account.manageSubscription.label": "Gerir as minhas subscrições", 243 "settings.account.manageSubscription.label": "Gerir as minhas subscrições",
244 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso", 244 "settings.account.successInfo": "As suas alterações foram efetuadas com sucesso",
@@ -247,69 +247,69 @@
247 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.", 247 "settings.account.trialUpdateBillingInfo": "Please update your billing info to continue using {license} after your trial period.",
248 "settings.account.tryReloadServices": "Tentar novamente", 248 "settings.account.tryReloadServices": "Tentar novamente",
249 "settings.account.tryReloadUserInfoRequest": "Tentar novamente", 249 "settings.account.tryReloadUserInfoRequest": "Tentar novamente",
250 "settings.account.upgradeToPro.label": "Upgrade to Ferdi Professional", 250 "settings.account.upgradeToPro.label": "Atualizar para o Ferdi Profissional",
251 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador", 251 "settings.account.userInfoRequestFailed": "Não é possível carregar a informação do utilizador",
252 "settings.account.yourLicense": "Your Ferdi License", 252 "settings.account.yourLicense": "Sua lincença Ferdi",
253 "settings.app.accentColorInfo": "Write your accent color in a CSS-compatible format. (Default: #7367f0)", 253 "settings.app.accentColorInfo": "Informe sua cor de destaque em um formato compatível com CSS. (Padrão: #7367f0)",
254 "settings.app.buttonClearAllCache": "Limpar cache", 254 "settings.app.buttonClearAllCache": "Limpar cache",
255 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações", 255 "settings.app.buttonInstallUpdate": "Reiniciar e instalar atualizações",
256 "settings.app.buttonSearchForUpdate": "Procurar atualizações", 256 "settings.app.buttonSearchForUpdate": "Procurar atualizações",
257 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.", 257 "settings.app.cacheInfo": "A cache do Ferdi está a usar {size} de espaço em disco.",
258 "settings.app.currentVersion": "Versão atual", 258 "settings.app.currentVersion": "Versão atual",
259 "settings.app.form.accentColor": "Accent color", 259 "settings.app.form.accentColor": "Cor de destaque",
260 "settings.app.form.adaptableDarkMode": "Synchronize dark mode with my Mac's dark mode setting", 260 "settings.app.form.adaptableDarkMode": "Sincronizar modo noturno com as configurações do Mac",
261 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano", 261 "settings.app.form.autoLaunchInBackground": "Abrir em segundo plano",
262 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador", 262 "settings.app.form.autoLaunchOnStart": "Iniciar o Ferdi após iniciar o computador",
263 "settings.app.form.beta": "Incluir versões instáveis (beta)", 263 "settings.app.form.beta": "Incluir versões instáveis (beta)",
264 "settings.app.form.darkMode": "Enable dark mode", 264 "settings.app.form.darkMode": "Habilitar modo noturno",
265 "settings.app.form.enableGPUAcceleration": "Activar Aceleração de GPU", 265 "settings.app.form.enableGPUAcceleration": "Activar Aceleração de GPU",
266 "settings.app.form.enableLock": "Enable Password Lock", 266 "settings.app.form.enableLock": "Habilitar bloqueio por senha",
267 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica", 267 "settings.app.form.enableSpellchecking": "Ativar verificação ortográfica",
268 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema", 268 "settings.app.form.enableSystemTray": "Mostrar o Ferdi na barra do sistema",
269 "settings.app.form.enableTodos": "Enable Ferdi Todos", 269 "settings.app.form.enableTodos": "Ativar Tarefas",
270 "settings.app.form.hibernate": "Enable service hibernation", 270 "settings.app.form.hibernate": "Ativar hibernação de serviço",
271 "settings.app.form.hibernationStrategy": "Hibernation strategy", 271 "settings.app.form.hibernationStrategy": "Estratégia de Hibernação",
272 "settings.app.form.inactivityLock": "Lock after inactivity", 272 "settings.app.form.inactivityLock": "Bloquear após",
273 "settings.app.form.keepAllWorkspacesLoaded": "Keep all workspaces loaded", 273 "settings.app.form.keepAllWorkspacesLoaded": "Mater todos os workspaces carregados",
274 "settings.app.form.language": "Idioma", 274 "settings.app.form.language": "Idioma",
275 "settings.app.form.lockPassword": "Password", 275 "settings.app.form.lockPassword": "Senha",
276 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema", 276 "settings.app.form.minimizeToSystemTray": "Minimizar o Ferdi para a barra do sistema",
277 "settings.app.form.noUpdates": "Disable updates", 277 "settings.app.form.noUpdates": "Desativar atualizações",
278 "settings.app.form.privateNotifications": "Don't show message content in notifications", 278 "settings.app.form.privateNotifications": "o mostrar o conteúdo das mensagens nas notificações",
279 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela", 279 "settings.app.form.runInBackground": "Manter o Ferdi em segundo plano ao fechar a janela",
280 "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", 280 "settings.app.form.scheduledDNDEnabled": "Ativar modoo-Perturbar agendado",
281 "settings.app.form.scheduledDNDEnd": "To", 281 "settings.app.form.scheduledDNDEnd": "Até",
282 "settings.app.form.scheduledDNDStart": "From", 282 "settings.app.form.scheduledDNDStart": "Desde",
283 "settings.app.form.sentry": "Send telemetry data", 283 "settings.app.form.sentry": "Enviar dados de telemetria",
284 "settings.app.form.server": "Server", 284 "settings.app.form.server": "Servidor",
285 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados", 285 "settings.app.form.showDisabledServices": "Apresentar separadores de serviços desativados",
286 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 286 "settings.app.form.showMessagesBadgesWhenMuted": "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
287 "settings.app.form.showServiceNavigationBar": "Always show service navigation bar", 287 "settings.app.form.showServiceNavigationBar": "Sempre mostrar a barra de navegação do serviço",
288 "settings.app.form.startMinimized": "Start minimized in tray", 288 "settings.app.form.startMinimized": "Iniciar minimizado na bandeja",
289 "settings.app.form.todoServer": "Todo Server", 289 "settings.app.form.todoServer": "Servidor das Tarefas",
290 "settings.app.form.universalDarkMode": "Enable universal Dark Mode", 290 "settings.app.form.universalDarkMode": "Habilitar modo noturno universal",
291 "settings.app.headline": "Definições", 291 "settings.app.headline": "Definições",
292 "settings.app.headlineAdvanced": "Avançado", 292 "settings.app.headlineAdvanced": "Avançado",
293 "settings.app.headlineAppearance": "Aparência", 293 "settings.app.headlineAppearance": "Aparência",
294 "settings.app.headlineGeneral": "Geral", 294 "settings.app.headlineGeneral": "Geral",
295 "settings.app.headlineLanguage": "Idioma", 295 "settings.app.headlineLanguage": "Idioma",
296 "settings.app.headlineUpdates": "Atualizações", 296 "settings.app.headlineUpdates": "Atualizações",
297 "settings.app.hibernateInfo": "By default, Ferdi will keep all your services open and loaded in the background so they are ready when you want to use them. Service Hibernation will unload your services after a specified amount. This is useful to save RAM or keeping services from slowing down your computer.", 297 "settings.app.hibernateInfo": "Por padrão, Ferdi irá manter todos seus serviços abertos e carregados, assim eles estarão disponíveis quando você for utilizar. O Serviço de Hibernação irá descarregar seus serviços após determinado tempo. Isso é útil para evitar consumo excessivo de memória RAM evitando também que seu computador fique lento.",
298 "settings.app.inactivityLockInfo": "Minutes of inactivity, after which Ferdi should automatically lock. Use 0 to disable", 298 "settings.app.inactivityLockInfo": "Minutos de inatividade, após este tempo Ferdi irá automaticamente bloquear. Utilize 0 para desabilitar",
299 "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", 299 "settings.app.languageDisclaimer": "As traduções oficiais são em inglês e alemão. As demais traduções são baseadas na ajuda da comunidade.",
300 "settings.app.lockInfo": "Password Lock allows you to keep your messages protected.\nUsing Password Lock, you will be prompted to enter your password everytime you start Ferdi or lock Ferdi yourself using the lock symbol in the bottom left corner or the shortcut CMD/CTRL+Shift+L.", 300 "settings.app.lockInfo": "O bloqueio por senha permite a você proteger suas mensagens.\\nUsando o bloqueio por senha, será necessário informar sua senha toda veze que o Ferdi for iniciado ou você solicite o bloqueio.",
301 "settings.app.lockedPassword": "Password", 301 "settings.app.lockedPassword": "Senha",
302 "settings.app.lockedPasswordInfo": "Please make sure to set a password you'll remember.\nIf you loose this password, you will have to reinstall Ferdi.", 302 "settings.app.lockedPasswordInfo": "Tenha certeza que a senha definida será lembrada.\\nCaso você esqueça a senha, será necessário reinstalar o Ferdi.",
303 "settings.app.restartRequired": "Alterações requerem reinício", 303 "settings.app.restartRequired": "Alterações requerem reinício",
304 "settings.app.scheduledDNDInfo": "Scheduled Do-not-Disturb allows you to define a period of time in which you do not want to get Notifications from Ferdi.", 304 "settings.app.scheduledDNDInfo": "O modo Não perturbe agendado permite definir um período de tempo em que você não deseja receber notificações do Ferdi.",
305 "settings.app.scheduledDNDTimeInfo": "Times in 24-Hour-Format. End time can be before start time (e.g. start 17:00, end 09:00) to enable Do-not-Disturb overnight.", 305 "settings.app.scheduledDNDTimeInfo": "Horários no formato de 24 horas. O horário de término pode ser anterior ao horário de início (por exemplo, início às 17:00 e término às 09:00) para ativar a opção Não perturbe da noite para o dia.",
306 "settings.app.sentryInfo": "Sending telemetry data allows us to find errors in Ferdi - we will not send any personal information like your message data! Changing this option requires you to restart Ferdi.", 306 "settings.app.sentryInfo": "O envio de dados de telemetria nos permite encontrar erros no Ferdi. Não enviaremos nenhuma informação pessoal como seus dados de mensagem! Alterar esta opção requer que você reinicie o Ferdi.",
307 "settings.app.serverInfo": "We advice you to logout after changing your server as your settings might not be saved otherwise.", 307 "settings.app.serverInfo": "Aconselhamos que você efetue logout após alterar o servidor, pois suas configurações podem não serem salvas.",
308 "settings.app.serverMoneyInfo": "You are using the official Franz Server for Ferdi.\nWe know that Ferdi allows you to use all its features for free but you are still using Franz's server resources - which Franz's creator has to pay for.\nPlease still consider [Link 1]paying for a Franz account[/Link] or [Link 2]using a self-hosted ferdi-server[/Link] (if you have the knowledge and resources to do so). \nBy using Ferdi, you still profit greatly from Franz's recipe store, server resources and its development.", 308 "settings.app.serverMoneyInfo": "Você está usando o Franz Server oficial para Ferd.\\nSabemos que o Ferdi permite que você use todos os seus recursos de graça, mas você ainda está usando os recursos de servidor de Franz, pelos quais o criador de Franz precisa ser pago.\\nPor favor consider [Link 1]adquirir uma licença Franz[/Link] ou [Link 2]utilize hospede o seu próprio servidor ferdi-server[/Link] (se você tiver conhecimento e recursos). \\nUsando o Ferdi, você continua podendo utilizar os serviços da loja Franz, além dos recursos de servidor e desenvolvimento.",
309 "settings.app.subheadlineCache": "Cache", 309 "settings.app.subheadlineCache": "Memória Cache",
310 "settings.app.todoServerInfo": "This server will be used for the \"Ferdi Todo\" feature. (default: https://app.franztodos.com)", 310 "settings.app.todoServerInfo": "Servidor utilizado para as Tarefas. (Padrão: https://app.franztodos.com)",
311 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.", 311 "settings.app.translationHelp": "Ajude-nos a traduzir a Ferdi para a sua língua.",
312 "settings.app.universalDarkModeInfo": "Universal Dark Mode tries to dynamically generate dark mode styles for services that are otherwise not currently supported.", 312 "settings.app.universalDarkModeInfo": "O Modo Noturno Universal tenta gerar dinamicamente estilos para serviços que, de outra forma, não são suportados no momento.",
313 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...", 313 "settings.app.updateStatusAvailable": "Atualização disponivel, a transferir...",
314 "settings.app.updateStatusSearching": "A procurar atualizações", 314 "settings.app.updateStatusSearching": "A procurar atualizações",
315 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi", 315 "settings.app.updateStatusUpToDate": "Está a usar a versão mais recente do Ferdi",
@@ -318,18 +318,18 @@
318 "settings.navigation.availableServices": "Serviços disponíveis", 318 "settings.navigation.availableServices": "Serviços disponíveis",
319 "settings.navigation.logout": "Terminar sessão", 319 "settings.navigation.logout": "Terminar sessão",
320 "settings.navigation.settings": "Definições", 320 "settings.navigation.settings": "Definições",
321 "settings.navigation.supportFerdi": "Support Ferdi", 321 "settings.navigation.supportFerdi": "Apoie o Ferdi",
322 "settings.navigation.team": "Gerir a equipa", 322 "settings.navigation.team": "Gerir a equipa",
323 "settings.navigation.yourServices": "Os seus serviços", 323 "settings.navigation.yourServices": "Os seus serviços",
324 "settings.navigation.yourWorkspaces": "Os teus Espaços de trabalho", 324 "settings.navigation.yourWorkspaces": "Os teus Espaços de trabalho",
325 "settings.recipes.all": "Todos os serviços", 325 "settings.recipes.all": "Todos os serviços",
326 "settings.recipes.custom": "Custom Services", 326 "settings.recipes.custom": "Servicios Personalizados",
327 "settings.recipes.customService.headline.communityRecipes": "Community 3rd Party Recipes", 327 "settings.recipes.customService.headline.communityRecipes": "Serviços da comunidade",
328 "settings.recipes.customService.headline.customRecipes": "Custom 3rd Party Recipes", 328 "settings.recipes.customService.headline.customRecipes": "Serviços personalizados",
329 "settings.recipes.customService.headline.devRecipes": "Your Development Service Recipes", 329 "settings.recipes.customService.headline.devRecipes": "Seus Serviços em Desenvolvimento",
330 "settings.recipes.customService.intro": "To add a custom service, copy the service recipe to:", 330 "settings.recipes.customService.intro": "Para adicionar um serviço personalizado, copie o serviço para:",
331 "settings.recipes.customService.openDevDocs": "Developer Documentation", 331 "settings.recipes.customService.openDevDocs": "Documentação do Desenvolvedor",
332 "settings.recipes.customService.openFolder": "Open folder", 332 "settings.recipes.customService.openFolder": "Abrir pasta",
333 "settings.recipes.headline": "Serviços disponíveis", 333 "settings.recipes.headline": "Serviços disponíveis",
334 "settings.recipes.missingService": "Falta um serviço?", 334 "settings.recipes.missingService": "Falta um serviço?",
335 "settings.recipes.mostPopular": "Os mais populares", 335 "settings.recipes.mostPopular": "Os mais populares",
@@ -362,7 +362,7 @@
362 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens", 362 "settings.service.form.indirectMessages": "Mostrar o emblema da mensagem para todas as novas mensagens",
363 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados", 363 "settings.service.form.isMutedInfo": "Quando desativado, todos sons e reproduções de áudio serão silenciados",
364 "settings.service.form.name": "Nome", 364 "settings.service.form.name": "Nome",
365 "settings.service.form.openDarkmodeCss": "Open darkmode.css", 365 "settings.service.form.openDarkmodeCss": "Abrir darkmode.css",
366 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy", 366 "settings.service.form.proxy.headline": "Definições HTTP/HTTPS Proxy",
367 "settings.service.form.proxy.host": "Host/IP proxy", 367 "settings.service.form.proxy.host": "Host/IP proxy",
368 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.", 368 "settings.service.form.proxy.info": "As definições do proxy não serão guardadas nos servidores do Ferdi.",
@@ -386,25 +386,25 @@
386 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados", 386 "settings.services.tooltip.isMuted": "Todos os sons estão silenciados",
387 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas", 387 "settings.services.tooltip.notificationsDisabled": "As notificações estão desativadas",
388 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso", 388 "settings.services.updatedInfo": "As suas alterações foram efetuadas com sucesso",
389 "settings.supportFerdi.github": "Star on GitHub", 389 "settings.supportFerdi.github": "Siga on GitHub",
390 "settings.supportFerdi.headline": "Support Ferdi", 390 "settings.supportFerdi.headline": "Apoie o Ferdi",
391 "settings.supportFerdi.openCollective": "Support our Open Collective", 391 "settings.supportFerdi.openCollective": "Apoie o desenvolvimento no Open Collective",
392 "settings.supportFerdi.share": "Tell your Friends", 392 "settings.supportFerdi.share": "Compartilhe com seus amigos",
393 "settings.supportFerdi.title": "Do you like Ferdi? Spread the love!", 393 "settings.supportFerdi.title": "Gostou do Ferdi? Compartilhe!",
394 "settings.team.contentHeadline": "Ferdi para equipas", 394 "settings.team.contentHeadline": "Ferdi para equipas",
395 "settings.team.copy": "Ferdi for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", 395 "settings.team.copy": "\"Ferdi para Equipes\" possui a opção de convidar ajudantes para a sua equipe através de mensagens por e-mail e gerenciar as inscrições deles em suas preferências de conta. Não perca tempo configurando as inscrições para membro da equipe individualmente, esqueça as múltiplas faturas e tempos de pagamento. Uma regra universal para todos os membros da equipe.",
396 "settings.team.headline": "Equipa", 396 "settings.team.headline": "Equipa",
397 "settings.team.intro": "You and your team use Ferdi? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", 397 "settings.team.intro": "Você e sua equipe usam Ferdi? Você pode agora administrar as inscrições pagas de todos os seus colegas, amigos e membros da família que você quiser, tudo isso em uma única conta.",
398 "settings.team.manageAction": "Gerir a tua Equipa em getferdi.com", 398 "settings.team.manageAction": "Gerir a tua Equipa em getferdi.com",
399 "settings.team.teamsUnavailable": "Teams are unavailable", 399 "settings.team.teamsUnavailable": "A funcionalidade de Equipes está indisponível",
400 "settings.team.teamsUnavailableInfo": "Teams are currently only available when using the Franz Server and after paying for Franz Professional. Please change your server to https://api.franzinfra.com to use teams.", 400 "settings.team.teamsUnavailableInfo": "Atualmente a funcionalidade de Equipes está disponível apenas utilizando o servidor Franz após adquirir um plano Franz Profissional. Por favor altere o seridor par https://api.franzinfra.com para utilizar esta funcionalidade.",
401 "settings.team.upgradeAction": "Actualiza a tua conta", 401 "settings.team.upgradeAction": "Atualizar sua conta",
402 "settings.user.form.accountType.company": "Empresa", 402 "settings.user.form.accountType.company": "Empresa",
403 "settings.user.form.accountType.individual": "Indivíduo", 403 "settings.user.form.accountType.individual": "Indivíduo",
404 "settings.user.form.accountType.label": "Tipo de conta", 404 "settings.user.form.accountType.label": "Tipo de conta",
405 "settings.user.form.accountType.non-profit": "Sem fins lucrativos", 405 "settings.user.form.accountType.non-profit": "Sem fins lucrativos",
406 "settings.user.form.currentPassword": "Palavra-passe atual", 406 "settings.user.form.currentPassword": "Palavra-passe atual",
407 "settings.user.form.email": "Email", 407 "settings.user.form.email": "E-mail",
408 "settings.user.form.firstname": "Primeiro Nome", 408 "settings.user.form.firstname": "Primeiro Nome",
409 "settings.user.form.lastname": "Último Nome", 409 "settings.user.form.lastname": "Último Nome",
410 "settings.user.form.newPassword": "Nova palavra-passe", 410 "settings.user.form.newPassword": "Nova palavra-passe",
@@ -412,10 +412,10 @@
412 "settings.workspace.add.form.submitButton": "Criar um Espaço de trabalho", 412 "settings.workspace.add.form.submitButton": "Criar um Espaço de trabalho",
413 "settings.workspace.form.buttonDelete": "Apagar um Espaço de trabalho", 413 "settings.workspace.form.buttonDelete": "Apagar um Espaço de trabalho",
414 "settings.workspace.form.buttonSave": "Gravar um Espaço de trabalho", 414 "settings.workspace.form.buttonSave": "Gravar um Espaço de trabalho",
415 "settings.workspace.form.keepLoaded": "Keep this workspace loaded*", 415 "settings.workspace.form.keepLoaded": "Maner todas a áreas de trabalhos carregadas*",
416 "settings.workspace.form.keepLoadedInfo": "*This option will be overwritten by the global \"Keep all workspaces loaded\" option.", 416 "settings.workspace.form.keepLoadedInfo": "*Esta opção será substituída pela configuração global \"Manter todas a áreas de trabalho carregada\".",
417 "settings.workspace.form.name": "Nome", 417 "settings.workspace.form.name": "Nome",
418 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 418 "settings.workspace.form.servicesInWorkspaceHeadline": "Serviços neste Workspace",
419 "settings.workspace.form.yourWorkspaces": "Os teus Espaços de trabalho", 419 "settings.workspace.form.yourWorkspaces": "Os teus Espaços de trabalho",
420 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado", 420 "settings.workspaces.deletedInfo": "O Espaço de trabalho foi apagado",
421 "settings.workspaces.headline": "Os teus Espaços de trabalho", 421 "settings.workspaces.headline": "Os teus Espaços de trabalho",
@@ -423,14 +423,14 @@
423 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente", 423 "settings.workspaces.tryReloadWorkspaces": "Tentar novamente",
424 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso", 424 "settings.workspaces.updatedInfo": "As suas alterações foram efetuadas com sucesso",
425 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo os Espaço de trabalho Ferdi", 425 "settings.workspaces.workspaceFeatureHeadline": "Menos é Mais: Introduzindo os Espaço de trabalho Ferdi",
426 "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", 426 "settings.workspaces.workspaceFeatureInfo": "As áreas de trabalho do Ferdi permite você focar no que realmente é importante agora. Configure diferentes conjuntos de serviços e alterne entre eles facilmente em qualquer momento. Você decide quais serviços você precisa e onde deseja colocá-los, então nós podemos te ajudar a aumentar a produtividade de suas tarefas. Ou facilmente deletar os aplicativos que você nunca irá precisar.",
427 "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", 427 "settings.workspaces.workspacesRequestFailed": "o foi possível carregar suas áreas de trabalho",
428 "sidebar.addNewService": "Adicionar um novo serviço", 428 "sidebar.addNewService": "Adicionar um novo serviço",
429 "sidebar.closeTodosDrawer": "Close Ferdi Todos", 429 "sidebar.closeTodosDrawer": "Fechar as Tarefas",
430 "sidebar.closeWorkspaceDrawer": "Fechar a janela do Espaço de trabalho", 430 "sidebar.closeWorkspaceDrawer": "Fechar a janela do Espaço de trabalho",
431 "sidebar.lockFerdi": "Lock Ferdi", 431 "sidebar.lockFerdi": "Bloquear Ferdi",
432 "sidebar.muteApp": "Desativar notificações e áudio", 432 "sidebar.muteApp": "Desativar notificações e áudio",
433 "sidebar.openTodosDrawer": "Open Ferdi Todos", 433 "sidebar.openTodosDrawer": "Abrir as Tarefas",
434 "sidebar.openWorkspaceDrawer": "Abrir a janela do Espaço de trabalho", 434 "sidebar.openWorkspaceDrawer": "Abrir a janela do Espaço de trabalho",
435 "sidebar.settings": "Definições", 435 "sidebar.settings": "Definições",
436 "sidebar.unmuteApp": "Ativar notificações e áudio", 436 "sidebar.unmuteApp": "Ativar notificações e áudio",
@@ -443,19 +443,19 @@
443 "signup.legal.privacy": "Declaração de privacidade", 443 "signup.legal.privacy": "Declaração de privacidade",
444 "signup.legal.terms": "Termos do Serviço", 444 "signup.legal.terms": "Termos do Serviço",
445 "signup.link.login": "Já tem uma conta, iniciar sessão?", 445 "signup.link.login": "Já tem uma conta, iniciar sessão?",
446 "signup.password.label": "Password", 446 "signup.password.label": "Senha",
447 "signup.submit.label": "Criar uma conta", 447 "signup.submit.label": "Criar uma conta",
448 "subscription.bestValue": "Best value", 448 "subscription.bestValue": "Best value",
449 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial", 449 "subscription.cta.activateTrial": "Yes, start the free Ferdi Professional trial",
450 "subscription.cta.allOptions": "See all options", 450 "subscription.cta.allOptions": "Ver todas as opções",
451 "subscription.cta.choosePlan": "Choose your plan", 451 "subscription.cta.choosePlan": "Escolha seu plano",
452 "subscription.includedProFeatures": "The Ferdi Professional Plan includes:", 452 "subscription.includedProFeatures": "O Ferdi Profissional incluí:",
453 "subscription.interval.per": "per {interval}", 453 "subscription.interval.per": "por {interval}",
454 "subscription.interval.perMonth": "per month", 454 "subscription.interval.perMonth": "por mês",
455 "subscription.interval.perMonthPerUser": "per month & user", 455 "subscription.interval.perMonthPerUser": "por mês e por utilizador",
456 "subscription.planItem.upgradeAccount": "Upgrade Account", 456 "subscription.planItem.upgradeAccount": "Atualizar conta",
457 "subscription.teaser.includedFeatures": "Paid Ferdi Plans include:", 457 "subscription.teaser.includedFeatures": "Planos pagos Ferdi incluem:",
458 "subscription.teaser.intro": "Ferdi 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", 458 "subscription.teaser.intro": "O Ferdi 5 vem com uma variedade de novas funcionalidades para melhorar a sua comunicação diária - pilhas inclusas. Confira os nossos novos planos e encontre aquele que melhor serve para você!",
459 "subscriptionPopup.buttonCancel": "Cancelar", 459 "subscriptionPopup.buttonCancel": "Cancelar",
460 "subscriptionPopup.buttonDone": "Concluído", 460 "subscriptionPopup.buttonDone": "Concluído",
461 "tabs.item.deleteService": "Apagar serviço", 461 "tabs.item.deleteService": "Apagar serviço",
@@ -469,25 +469,25 @@
469 "tabs.item.reload": "Recarregar", 469 "tabs.item.reload": "Recarregar",
470 "validation.email": "{field} não é válido", 470 "validation.email": "{field} não é válido",
471 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres", 471 "validation.minLength": "{field} deveria ter pelo menos {length} caracteres",
472 "validation.oneRequired": "At least one is required", 472 "validation.oneRequired": "É necessário pelo menos um",
473 "validation.required": "{field} é obrigatório", 473 "validation.required": "{field} é obrigatório",
474 "validation.url": "{field} não é uma hiperligação válida", 474 "validation.url": "{field} não é uma hiperligação válida",
475 "webControls.back": "Back", 475 "webControls.back": "Anterior",
476 "webControls.forward": "Forward", 476 "webControls.forward": "Próximo",
477 "webControls.goHome": "Home", 477 "webControls.goHome": "Início",
478 "webControls.openInBrowser": "Open in Browser", 478 "webControls.openInBrowser": "Abrir no navegador",
479 "webControls.reload": "Recarregar", 479 "webControls.reload": "Recarregar",
480 "welcome.loginButton": "Iniciar sessão", 480 "welcome.loginButton": "Iniciar sessão",
481 "welcome.signupButton": "Criar uma conta gratuita", 481 "welcome.signupButton": "Criar uma conta gratuita",
482 "workspaceDrawer.addNewWorkspaceLabel": "Add new workspace", 482 "workspaceDrawer.addNewWorkspaceLabel": "Adicionar uma nova área de trabalho",
483 "workspaceDrawer.allServices": "Todos os serviços", 483 "workspaceDrawer.allServices": "Todos os serviços",
484 "workspaceDrawer.headline": "Espaços de trabalho", 484 "workspaceDrawer.headline": "Espaços de trabalho",
485 "workspaceDrawer.item.contextMenuEdit": "edit", 485 "workspaceDrawer.item.contextMenuEdit": "editar",
486 "workspaceDrawer.item.noServicesAddedYet": "No services added yet", 486 "workspaceDrawer.item.noServicesAddedYet": "Nenhum serviço foi adicionado",
487 "workspaceDrawer.premiumCtaButtonLabel": "Create your first workspace", 487 "workspaceDrawer.premiumCtaButtonLabel": "Crie sua primeira área de trabalho",
488 "workspaceDrawer.proFeatureBadge": "Premium feature", 488 "workspaceDrawer.proFeatureBadge": "Vantagem paga oferecida aos assinantes",
489 "workspaceDrawer.reactivatePremiumAccountLabel": "Reactivate premium account", 489 "workspaceDrawer.reactivatePremiumAccountLabel": "Reative sua conta paga",
490 "workspaceDrawer.workspaceFeatureInfo": "<p>Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.</p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.</p>", 490 "workspaceDrawer.workspaceFeatureInfo": "<p>As áreas de trabalho do Ferdi te ajuda a focar no que realmente é importante agora. Configure diferente cenários para serviços e mude entre eles facilmente em qualquer momento. </p><p>Você decide quais serviços precisa e onde deseja posicioná-los, e então nós iremos te ajudar em aumentar a sua produtividade. Você pode desligar os serviços que não são úteis para você.</p>",
491 "workspaceDrawer.workspacesSettingsTooltip": "Edit workspaces settings", 491 "workspaceDrawer.workspacesSettingsTooltip": "Editar configurações das áreas de trabalho",
492 "workspaces.switchingIndicator.switchingTo": "Switching to" 492 "workspaces.switchingIndicator.switchingTo": "Trocando para"
493} 493}
diff --git a/src/internal-server b/src/internal-server
Subproject 65d1468901b7394c95e510c5aed1a23c22f0f71 Subproject 24c8ea3aad5b828297686a032103d2cc4eabc37
diff --git a/src/models/Service.js b/src/models/Service.js
index 10b54602f..12a2d4af9 100644
--- a/src/models/Service.js
+++ b/src/models/Service.js
@@ -1,6 +1,6 @@
1import { computed, observable, autorun } from 'mobx'; 1import { autorun, computed, observable } from 'mobx';
2import path from 'path';
3import normalizeUrl from 'normalize-url'; 2import normalizeUrl from 'normalize-url';
3import path from 'path';
4 4
5const debug = require('debug')('Ferdi:Service'); 5const debug = require('debug')('Ferdi:Service');
6 6
@@ -146,7 +146,7 @@ export default class Service {
146 if (this.recipe.hasCustomUrl && this.customUrl) { 146 if (this.recipe.hasCustomUrl && this.customUrl) {
147 let url; 147 let url;
148 try { 148 try {
149 url = normalizeUrl(this.customUrl, { stripWWW: false }); 149 url = normalizeUrl(this.customUrl, { stripWWW: false, removeTrailingSlash: false });
150 } catch (err) { 150 } catch (err) {
151 console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`); 151 console.error(`Service (${this.recipe.name}): '${this.customUrl}' is not a valid Url.`);
152 } 152 }
diff --git a/src/stores/SettingsStore.js b/src/stores/SettingsStore.js
index 8a5ee7204..428b6342c 100644
--- a/src/stores/SettingsStore.js
+++ b/src/stores/SettingsStore.js
@@ -47,9 +47,11 @@ export default class SettingsStore extends Store {
47 47
48 reaction( 48 reaction(
49 () => this.all.app.autohideMenuBar, 49 () => this.all.app.autohideMenuBar,
50 () => remote.getCurrentWindow().setAutoHideMenuBar( 50 () => {
51 this.all.app.autohideMenuBar, 51 const currentWindow = remote.getCurrentWindow();
52 ), 52 currentWindow.setMenuBarVisibility(!this.all.app.autohideMenuBar);
53 currentWindow.setAutoHideMenuBar(this.all.app.autohideMenuBar);
54 },
53 ); 55 );
54 56
55 reaction( 57 reaction(