aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLibravatar Dominik Guzei <dominik.guzei@gmail.com>2019-03-08 15:28:35 +0100
committerLibravatar Dominik Guzei <dominik.guzei@gmail.com>2019-03-08 15:28:35 +0100
commitb6469566c2c88e8a61334d5d15a0f7c1afe08288 (patch)
treef42dd4962c74057c6432866205b16c9d78a1c07e
parentremove dev logs (diff)
parentcorrectly update services submenu on language change (diff)
downloadferdium-app-b6469566c2c88e8a61334d5d15a0f7c1afe08288.tar.gz
ferdium-app-b6469566c2c88e8a61334d5d15a0f7c1afe08288.tar.zst
ferdium-app-b6469566c2c88e8a61334d5d15a0f7c1afe08288.zip
fix merge conflicts with latest develop
-rw-r--r--.babelrc9
-rw-r--r--.gitignore1
-rw-r--r--appveyor.yml3
-rw-r--r--package-lock.json61
-rw-r--r--package.json8
-rw-r--r--src/components/settings/account/AccountDashboard.js4
-rw-r--r--src/components/subscription/SubscriptionForm.js60
-rw-r--r--src/config.js6
-rw-r--r--src/containers/settings/EditUserScreen.js44
-rw-r--r--src/electron/ipc-api/autoUpdate.js2
-rw-r--r--src/features/shareFranz/Component.js52
-rw-r--r--src/helpers/url-helpers.js15
-rw-r--r--src/i18n/globalMessages.js4
-rw-r--r--src/i18n/languages.js3
-rw-r--r--src/i18n/locales/ca.json23
-rw-r--r--src/i18n/locales/cs.json31
-rw-r--r--src/i18n/locales/de.json13
-rw-r--r--src/i18n/locales/defaultMessages.json4118
-rw-r--r--src/i18n/locales/el.json15
-rw-r--r--src/i18n/locales/en-US.json476
-rw-r--r--src/i18n/locales/es.json27
-rw-r--r--src/i18n/locales/fr.json19
-rw-r--r--src/i18n/locales/ga.json11
-rw-r--r--src/i18n/locales/hr.json11
-rw-r--r--src/i18n/locales/hu.json97
-rw-r--r--src/i18n/locales/id.json31
-rw-r--r--src/i18n/locales/it.json45
-rw-r--r--src/i18n/locales/ja.json33
-rw-r--r--src/i18n/locales/ka.json11
-rw-r--r--src/i18n/locales/nl-BE.json203
-rw-r--r--src/i18n/locales/nl.json33
-rw-r--r--src/i18n/locales/pl.json41
-rw-r--r--src/i18n/locales/pt-BR.json29
-rw-r--r--src/i18n/locales/pt.json85
-rw-r--r--src/i18n/locales/ru.json61
-rw-r--r--src/i18n/locales/sk.json11
-rw-r--r--src/i18n/locales/sr.json11
-rw-r--r--src/i18n/locales/tr.json73
-rw-r--r--src/i18n/locales/uk.json69
-rw-r--r--src/i18n/locales/whitelist_en-US.json2
-rw-r--r--src/i18n/locales/zh-TW.json101
-rw-r--r--src/i18n/manage-translations.js9
-rw-r--r--src/i18n/messages/src/components/auth/Import.json54
-rw-r--r--src/i18n/messages/src/components/auth/Invite.json93
-rw-r--r--src/i18n/messages/src/components/auth/Login.json119
-rw-r--r--src/i18n/messages/src/components/auth/Password.json93
-rw-r--r--src/i18n/messages/src/components/auth/Pricing.json54
-rw-r--r--src/i18n/messages/src/components/auth/Signup.json158
-rw-r--r--src/i18n/messages/src/components/auth/Welcome.json28
-rw-r--r--src/i18n/messages/src/components/layout/AppLayout.json80
-rw-r--r--src/i18n/messages/src/components/layout/Sidebar.json54
-rw-r--r--src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json67
-rw-r--r--src/i18n/messages/src/components/services/content/ServiceDisabled.json28
-rw-r--r--src/i18n/messages/src/components/services/content/Services.json28
-rw-r--r--src/i18n/messages/src/components/services/content/WebviewCrashHandler.json54
-rw-r--r--src/i18n/messages/src/components/services/tabs/TabItem.json119
-rw-r--r--src/i18n/messages/src/components/settings/account/AccountDashboard.json197
-rw-r--r--src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json93
-rw-r--r--src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json106
-rw-r--r--src/i18n/messages/src/components/settings/services/EditServiceForm.json288
-rw-r--r--src/i18n/messages/src/components/settings/services/ServiceError.json54
-rw-r--r--src/i18n/messages/src/components/settings/services/ServiceItem.json41
-rw-r--r--src/i18n/messages/src/components/settings/services/ServicesDashboard.json119
-rw-r--r--src/i18n/messages/src/components/settings/settings/EditSettingsForm.json223
-rw-r--r--src/i18n/messages/src/components/settings/user/EditUserForm.json80
-rw-r--r--src/i18n/messages/src/components/subscription/SubscriptionForm.json171
-rw-r--r--src/i18n/messages/src/components/subscription/SubscriptionPopup.json28
-rw-r--r--src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json15
-rw-r--r--src/i18n/messages/src/components/util/ErrorBoundary/index.json28
-rw-r--r--src/i18n/messages/src/containers/settings/EditServiceScreen.json197
-rw-r--r--src/i18n/messages/src/containers/settings/EditSettingsScreen.json158
-rw-r--r--src/i18n/messages/src/containers/settings/EditUserScreen.json119
-rw-r--r--src/i18n/messages/src/features/delayApp/Component.json41
-rw-r--r--src/i18n/messages/src/features/shareFranz/Component.json93
-rw-r--r--src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json28
-rw-r--r--src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json67
-rw-r--r--src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json28
-rw-r--r--src/i18n/messages/src/helpers/validation-helpers.json67
-rw-r--r--src/i18n/messages/src/i18n/globalMessages.json80
-rw-r--r--src/i18n/messages/src/lib/Menu.json652
-rw-r--r--src/index.js29
-rw-r--r--src/lib/Menu.js138
-rw-r--r--src/stores/AppStore.js34
-rw-r--r--src/styles/layout.scss9
84 files changed, 9331 insertions, 842 deletions
diff --git a/.babelrc b/.babelrc
index 299d5b4a0..6277978b9 100644
--- a/.babelrc
+++ b/.babelrc
@@ -25,7 +25,12 @@
25 } 25 }
26 ], 26 ],
27 "@babel/proposal-throw-expressions", 27 "@babel/proposal-throw-expressions",
28 "@babel/syntax-dynamic-import" 28 "@babel/syntax-dynamic-import",
29 ["react-intl", {
30 "messagesDir": "./src/i18n/messages/",
31 "enforceDescriptions": false,
32 "extractSourceLocation": true
33 }]
29 ], 34 ],
30 "sourceMaps": "inline" 35 "sourceMaps": "inline"
31} \ No newline at end of file 36}
diff --git a/.gitignore b/.gitignore
index 245057c46..d38c475bf 100644
--- a/.gitignore
+++ b/.gitignore
@@ -3,6 +3,7 @@ node_modules
3flow-typed 3flow-typed
4out 4out
5.DS_Store 5.DS_Store
6.idea
6build 7build
7.tmp 8.tmp
8.stage 9.stage
diff --git a/appveyor.yml b/appveyor.yml
index 7240dd9db..70b8d6f1f 100644
--- a/appveyor.yml
+++ b/appveyor.yml
@@ -9,8 +9,7 @@ environment:
9version: 5.0.0.{build} 9version: 5.0.0.{build}
10 10
11install: 11install:
12 - ps: $version = Get-Content .\.nvmrc -Raw 12 - ps: Install-Product node 10
13 - ps: Install-Product node $version
14 - npx lerna bootstrap 13 - npx lerna bootstrap
15 14
16cache: 15cache:
diff --git a/package-lock.json b/package-lock.json
index d7c209cc6..1f1ac3c00 100644
--- a/package-lock.json
+++ b/package-lock.json
@@ -3139,6 +3139,17 @@
3139 } 3139 }
3140 } 3140 }
3141 }, 3141 },
3142 "babel-plugin-react-intl": {
3143 "version": "3.0.1",
3144 "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz",
3145 "integrity": "sha512-FqnEO+Tq7kJVUPKsSG3s5jaHi3pAC4RUR11IrscvjsfkOApLP2DtzNo6dtQ+tX+OzEzJx7cUms8aCw5BFyW5xg==",
3146 "dev": true,
3147 "requires": {
3148 "@babel/runtime": "^7.0.0",
3149 "intl-messageformat-parser": "^1.2.0",
3150 "mkdirp": "^0.5.1"
3151 }
3152 },
3142 "babel-runtime": { 3153 "babel-runtime": {
3143 "version": "6.26.0", 3154 "version": "6.26.0",
3144 "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", 3155 "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz",
@@ -6125,9 +6136,9 @@
6125 "dev": true 6136 "dev": true
6126 }, 6137 },
6127 "electron": { 6138 "electron": {
6128 "version": "4.0.4", 6139 "version": "4.0.7",
6129 "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.4.tgz", 6140 "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.7.tgz",
6130 "integrity": "sha512-zG5VtLrmPfmw1fXY/3BEtRZk7OZ7djQhweZ6rW+R5NeF6s8RTz/AwTGtLoBo4z8wmJ5QTy0Y941FZw4pe5YlpA==", 6141 "integrity": "sha512-KYQ9SJZFWNKqoq6XjKW1bLFHjmAGeSC3XNuhHK/Sd2MK5H5sO3iKjvZU/YhiBUtkB/cBSkOdQTVEaLcMwU8l3A==",
6131 "dev": true, 6142 "dev": true,
6132 "requires": { 6143 "requires": {
6133 "@types/node": "^10.12.18", 6144 "@types/node": "^10.12.18",
@@ -6136,9 +6147,9 @@
6136 }, 6147 },
6137 "dependencies": { 6148 "dependencies": {
6138 "@types/node": { 6149 "@types/node": {
6139 "version": "10.12.26", 6150 "version": "10.12.29",
6140 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.26.tgz", 6151 "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.29.tgz",
6141 "integrity": "sha512-nMRqS+mL1TOnIJrL6LKJcNZPB8V3eTfRo9FQA2b5gDvrHurC8XbSA86KNe0dShlEL7ReWJv/OU9NL7Z0dnqWTg==", 6152 "integrity": "sha512-J/tnbnj8HcsBgCe2apZbdUpQ7hs4d7oZNTYA5bekWdP0sr2NGsOpI/HRdDroEi209tEvTcTtxhD0FfED3DhEcw==",
6142 "dev": true 6153 "dev": true
6143 } 6154 }
6144 } 6155 }
@@ -6239,12 +6250,6 @@
6239 "jsonfile": "^4.0.0", 6250 "jsonfile": "^4.0.0",
6240 "universalify": "^0.1.0" 6251 "universalify": "^0.1.0"
6241 } 6252 }
6242 },
6243 "ms": {
6244 "version": "2.1.1",
6245 "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.1.tgz",
6246 "integrity": "sha512-tgp+dl5cGk28utYktBsrFqA7HKgrhgPsg6Z/EfhWI4gl1Hwq8B/GmY/0oXZ6nF8hDVesS/FpnYaD/kOWhYQvyg==",
6247 "dev": true
6248 } 6253 }
6249 } 6254 }
6250 }, 6255 },
@@ -11242,6 +11247,15 @@
11242 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==", 11247 "integrity": "sha512-xbbCH5dCYU5T8LcEhhuh7HJ88HXuW3qsI3Y0zOZFKfZEHcpWiHU/Jxzk629Brsab/mMiHQti9wMP+845RPe3Vg==",
11243 "dev": true 11248 "dev": true
11244 }, 11249 },
11250 "json-stable-stringify": {
11251 "version": "1.0.1",
11252 "resolved": "https://registry.npmjs.org/json-stable-stringify/-/json-stable-stringify-1.0.1.tgz",
11253 "integrity": "sha1-mnWdOcXy/1A/1TAGRu1EX4jE+a8=",
11254 "dev": true,
11255 "requires": {
11256 "jsonify": "~0.0.0"
11257 }
11258 },
11245 "json-stable-stringify-without-jsonify": { 11259 "json-stable-stringify-without-jsonify": {
11246 "version": "1.0.1", 11260 "version": "1.0.1",
11247 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz", 11261 "resolved": "https://registry.npmjs.org/json-stable-stringify-without-jsonify/-/json-stable-stringify-without-jsonify-1.0.1.tgz",
@@ -11277,6 +11291,12 @@
11277 "graceful-fs": "^4.1.6" 11291 "graceful-fs": "^4.1.6"
11278 } 11292 }
11279 }, 11293 },
11294 "jsonify": {
11295 "version": "0.0.0",
11296 "resolved": "https://registry.npmjs.org/jsonify/-/jsonify-0.0.0.tgz",
11297 "integrity": "sha1-LHS27kHZPKUbe1qu6PUDYx0lKnM=",
11298 "dev": true
11299 },
11280 "jsonparse": { 11300 "jsonparse": {
11281 "version": "1.3.1", 11301 "version": "1.3.1",
11282 "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz", 11302 "resolved": "https://registry.npmjs.org/jsonparse/-/jsonparse-1.3.1.tgz",
@@ -11442,11 +11462,6 @@
11442 "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=", 11462 "integrity": "sha1-P55JkK3K0MaGwOcB92RYaPdfkes=",
11443 "dev": true 11463 "dev": true
11444 }, 11464 },
11445 "keymaster": {
11446 "version": "1.6.2",
11447 "resolved": "https://registry.npmjs.org/keymaster/-/keymaster-1.6.2.tgz",
11448 "integrity": "sha1-4a5U0OqUiPn2C2a2aPAumhlGxus="
11449 },
11450 "killable": { 11465 "killable": {
11451 "version": "1.0.1", 11466 "version": "1.0.1",
11452 "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz", 11467 "resolved": "https://registry.npmjs.org/killable/-/killable-1.0.1.tgz",
@@ -14981,6 +14996,18 @@
14981 } 14996 }
14982 } 14997 }
14983 }, 14998 },
14999 "react-intl-translations-manager": {
15000 "version": "5.0.3",
15001 "resolved": "https://registry.npmjs.org/react-intl-translations-manager/-/react-intl-translations-manager-5.0.3.tgz",
15002 "integrity": "sha512-EfBeugnOGFcdUbQyY9TqBMbuauQ8wm73ZqFr0UqCljhbXl7YDHQcVzclWFRkVmlUffzxitLQFhAZEVVeRNQSwA==",
15003 "dev": true,
15004 "requires": {
15005 "chalk": "^2.3.2",
15006 "glob": "^7.1.2",
15007 "json-stable-stringify": "^1.0.1",
15008 "mkdirp": "^0.5.1"
15009 }
15010 },
14984 "react-is": { 15011 "react-is": {
14985 "version": "16.8.1", 15012 "version": "16.8.1",
14986 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz", 15013 "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.1.tgz",
diff --git a/package.json b/package.json
index b0ede2e7e..14e0df7ca 100644
--- a/package.json
+++ b/package.json
@@ -16,6 +16,7 @@
16 "start:live": "cross-env LIVE_API=1 npm start", 16 "start:live": "cross-env LIVE_API=1 npm start",
17 "dev": "cross-env NODE_ENV=development gulp dev", 17 "dev": "cross-env NODE_ENV=development gulp dev",
18 "lint": "eslint src", 18 "lint": "eslint src",
19 "manage-translations": "node ./src/i18n/manage-translations.js",
19 "sign": "gulp sign", 20 "sign": "gulp sign",
20 "prebuild": "gulp build", 21 "prebuild": "gulp build",
21 "build": "npx electron-builder --publish onTag", 22 "build": "npx electron-builder --publish onTag",
@@ -52,7 +53,6 @@
52 "fs-extra": "7.0.1", 53 "fs-extra": "7.0.1",
53 "hex-to-rgba": "1.0.2", 54 "hex-to-rgba": "1.0.2",
54 "jsonwebtoken": "^7.4.1", 55 "jsonwebtoken": "^7.4.1",
55 "keymaster": "^1.6.2",
56 "lodash": "^4.17.4", 56 "lodash": "^4.17.4",
57 "mdi": "^1.9.33", 57 "mdi": "^1.9.33",
58 "mime-types": "2.1.21", 58 "mime-types": "2.1.21",
@@ -108,11 +108,12 @@
108 "@types/uuid": "3.4.4", 108 "@types/uuid": "3.4.4",
109 "babel-eslint": "10.0.1", 109 "babel-eslint": "10.0.1",
110 "babel-loader": "^8.0.4", 110 "babel-loader": "^8.0.4",
111 "babel-plugin-react-intl": "3.0.1",
111 "conventional-changelog-cli": "2.0.11", 112 "conventional-changelog-cli": "2.0.11",
112 "cross-env": "^5.0.5", 113 "cross-env": "^5.0.5",
113 "cz-conventional-changelog": "2.1.0", 114 "cz-conventional-changelog": "2.1.0",
114 "dotenv": "^4.0.0", 115 "dotenv": "^4.0.0",
115 "electron": "4.0.4", 116 "electron": "4.0.7",
116 "electron-builder": "20.38.4", 117 "electron-builder": "20.38.4",
117 "electron-rebuild": "1.8.4", 118 "electron-rebuild": "1.8.4",
118 "eslint": "5.10.0", 119 "eslint": "5.10.0",
@@ -137,6 +138,7 @@
137 "mocha": "5.2.0", 138 "mocha": "5.2.0",
138 "node-sass": "4.11.0", 139 "node-sass": "4.11.0",
139 "prettier": "1.15.2", 140 "prettier": "1.15.2",
141 "react-intl-translations-manager": "5.0.3",
140 "terser-webpack-plugin": "1.2.1", 142 "terser-webpack-plugin": "1.2.1",
141 "ts-loader": "5.3.2", 143 "ts-loader": "5.3.2",
142 "tslint": "5.12.0", 144 "tslint": "5.12.0",
@@ -157,7 +159,7 @@
157 ], 159 ],
158 "husky": { 160 "husky": {
159 "hooks": { 161 "hooks": {
160 "pre-push": "npm run lint && npm run reformat-files" 162 "pre-push": "npm run lint && npm run reformat-files && npm run manage-translations"
161 } 163 }
162 } 164 }
163} 165}
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js
index f2d3ca8c0..181b95c8c 100644
--- a/src/components/settings/account/AccountDashboard.js
+++ b/src/components/settings/account/AccountDashboard.js
@@ -44,10 +44,6 @@ const messages = defineMessages({
44 id: 'settings.account.accountType.premium', 44 id: 'settings.account.accountType.premium',
45 defaultMessage: '!!!Premium Supporter Account', 45 defaultMessage: '!!!Premium Supporter Account',
46 }, 46 },
47 accountTypeEnterprise: {
48 id: 'settings.account.accountType.enterprise',
49 defaultMessage: '!!!Enterprise Account',
50 },
51 accountEditButton: { 47 accountEditButton: {
52 id: 'settings.account.account.editButton', 48 id: 'settings.account.account.editButton',
53 defaultMessage: '!!!Edit Account', 49 defaultMessage: '!!!Edit Account',
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js
index 90da8ddc3..7a818d100 100644
--- a/src/components/subscription/SubscriptionForm.js
+++ b/src/components/subscription/SubscriptionForm.js
@@ -35,31 +35,29 @@ const messages = defineMessages({
35 id: 'subscription.includedFeatures', 35 id: 'subscription.includedFeatures',
36 defaultMessage: '!!!The Franz Premium Supporter Account includes', 36 defaultMessage: '!!!The Franz Premium Supporter Account includes',
37 }, 37 },
38 features: { 38 onpremise: {
39 onpremise: { 39 id: 'subscription.features.onpremise.mattermost',
40 id: 'subscription.features.onpremise.mattermost', 40 defaultMessage: '!!!Add on-premise/hosted services like Mattermost',
41 defaultMessage: '!!!Add on-premise/hosted services like Mattermost', 41 },
42 }, 42 noInterruptions: {
43 noInterruptions: { 43 id: 'subscription.features.noInterruptions',
44 id: 'subscription.features.noInterruptions', 44 defaultMessage: '!!!No app delays & nagging to upgrade license',
45 defaultMessage: '!!!No app delays & nagging to upgrade license', 45 },
46 }, 46 proxy: {
47 proxy: { 47 id: 'subscription.features.proxy',
48 id: 'subscription.features.proxy', 48 defaultMessage: '!!!Proxy support for services',
49 defaultMessage: '!!!Proxy support for services', 49 },
50 }, 50 spellchecker: {
51 spellchecker: { 51 id: 'subscription.features.spellchecker',
52 id: 'subscription.features.spellchecker', 52 defaultMessage: '!!!Support for Spellchecker',
53 defaultMessage: '!!!Support for Spellchecker', 53 },
54 }, 54 ads: {
55 ads: { 55 id: 'subscription.features.ads',
56 id: 'subscription.features.ads', 56 defaultMessage: '!!!No ads, ever!',
57 defaultMessage: '!!!No ads, ever!', 57 },
58 }, 58 comingSoon: {
59 comingSoon: { 59 id: 'subscription.features.comingSoon',
60 id: 'subscription.features.comingSoon', 60 defaultMessage: '!!!coming soon',
61 defaultMessage: '!!!coming soon',
62 },
63 }, 61 },
64 euTaxInfo: { 62 euTaxInfo: {
65 id: 'subscription.euTaxInfo', 63 id: 'subscription.euTaxInfo',
@@ -85,7 +83,7 @@ export default @observer class SubscriptionForm extends Component {
85 showSkipOption: false, 83 showSkipOption: false,
86 skipAction: () => null, 84 skipAction: () => null,
87 skipButtonLabel: '', 85 skipButtonLabel: '',
88 } 86 };
89 87
90 static contextTypes = { 88 static contextTypes = {
91 intl: intlShape, 89 intl: intlShape,
@@ -162,18 +160,18 @@ export default @observer class SubscriptionForm extends Component {
162 </p> 160 </p>
163 <div className="subscription"> 161 <div className="subscription">
164 <ul className="subscription__premium-features"> 162 <ul className="subscription__premium-features">
165 <li>{intl.formatMessage(messages.features.onpremise)}</li> 163 <li>{intl.formatMessage(messages.onpremise)}</li>
166 <li> 164 <li>
167 {intl.formatMessage(messages.features.noInterruptions)} 165 {intl.formatMessage(messages.noInterruptions)}
168 </li> 166 </li>
169 <li> 167 <li>
170 {intl.formatMessage(messages.features.spellchecker)} 168 {intl.formatMessage(messages.spellchecker)}
171 </li> 169 </li>
172 <li> 170 <li>
173 {intl.formatMessage(messages.features.proxy)} 171 {intl.formatMessage(messages.proxy)}
174 </li> 172 </li>
175 <li> 173 <li>
176 {intl.formatMessage(messages.features.ads)} 174 {intl.formatMessage(messages.ads)}
177 </li> 175 </li>
178 </ul> 176 </ul>
179 </div> 177 </div>
diff --git a/src/config.js b/src/config.js
index 30a5a5cc0..d619a7492 100644
--- a/src/config.js
+++ b/src/config.js
@@ -64,3 +64,9 @@ export const SETTINGS_PATH = path.join(app.getPath('userData'), 'config');
64 64
65// Replacing app.asar is not beautiful but unforunately necessary 65// Replacing app.asar is not beautiful but unforunately necessary
66export const DICTIONARY_PATH = asarPath(path.join(__dirname, 'dictionaries')); 66export const DICTIONARY_PATH = asarPath(path.join(__dirname, 'dictionaries'));
67
68export const ALLOWED_PROTOCOLS = [
69 'https:',
70 'http:',
71 'ftp:',
72];
diff --git a/src/containers/settings/EditUserScreen.js b/src/containers/settings/EditUserScreen.js
index bade928a0..81f689400 100644
--- a/src/containers/settings/EditUserScreen.js
+++ b/src/containers/settings/EditUserScreen.js
@@ -23,23 +23,21 @@ const messages = defineMessages({
23 id: 'settings.user.form.email', 23 id: 'settings.user.form.email',
24 defaultMessage: '!!!Email', 24 defaultMessage: '!!!Email',
25 }, 25 },
26 accountType: { 26 accountTypeLabel: {
27 label: { 27 id: 'settings.user.form.accountType.label',
28 id: 'settings.user.form.accountType.label', 28 defaultMessage: '!!!Account type',
29 defaultMessage: '!!!Account type', 29 },
30 }, 30 accountTypeIndividual: {
31 individual: { 31 id: 'settings.user.form.accountType.individual',
32 id: 'settings.user.form.accountType.individual', 32 defaultMessage: '!!!Individual',
33 defaultMessage: '!!!Individual', 33 },
34 }, 34 accountTypeNonProfit: {
35 nonProfit: { 35 id: 'settings.user.form.accountType.non-profit',
36 id: 'settings.user.form.accountType.non-profit', 36 defaultMessage: '!!!Non-Profit',
37 defaultMessage: '!!!Non-Profit', 37 },
38 }, 38 accountTypeCompany: {
39 company: { 39 id: 'settings.user.form.accountType.company',
40 id: 'settings.user.form.accountType.company', 40 defaultMessage: '!!!Company',
41 defaultMessage: '!!!Company',
42 },
43 }, 41 },
44 currentPassword: { 42 currentPassword: {
45 id: 'settings.user.form.currentPassword', 43 id: 'settings.user.form.currentPassword',
@@ -94,21 +92,21 @@ export default @inject('stores', 'actions') @observer class EditUserScreen exten
94 accountType: { 92 accountType: {
95 value: user.accountType, 93 value: user.accountType,
96 validators: [required], 94 validators: [required],
97 label: intl.formatMessage(messages.accountType.label), 95 label: intl.formatMessage(messages.accountTypeLabel),
98 options: [{ 96 options: [{
99 value: 'individual', 97 value: 'individual',
100 label: intl.formatMessage(messages.accountType.individual), 98 label: intl.formatMessage(messages.accountTypeIndividual),
101 }, { 99 }, {
102 value: 'non-profit', 100 value: 'non-profit',
103 label: intl.formatMessage(messages.accountType.nonProfit), 101 label: intl.formatMessage(messages.accountTypeNonProfit),
104 }, { 102 }, {
105 value: 'company', 103 value: 'company',
106 label: intl.formatMessage(messages.accountType.company), 104 label: intl.formatMessage(messages.accountTypeCompany),
107 }], 105 }],
108 }, 106 },
109 organization: { 107 organization: {
110 label: intl.formatMessage(messages.accountType.company), 108 label: intl.formatMessage(messages.accountTypeCompany),
111 placeholder: intl.formatMessage(messages.accountType.company), 109 placeholder: intl.formatMessage(messages.accountTypeCompany),
112 value: user.organization, 110 value: user.organization,
113 }, 111 },
114 oldPassword: { 112 oldPassword: {
diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js
index 83dd83712..74b718734 100644
--- a/src/electron/ipc-api/autoUpdate.js
+++ b/src/electron/ipc-api/autoUpdate.js
@@ -4,7 +4,7 @@ import { autoUpdater } from 'electron-updater';
4const debug = require('debug')('Franz:ipcApi:autoUpdate'); 4const debug = require('debug')('Franz:ipcApi:autoUpdate');
5 5
6export default (params) => { 6export default (params) => {
7 if (process.platform === 'darwin' || process.platform === 'win32') { 7 if (process.platform === 'darwin' || process.platform === 'win32' || process.env.APPIMAGE) {
8 ipcMain.on('autoUpdate', (event, args) => { 8 ipcMain.on('autoUpdate', (event, args) => {
9 try { 9 try {
10 autoUpdater.autoInstallOnAppQuit = false; 10 autoUpdater.autoInstallOnAppQuit = false;
diff --git a/src/features/shareFranz/Component.js b/src/features/shareFranz/Component.js
index d463664df..ef43a54fa 100644
--- a/src/features/shareFranz/Component.js
+++ b/src/features/shareFranz/Component.js
@@ -20,29 +20,25 @@ const messages = defineMessages({
20 id: 'feature.shareFranz.text', 20 id: 'feature.shareFranz.text',
21 defaultMessage: '!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.', 21 defaultMessage: '!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.',
22 }, 22 },
23 actions: { 23 actionsEmail: {
24 email: { 24 id: 'feature.shareFranz.action.email',
25 id: 'feature.shareFranz.action.email', 25 defaultMessage: '!!!Share as email',
26 defaultMessage: '!!!Share as email',
27 },
28 facebook: {
29 id: 'feature.shareFranz.action.facebook',
30 defaultMessage: '!!!Share on Facebook',
31 },
32 twitter: {
33 id: 'feature.shareFranz.action.twitter',
34 defaultMessage: '!!!Share on Twitter',
35 },
36 }, 26 },
37 shareText: { 27 actionsFacebook: {
38 email: { 28 id: 'feature.shareFranz.action.facebook',
39 id: 'feature.shareFranz.shareText.email', 29 defaultMessage: '!!!Share on Facebook',
40 defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com', 30 },
41 }, 31 actionsTwitter: {
42 twitter: { 32 id: 'feature.shareFranz.action.twitter',
43 id: 'feature.shareFranz.shareText.twitter', 33 defaultMessage: '!!!Share on Twitter',
44 defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz', 34 },
45 }, 35 shareTextEmail: {
36 id: 'feature.shareFranz.shareText.email',
37 defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com',
38 },
39 shareTextTwitter: {
40 id: 'feature.shareFranz.shareText.twitter',
41 defaultMessage: '!!! I\'ve added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz',
46 }, 42 },
47}); 43});
48 44
@@ -90,7 +86,7 @@ const styles = theme => ({
90export default @injectSheet(styles) @inject('stores') @observer class ShareFranzModal extends Component { 86export default @injectSheet(styles) @inject('stores') @observer class ShareFranzModal extends Component {
91 static propTypes = { 87 static propTypes = {
92 classes: PropTypes.object.isRequired, 88 classes: PropTypes.object.isRequired,
93 } 89 };
94 90
95 static contextTypes = { 91 static contextTypes = {
96 intl: intlShape, 92 intl: intlShape,
@@ -128,17 +124,17 @@ export default @injectSheet(styles) @inject('stores') @observer class ShareFranz
128 <p>{intl.formatMessage(messages.text)}</p> 124 <p>{intl.formatMessage(messages.text)}</p>
129 <div className={classes.actions}> 125 <div className={classes.actions}>
130 <Button 126 <Button
131 label={intl.formatMessage(messages.actions.email)} 127 label={intl.formatMessage(messages.actionsEmail)}
132 className={classes.cta} 128 className={classes.cta}
133 icon="mdiEmail" 129 icon="mdiEmail"
134 href={`mailto:?subject=Meet the cool app Franz&body=${intl.formatMessage(messages.shareText.email, { count: serviceCount })}}`} 130 href={`mailto:?subject=Meet the cool app Franz&body=${intl.formatMessage(messages.shareTextEmail, { count: serviceCount })}}`}
135 target="_blank" 131 target="_blank"
136 onClick={() => { 132 onClick={() => {
137 gaEvent('Share Franz', 'share', 'Share via email'); 133 gaEvent('Share Franz', 'share', 'Share via email');
138 }} 134 }}
139 /> 135 />
140 <Button 136 <Button
141 label={intl.formatMessage(messages.actions.facebook)} 137 label={intl.formatMessage(messages.actionsFacebook)}
142 className={classes.cta} 138 className={classes.cta}
143 icon="mdiFacebookBox" 139 icon="mdiFacebookBox"
144 href="https://www.facebook.com/sharer/sharer.php?u=https://www.meetfranz.com?utm_source=facebook&utm_medium=referral&utm_campaign=share-button" 140 href="https://www.facebook.com/sharer/sharer.php?u=https://www.meetfranz.com?utm_source=facebook&utm_medium=referral&utm_campaign=share-button"
@@ -148,10 +144,10 @@ export default @injectSheet(styles) @inject('stores') @observer class ShareFranz
148 }} 144 }}
149 /> 145 />
150 <Button 146 <Button
151 label={intl.formatMessage(messages.actions.twitter)} 147 label={intl.formatMessage(messages.actionsTwitter)}
152 className={classes.cta} 148 className={classes.cta}
153 icon="mdiTwitter" 149 icon="mdiTwitter"
154 href={`http://twitter.com/intent/tweet?status=${intl.formatMessage(messages.shareText.twitter, { count: serviceCount })}`} 150 href={`http://twitter.com/intent/tweet?status=${intl.formatMessage(messages.shareTextTwitter, { count: serviceCount })}`}
155 target="_blank" 151 target="_blank"
156 onClick={() => { 152 onClick={() => {
157 gaEvent('Share Franz', 'share', 'Share via Twitter'); 153 gaEvent('Share Franz', 'share', 'Share via Twitter');
diff --git a/src/helpers/url-helpers.js b/src/helpers/url-helpers.js
new file mode 100644
index 000000000..750d1f00c
--- /dev/null
+++ b/src/helpers/url-helpers.js
@@ -0,0 +1,15 @@
1import { URL } from 'url';
2
3import { ALLOWED_PROTOCOLS } from '../config';
4
5const debug = require('debug')('Franz:Helpers:url');
6
7export function isValidExternalURL(url) {
8 const parsedUrl = new URL(url);
9
10 const isAllowed = ALLOWED_PROTOCOLS.includes(parsedUrl.protocol);
11
12 debug('protocol check is', isAllowed, 'for:', url);
13
14 return isAllowed;
15}
diff --git a/src/i18n/globalMessages.js b/src/i18n/globalMessages.js
index 7b1618602..1b5ece223 100644
--- a/src/i18n/globalMessages.js
+++ b/src/i18n/globalMessages.js
@@ -1,10 +1,6 @@
1import { defineMessages } from 'react-intl'; 1import { defineMessages } from 'react-intl';
2 2
3export default defineMessages({ 3export default defineMessages({
4 upgradeAccount: {
5 id: 'global.premium.upgradeAccount',
6 defaultMessage: '!!!Please upgrade your account to add a new service.',
7 },
8 APIUnhealthy: { 4 APIUnhealthy: {
9 id: 'global.api.unhealthy', 5 id: 'global.api.unhealthy',
10 defaultMessage: '!!!Can\'t connect to Franz Online Services', 6 defaultMessage: '!!!Can\'t connect to Franz Online Services',
diff --git a/src/i18n/languages.js b/src/i18n/languages.js
index aa3f2316a..9ddcc3519 100644
--- a/src/i18n/languages.js
+++ b/src/i18n/languages.js
@@ -35,7 +35,8 @@ export const SPELLCHECKER_LOCALES = {
35 'da-dk': 'Dansk', 35 'da-dk': 'Dansk',
36 'de-de': 'Deutsch', 36 'de-de': 'Deutsch',
37 'el-gr': 'ελληνικά (Greek)', 37 'el-gr': 'ελληνικά (Greek)',
38 'en-us': 'English', 38 'en-gb': 'English (GB)',
39 'en-us': 'English (US)',
39 'es-es': 'Español', 40 'es-es': 'Español',
40 'et-ee': 'Estonian', 41 'et-ee': 'Estonian',
41 'fa-ir': 'فارسی (Persian)', 42 'fa-ir': 'فارسی (Persian)',
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json
index ed6f7bacd..f374fddd9 100644
--- a/src/i18n/locales/ca.json
+++ b/src/i18n/locales/ca.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Recarrega", 2 "app.errorHandler.action" : "Recarrega",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Quelcom ha anat malament",
4 "feature.delayApp.action" : "Aconsegueix una llicència de suport per a Franz", 4 "feature.delayApp.action" : "Aconsegueix una llicència de suport per a Franz",
5 "feature.delayApp.headline" : "Si us plau, compra una llicència de suport per a Franz per saltar l'espera", 5 "feature.delayApp.headline" : "Si us plau, compra una llicència de suport per a Franz per saltar l'espera",
6 "feature.delayApp.text" : "Franz continuarà en {seconds} segons", 6 "feature.delayApp.text" : "Franz continuarà en {seconds} segons",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz", 14 "global.api.unhealthy" : "No es pot connectar amb els serveis en línia de Franz",
8 "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", 15 "global.notConnectedToTheInternet" : "No esteu connectat a Internet.",
16 "global.spellchecker.useDefault" : "Utilitzar el predeterminat del sistema ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Corrector ortogràfic",
9 "import.headline" : "Importa els teus serveis Franz 4", 20 "import.headline" : "Importa els teus serveis Franz 4",
10 "import.notSupportedHeadline" : "Serveis que encara no s'admeten a Franz 5", 21 "import.notSupportedHeadline" : "Serveis que encara no s'admeten a Franz 5",
11 "import.skip.label" : "Vull afegir serveis manualment", 22 "import.skip.label" : "Vull afegir serveis manualment",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Edita {name}", 107 "service.errorHandler.editAction" : "Edita {name}",
97 "service.errorHandler.headline" : "Oh no!", 108 "service.errorHandler.headline" : "Oh no!",
98 "service.errorHandler.message" : "Error", 109 "service.errorHandler.message" : "Error",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} ha fallat al carregar",
100 "services.getStarted" : "Introducció", 111 "services.getStarted" : "Introducció",
101 "services.welcome" : "Benvingut a Franz", 112 "services.welcome" : "Benvingut a Franz",
102 "settings.account.account.editButton" : "Editar Compte", 113 "settings.account.account.editButton" : "Editar Compte",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous", 203 "settings.service.form.indirectMessages" : "Mostra la insígnia de missatge per a tots els missatges nous",
193 "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran", 204 "settings.service.form.isMutedInfo" : "Quan es desactiva, tots els sons de notificació i reproducció d'àudio es silenciaran",
194 "settings.service.form.name" : "Nom", 205 "settings.service.form.name" : "Nom",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Ajustaments Proxy HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Host Proxy \/ IP", 207 "settings.service.form.proxy.host" : "Host Proxy \/ IP",
197 "settings.service.form.proxy.info" : "Els ajustaments del Proxy no es sincronitzaran amb els servidors de Franz", 208 "settings.service.form.proxy.info" : "Els ajustaments del Proxy no es sincronitzaran amb els servidors de Franz",
198 "settings.service.form.proxy.isEnabled" : "Utilitzar Proxy", 209 "settings.service.form.proxy.isEnabled" : "Utilitzar Proxy",
199 "settings.service.form.proxy.password" : "Contrasenya (opcional)", 210 "settings.service.form.proxy.password" : "Contrasenya (opcional)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Siusplau, reinicieu el Franz després de canviar els ajustaments de proxy",
202 "settings.service.form.proxy.user" : "Usuari (opcional)", 213 "settings.service.form.proxy.user" : "Usuari (opcional)",
203 "settings.service.form.saveButton" : "Desa el servei", 214 "settings.service.form.saveButton" : "Desa el servei",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Idioma del corrector",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Utilitzar el predeterminat del sistema ({default})",
206 "settings.service.form.tabHosted" : "Allotjat", 217 "settings.service.form.tabHosted" : "Allotjat",
207 "settings.service.form.tabOnPremise" : "Allotjat per si mateix ⭐️", 218 "settings.service.form.tabOnPremise" : "Allotjat per si mateix ⭐️",
208 "settings.service.form.team" : "Equip", 219 "settings.service.form.team" : "Equip",
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json
index b8bfd2526..3fc6318a2 100644
--- a/src/i18n/locales/cs.json
+++ b/src/i18n/locales/cs.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Obnovit", 2 "app.errorHandler.action" : "Obnovit",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Něco se pokazilo",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Podpoř Franz a získej Supporter licenci",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Kup si Franz Supporter licenci a nebudeš už muset čekat",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz bude pokračovat v {seconds} sekundách.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám", 14 "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám",
8 "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.", 15 "global.notConnectedToTheInternet" : "Připojení k internetu není k dispozici.",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Oprava překlepů jazyka",
9 "import.headline" : "Importovat služby z Franz 4", 20 "import.headline" : "Importovat služby z Franz 4",
10 "import.notSupportedHeadline" : "Služby nejsou podporovány ve verzi Franz 5", 21 "import.notSupportedHeadline" : "Služby nejsou podporovány ve verzi Franz 5",
11 "import.skip.label" : "Chci přidat službu ručně", 22 "import.skip.label" : "Chci přidat službu ručně",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Pro emailovou adresu nebyl nalezený žádný uživatel", 92 "password.noUser" : "Pro emailovou adresu nebyl nalezený žádný uživatel",
82 "password.submit.label" : "Odeslat", 93 "password.submit.label" : "Odeslat",
83 "password.successInfo" : "Prosím, zkontrolujte svůj e-mail", 94 "password.successInfo" : "Prosím, zkontrolujte svůj e-mail",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Vylepši si svůj účet",
85 "pricing.headline" : "Podpořit Franz", 96 "pricing.headline" : "Podpořit Franz",
86 "pricing.link.skipPayment" : "Nechci podporovat vývoj aplikace Franz.", 97 "pricing.link.skipPayment" : "Nechci podporovat vývoj aplikace Franz.",
87 "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz", 98 "pricing.submit.label" : "Chci podpořit vývoj aplikace Franz",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Upravit {name}", 107 "service.errorHandler.editAction" : "Upravit {name}",
97 "service.errorHandler.headline" : "Ale ne!", 108 "service.errorHandler.headline" : "Ale ne!",
98 "service.errorHandler.message" : "Chyba", 109 "service.errorHandler.message" : "Chyba",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} se nepodařilo načíst.",
100 "services.getStarted" : "Začněme", 111 "services.getStarted" : "Začněme",
101 "services.welcome" : "Vítejte v programu Franz", 112 "services.welcome" : "Vítejte v programu Franz",
102 "settings.account.account.editButton" : "Upravit účet", 113 "settings.account.account.editButton" : "Upravit účet",
@@ -127,7 +138,7 @@
127 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí", 138 "settings.app.form.autoLaunchInBackground" : "Spustit na pozadí",
128 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu", 139 "settings.app.form.autoLaunchOnStart" : "Spustit Franz při startu",
129 "settings.app.form.beta" : "Zahrnout beta verze", 140 "settings.app.form.beta" : "Zahrnout beta verze",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "ipoj se k Temné straně",
131 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení", 142 "settings.app.form.enableGPUAcceleration" : "Aktivovat GPU zrychlení",
132 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce", 143 "settings.app.form.enableMenuBar" : "Zobraz Franz v Menu nabídce",
133 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu", 144 "settings.app.form.enableSpellchecking" : "Zapnout kontrolu pravopisu",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna", 149 "settings.app.form.runInBackground" : "Ponechat Franze v pozadí při zavírání okna",
139 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb", 150 "settings.app.form.showDisabledServices" : "Zobrazit záložky vypnutých služeb",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Zobrazit odznak pro nepřečtené zprávy když jsou upozornění vypnutá",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Oprava eklepů jazyka",
142 "settings.app.headline" : "Nastavení", 153 "settings.app.headline" : "Nastavení",
143 "settings.app.headlineAdvanced" : "Pokročilé", 154 "settings.app.headlineAdvanced" : "Pokročilé",
144 "settings.app.headlineAppearance" : "Vzhled", 155 "settings.app.headlineAppearance" : "Vzhled",
@@ -179,7 +190,7 @@
179 "settings.service.form.editServiceHeadline" : "Upravit {name}", 190 "settings.service.form.editServiceHeadline" : "Upravit {name}",
180 "settings.service.form.enableAudio" : "Zapnout zvuk", 191 "settings.service.form.enableAudio" : "Zapnout zvuk",
181 "settings.service.form.enableBadge" : "Ukázat odznaky nepřečtených zpráv", 192 "settings.service.form.enableBadge" : "Ukázat odznaky nepřečtených zpráv",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Povolit Tma vzhled",
183 "settings.service.form.enableNotification" : "Povolit upozornění", 194 "settings.service.form.enableNotification" : "Povolit upozornění",
184 "settings.service.form.enableService" : "Povolit službu", 195 "settings.service.form.enableService" : "Povolit službu",
185 "settings.service.form.headlineBadges" : "Odznaky nepřečtených zpráv", 196 "settings.service.form.headlineBadges" : "Odznaky nepřečtených zpráv",
@@ -192,7 +203,7 @@
192 "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy", 203 "settings.service.form.indirectMessages" : "Zobrazovat znak zprávy pro všechny nové zprávy",
193 "settings.service.form.isMutedInfo" : "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny", 204 "settings.service.form.isMutedInfo" : "Pokud je vypnuto, všechny zvuky notifikací a jiného audia budou ztišeny",
194 "settings.service.form.name" : "Jméno", 205 "settings.service.form.name" : "Jméno",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Nastavení HTTP\/HTTPS Proxy",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Use Proxy",
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json
index 0c1fb8aa6..3ca62ca56 100644
--- a/src/i18n/locales/de.json
+++ b/src/i18n/locales/de.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Neuladen", 2 "app.errorHandler.action" : "Neu laden",
3 "app.errorHandler.headline" : "Es trat ein Fehler auf", 3 "app.errorHandler.headline" : "Es trat ein Fehler auf",
4 "feature.delayApp.action" : "Upgrade deinen Account", 4 "feature.delayApp.action" : "Upgrade deinen Account",
5 "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz", 5 "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz",
6 "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.", 6 "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen", 14 "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen",
8 "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", 15 "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.",
16 "global.spellchecker.useDefault" : "Standard benutzen ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Sprache für Rechtschreibprüfung",
9 "import.headline" : "Deine Franz 4 Dienste importieren", 20 "import.headline" : "Deine Franz 4 Dienste importieren",
10 "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", 21 "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden",
11 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", 22 "import.skip.label" : "Ich möchte Dienste selbst hinzufügen",
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json
new file mode 100644
index 000000000..c8bb03ded
--- /dev/null
+++ b/src/i18n/locales/defaultMessages.json
@@ -0,0 +1,4118 @@
1[
2 {
3 "descriptors": [
4 {
5 "defaultMessage": "!!!Import your Franz 4 services",
6 "end": {
7 "column": 3,
8 "line": 16
9 },
10 "file": "src/components/auth/Import.js",
11 "id": "import.headline",
12 "start": {
13 "column": 12,
14 "line": 13
15 }
16 },
17 {
18 "defaultMessage": "!!!Services not yet supported in Franz 5",
19 "end": {
20 "column": 3,
21 "line": 20
22 },
23 "file": "src/components/auth/Import.js",
24 "id": "import.notSupportedHeadline",
25 "start": {
26 "column": 24,
27 "line": 17
28 }
29 },
30 {
31 "defaultMessage": "!!!Import {count} services",
32 "end": {
33 "column": 3,
34 "line": 24
35 },
36 "file": "src/components/auth/Import.js",
37 "id": "import.submit.label",
38 "start": {
39 "column": 21,
40 "line": 21
41 }
42 },
43 {
44 "defaultMessage": "!!!I want to add services manually",
45 "end": {
46 "column": 3,
47 "line": 28
48 },
49 "file": "src/components/auth/Import.js",
50 "id": "import.skip.label",
51 "start": {
52 "column": 19,
53 "line": 25
54 }
55 }
56 ],
57 "path": "src/components/auth/Import.json"
58 },
59 {
60 "descriptors": [
61 {
62 "defaultMessage": "!!!Invite Friends",
63 "end": {
64 "column": 3,
65 "line": 19
66 },
67 "file": "src/components/auth/Invite.js",
68 "id": "settings.invite.headline",
69 "start": {
70 "column": 20,
71 "line": 16
72 }
73 },
74 {
75 "defaultMessage": "!!!Invite 3 of your friends or colleagues",
76 "end": {
77 "column": 3,
78 "line": 23
79 },
80 "file": "src/components/auth/Invite.js",
81 "id": "invite.headline.friends",
82 "start": {
83 "column": 12,
84 "line": 20
85 }
86 },
87 {
88 "defaultMessage": "!!!Name",
89 "end": {
90 "column": 3,
91 "line": 27
92 },
93 "file": "src/components/auth/Invite.js",
94 "id": "invite.name.label",
95 "start": {
96 "column": 13,
97 "line": 24
98 }
99 },
100 {
101 "defaultMessage": "!!!Email address",
102 "end": {
103 "column": 3,
104 "line": 31
105 },
106 "file": "src/components/auth/Invite.js",
107 "id": "invite.email.label",
108 "start": {
109 "column": 14,
110 "line": 28
111 }
112 },
113 {
114 "defaultMessage": "!!!Send invites",
115 "end": {
116 "column": 3,
117 "line": 35
118 },
119 "file": "src/components/auth/Invite.js",
120 "id": "invite.submit.label",
121 "start": {
122 "column": 21,
123 "line": 32
124 }
125 },
126 {
127 "defaultMessage": "!!!I want to do this later",
128 "end": {
129 "column": 3,
130 "line": 39
131 },
132 "file": "src/components/auth/Invite.js",
133 "id": "invite.skip.label",
134 "start": {
135 "column": 19,
136 "line": 36
137 }
138 },
139 {
140 "defaultMessage": "!!!Invitations sent successfully",
141 "end": {
142 "column": 3,
143 "line": 43
144 },
145 "file": "src/components/auth/Invite.js",
146 "id": "invite.successInfo",
147 "start": {
148 "column": 21,
149 "line": 40
150 }
151 }
152 ],
153 "path": "src/components/auth/Invite.json"
154 },
155 {
156 "descriptors": [
157 {
158 "defaultMessage": "!!!Sign in",
159 "end": {
160 "column": 3,
161 "line": 20
162 },
163 "file": "src/components/auth/Login.js",
164 "id": "login.headline",
165 "start": {
166 "column": 12,
167 "line": 17
168 }
169 },
170 {
171 "defaultMessage": "!!!Email address",
172 "end": {
173 "column": 3,
174 "line": 24
175 },
176 "file": "src/components/auth/Login.js",
177 "id": "login.email.label",
178 "start": {
179 "column": 14,
180 "line": 21
181 }
182 },
183 {
184 "defaultMessage": "!!!Password",
185 "end": {
186 "column": 3,
187 "line": 28
188 },
189 "file": "src/components/auth/Login.js",
190 "id": "login.password.label",
191 "start": {
192 "column": 17,
193 "line": 25
194 }
195 },
196 {
197 "defaultMessage": "!!!Sign in",
198 "end": {
199 "column": 3,
200 "line": 32
201 },
202 "file": "src/components/auth/Login.js",
203 "id": "login.submit.label",
204 "start": {
205 "column": 21,
206 "line": 29
207 }
208 },
209 {
210 "defaultMessage": "!!!Email or password not valid",
211 "end": {
212 "column": 3,
213 "line": 36
214 },
215 "file": "src/components/auth/Login.js",
216 "id": "login.invalidCredentials",
217 "start": {
218 "column": 22,
219 "line": 33
220 }
221 },
222 {
223 "defaultMessage": "!!!Your session expired, please login again.",
224 "end": {
225 "column": 3,
226 "line": 40
227 },
228 "file": "src/components/auth/Login.js",
229 "id": "login.tokenExpired",
230 "start": {
231 "column": 16,
232 "line": 37
233 }
234 },
235 {
236 "defaultMessage": "!!!Your session expired, please login again.",
237 "end": {
238 "column": 3,
239 "line": 44
240 },
241 "file": "src/components/auth/Login.js",
242 "id": "login.serverLogout",
243 "start": {
244 "column": 16,
245 "line": 41
246 }
247 },
248 {
249 "defaultMessage": "!!!Create a free account",
250 "end": {
251 "column": 3,
252 "line": 48
253 },
254 "file": "src/components/auth/Login.js",
255 "id": "login.link.signup",
256 "start": {
257 "column": 14,
258 "line": 45
259 }
260 },
261 {
262 "defaultMessage": "!!!Forgot password",
263 "end": {
264 "column": 3,
265 "line": 52
266 },
267 "file": "src/components/auth/Login.js",
268 "id": "login.link.password",
269 "start": {
270 "column": 16,
271 "line": 49
272 }
273 }
274 ],
275 "path": "src/components/auth/Login.json"
276 },
277 {
278 "descriptors": [
279 {
280 "defaultMessage": "!!!Forgot password",
281 "end": {
282 "column": 3,
283 "line": 17
284 },
285 "file": "src/components/auth/Password.js",
286 "id": "password.headline",
287 "start": {
288 "column": 12,
289 "line": 14
290 }
291 },
292 {
293 "defaultMessage": "!!!Email address",
294 "end": {
295 "column": 3,
296 "line": 21
297 },
298 "file": "src/components/auth/Password.js",
299 "id": "password.email.label",
300 "start": {
301 "column": 14,
302 "line": 18
303 }
304 },
305 {
306 "defaultMessage": "!!!Submit",
307 "end": {
308 "column": 3,
309 "line": 25
310 },
311 "file": "src/components/auth/Password.js",
312 "id": "password.submit.label",
313 "start": {
314 "column": 21,
315 "line": 22
316 }
317 },
318 {
319 "defaultMessage": "!!!Your new password was sent to your email address",
320 "end": {
321 "column": 3,
322 "line": 29
323 },
324 "file": "src/components/auth/Password.js",
325 "id": "password.successInfo",
326 "start": {
327 "column": 15,
328 "line": 26
329 }
330 },
331 {
332 "defaultMessage": "!!!No user affiliated with that email address",
333 "end": {
334 "column": 3,
335 "line": 33
336 },
337 "file": "src/components/auth/Password.js",
338 "id": "password.noUser",
339 "start": {
340 "column": 10,
341 "line": 30
342 }
343 },
344 {
345 "defaultMessage": "!!!Create a free account",
346 "end": {
347 "column": 3,
348 "line": 37
349 },
350 "file": "src/components/auth/Password.js",
351 "id": "password.link.signup",
352 "start": {
353 "column": 14,
354 "line": 34
355 }
356 },
357 {
358 "defaultMessage": "!!!Sign in to your account",
359 "end": {
360 "column": 3,
361 "line": 41
362 },
363 "file": "src/components/auth/Password.js",
364 "id": "password.link.login",
365 "start": {
366 "column": 13,
367 "line": 38
368 }
369 }
370 ],
371 "path": "src/components/auth/Password.json"
372 },
373 {
374 "descriptors": [
375 {
376 "defaultMessage": "!!!Support Franz",
377 "end": {
378 "column": 3,
379 "line": 16
380 },
381 "file": "src/components/auth/Pricing.js",
382 "id": "pricing.headline",
383 "start": {
384 "column": 12,
385 "line": 13
386 }
387 },
388 {
389 "defaultMessage": "!!!Select your support plan",
390 "end": {
391 "column": 3,
392 "line": 20
393 },
394 "file": "src/components/auth/Pricing.js",
395 "id": "pricing.support.label",
396 "start": {
397 "column": 23,
398 "line": 17
399 }
400 },
401 {
402 "defaultMessage": "!!!Support the development of Franz",
403 "end": {
404 "column": 3,
405 "line": 24
406 },
407 "file": "src/components/auth/Pricing.js",
408 "id": "pricing.submit.label",
409 "start": {
410 "column": 21,
411 "line": 21
412 }
413 },
414 {
415 "defaultMessage": "!!!I don't want to support the development of Franz.",
416 "end": {
417 "column": 3,
418 "line": 28
419 },
420 "file": "src/components/auth/Pricing.js",
421 "id": "pricing.link.skipPayment",
422 "start": {
423 "column": 15,
424 "line": 25
425 }
426 }
427 ],
428 "path": "src/components/auth/Pricing.json"
429 },
430 {
431 "descriptors": [
432 {
433 "defaultMessage": "!!!Sign up",
434 "end": {
435 "column": 3,
436 "line": 21
437 },
438 "file": "src/components/auth/Signup.js",
439 "id": "signup.headline",
440 "start": {
441 "column": 12,
442 "line": 18
443 }
444 },
445 {
446 "defaultMessage": "!!!Firstname",
447 "end": {
448 "column": 3,
449 "line": 25
450 },
451 "file": "src/components/auth/Signup.js",
452 "id": "signup.firstname.label",
453 "start": {
454 "column": 18,
455 "line": 22
456 }
457 },
458 {
459 "defaultMessage": "!!!Lastname",
460 "end": {
461 "column": 3,
462 "line": 29
463 },
464 "file": "src/components/auth/Signup.js",
465 "id": "signup.lastname.label",
466 "start": {
467 "column": 17,
468 "line": 26
469 }
470 },
471 {
472 "defaultMessage": "!!!Email address",
473 "end": {
474 "column": 3,
475 "line": 33
476 },
477 "file": "src/components/auth/Signup.js",
478 "id": "signup.email.label",
479 "start": {
480 "column": 14,
481 "line": 30
482 }
483 },
484 {
485 "defaultMessage": "!!!Company",
486 "end": {
487 "column": 3,
488 "line": 37
489 },
490 "file": "src/components/auth/Signup.js",
491 "id": "signup.company.label",
492 "start": {
493 "column": 16,
494 "line": 34
495 }
496 },
497 {
498 "defaultMessage": "!!!Password",
499 "end": {
500 "column": 3,
501 "line": 41
502 },
503 "file": "src/components/auth/Signup.js",
504 "id": "signup.password.label",
505 "start": {
506 "column": 17,
507 "line": 38
508 }
509 },
510 {
511 "defaultMessage": "!!!By creating a Franz account you accept the",
512 "end": {
513 "column": 3,
514 "line": 45
515 },
516 "file": "src/components/auth/Signup.js",
517 "id": "signup.legal.info",
518 "start": {
519 "column": 13,
520 "line": 42
521 }
522 },
523 {
524 "defaultMessage": "!!!Terms of service",
525 "end": {
526 "column": 3,
527 "line": 49
528 },
529 "file": "src/components/auth/Signup.js",
530 "id": "signup.legal.terms",
531 "start": {
532 "column": 9,
533 "line": 46
534 }
535 },
536 {
537 "defaultMessage": "!!!Privacy Statement",
538 "end": {
539 "column": 3,
540 "line": 53
541 },
542 "file": "src/components/auth/Signup.js",
543 "id": "signup.legal.privacy",
544 "start": {
545 "column": 11,
546 "line": 50
547 }
548 },
549 {
550 "defaultMessage": "!!!Create account",
551 "end": {
552 "column": 3,
553 "line": 57
554 },
555 "file": "src/components/auth/Signup.js",
556 "id": "signup.submit.label",
557 "start": {
558 "column": 21,
559 "line": 54
560 }
561 },
562 {
563 "defaultMessage": "!!!Already have an account, sign in?",
564 "end": {
565 "column": 3,
566 "line": 61
567 },
568 "file": "src/components/auth/Signup.js",
569 "id": "signup.link.login",
570 "start": {
571 "column": 13,
572 "line": 58
573 }
574 },
575 {
576 "defaultMessage": "!!!A user with that email address already exists",
577 "end": {
578 "column": 3,
579 "line": 65
580 },
581 "file": "src/components/auth/Signup.js",
582 "id": "signup.emailDuplicate",
583 "start": {
584 "column": 18,
585 "line": 62
586 }
587 }
588 ],
589 "path": "src/components/auth/Signup.json"
590 },
591 {
592 "descriptors": [
593 {
594 "defaultMessage": "!!!Create a free account",
595 "end": {
596 "column": 3,
597 "line": 12
598 },
599 "file": "src/components/auth/Welcome.js",
600 "id": "welcome.signupButton",
601 "start": {
602 "column": 16,
603 "line": 9
604 }
605 },
606 {
607 "defaultMessage": "!!!Login to your account",
608 "end": {
609 "column": 3,
610 "line": 16
611 },
612 "file": "src/components/auth/Welcome.js",
613 "id": "welcome.loginButton",
614 "start": {
615 "column": 15,
616 "line": 13
617 }
618 }
619 ],
620 "path": "src/components/auth/Welcome.json"
621 },
622 {
623 "descriptors": [
624 {
625 "defaultMessage": "!!!Your services have been updated.",
626 "end": {
627 "column": 3,
628 "line": 25
629 },
630 "file": "src/components/layout/AppLayout.js",
631 "id": "infobar.servicesUpdated",
632 "start": {
633 "column": 19,
634 "line": 22
635 }
636 },
637 {
638 "defaultMessage": "!!!A new update for Franz is available.",
639 "end": {
640 "column": 3,
641 "line": 29
642 },
643 "file": "src/components/layout/AppLayout.js",
644 "id": "infobar.updateAvailable",
645 "start": {
646 "column": 19,
647 "line": 26
648 }
649 },
650 {
651 "defaultMessage": "!!!Reload services",
652 "end": {
653 "column": 3,
654 "line": 33
655 },
656 "file": "src/components/layout/AppLayout.js",
657 "id": "infobar.buttonReloadServices",
658 "start": {
659 "column": 24,
660 "line": 30
661 }
662 },
663 {
664 "defaultMessage": "!!!Changelog",
665 "end": {
666 "column": 3,
667 "line": 37
668 },
669 "file": "src/components/layout/AppLayout.js",
670 "id": "infobar.buttonChangelog",
671 "start": {
672 "column": 13,
673 "line": 34
674 }
675 },
676 {
677 "defaultMessage": "!!!Restart & install update",
678 "end": {
679 "column": 3,
680 "line": 41
681 },
682 "file": "src/components/layout/AppLayout.js",
683 "id": "infobar.buttonInstallUpdate",
684 "start": {
685 "column": 23,
686 "line": 38
687 }
688 },
689 {
690 "defaultMessage": "!!!Could not load services and user information",
691 "end": {
692 "column": 3,
693 "line": 45
694 },
695 "file": "src/components/layout/AppLayout.js",
696 "id": "infobar.requiredRequestsFailed",
697 "start": {
698 "column": 26,
699 "line": 42
700 }
701 }
702 ],
703 "path": "src/components/layout/AppLayout.json"
704 },
705 {
706 "descriptors": [
707 {
708 "defaultMessage": "!!!Settings",
709 "end": {
710 "column": 3,
711 "line": 14
712 },
713 "file": "src/components/layout/Sidebar.js",
714 "id": "sidebar.settings",
715 "start": {
716 "column": 12,
717 "line": 11
718 }
719 },
720 {
721 "defaultMessage": "!!!Add new service",
722 "end": {
723 "column": 3,
724 "line": 18
725 },
726 "file": "src/components/layout/Sidebar.js",
727 "id": "sidebar.addNewService",
728 "start": {
729 "column": 17,
730 "line": 15
731 }
732 },
733 {
734 "defaultMessage": "!!!Disable notifications & audio",
735 "end": {
736 "column": 3,
737 "line": 22
738 },
739 "file": "src/components/layout/Sidebar.js",
740 "id": "sidebar.muteApp",
741 "start": {
742 "column": 8,
743 "line": 19
744 }
745 },
746 {
747 "defaultMessage": "!!!Enable notifications & audio",
748 "end": {
749 "column": 3,
750 "line": 26
751 },
752 "file": "src/components/layout/Sidebar.js",
753 "id": "sidebar.unmuteApp",
754 "start": {
755 "column": 10,
756 "line": 23
757 }
758 }
759 ],
760 "path": "src/components/layout/Sidebar.json"
761 },
762 {
763 "descriptors": [
764 {
765 "defaultMessage": "!!!Oh no!",
766 "end": {
767 "column": 3,
768 "line": 15
769 },
770 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
771 "id": "service.errorHandler.headline",
772 "start": {
773 "column": 12,
774 "line": 12
775 }
776 },
777 {
778 "defaultMessage": "!!!{name} has failed to load.",
779 "end": {
780 "column": 3,
781 "line": 19
782 },
783 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
784 "id": "service.errorHandler.text",
785 "start": {
786 "column": 8,
787 "line": 16
788 }
789 },
790 {
791 "defaultMessage": "!!!Reload {name}",
792 "end": {
793 "column": 3,
794 "line": 23
795 },
796 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
797 "id": "service.errorHandler.action",
798 "start": {
799 "column": 10,
800 "line": 20
801 }
802 },
803 {
804 "defaultMessage": "!!!Edit {name}",
805 "end": {
806 "column": 3,
807 "line": 27
808 },
809 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
810 "id": "service.errorHandler.editAction",
811 "start": {
812 "column": 14,
813 "line": 24
814 }
815 },
816 {
817 "defaultMessage": "!!!Error:",
818 "end": {
819 "column": 3,
820 "line": 31
821 },
822 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
823 "id": "service.errorHandler.message",
824 "start": {
825 "column": 16,
826 "line": 28
827 }
828 }
829 ],
830 "path": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.json"
831 },
832 {
833 "descriptors": [
834 {
835 "defaultMessage": "!!!{name} is disabled",
836 "end": {
837 "column": 3,
838 "line": 12
839 },
840 "file": "src/components/services/content/ServiceDisabled.js",
841 "id": "service.disabledHandler.headline",
842 "start": {
843 "column": 12,
844 "line": 9
845 }
846 },
847 {
848 "defaultMessage": "!!!Enable {name}",
849 "end": {
850 "column": 3,
851 "line": 16
852 },
853 "file": "src/components/services/content/ServiceDisabled.js",
854 "id": "service.disabledHandler.action",
855 "start": {
856 "column": 10,
857 "line": 13
858 }
859 }
860 ],
861 "path": "src/components/services/content/ServiceDisabled.json"
862 },
863 {
864 "descriptors": [
865 {
866 "defaultMessage": "!!!Welcome to Franz",
867 "end": {
868 "column": 3,
869 "line": 14
870 },
871 "file": "src/components/services/content/Services.js",
872 "id": "services.welcome",
873 "start": {
874 "column": 11,
875 "line": 11
876 }
877 },
878 {
879 "defaultMessage": "!!!Get started",
880 "end": {
881 "column": 3,
882 "line": 18
883 },
884 "file": "src/components/services/content/Services.js",
885 "id": "services.getStarted",
886 "start": {
887 "column": 14,
888 "line": 15
889 }
890 }
891 ],
892 "path": "src/components/services/content/Services.json"
893 },
894 {
895 "descriptors": [
896 {
897 "defaultMessage": "!!!Oh no!",
898 "end": {
899 "column": 3,
900 "line": 13
901 },
902 "file": "src/components/services/content/WebviewCrashHandler.js",
903 "id": "service.crashHandler.headline",
904 "start": {
905 "column": 12,
906 "line": 10
907 }
908 },
909 {
910 "defaultMessage": "!!!{name} has caused an error.",
911 "end": {
912 "column": 3,
913 "line": 17
914 },
915 "file": "src/components/services/content/WebviewCrashHandler.js",
916 "id": "service.crashHandler.text",
917 "start": {
918 "column": 8,
919 "line": 14
920 }
921 },
922 {
923 "defaultMessage": "!!!Reload {name}",
924 "end": {
925 "column": 3,
926 "line": 21
927 },
928 "file": "src/components/services/content/WebviewCrashHandler.js",
929 "id": "service.crashHandler.action",
930 "start": {
931 "column": 10,
932 "line": 18
933 }
934 },
935 {
936 "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds",
937 "end": {
938 "column": 3,
939 "line": 25
940 },
941 "file": "src/components/services/content/WebviewCrashHandler.js",
942 "id": "service.crashHandler.autoReload",
943 "start": {
944 "column": 14,
945 "line": 22
946 }
947 }
948 ],
949 "path": "src/components/services/content/WebviewCrashHandler.json"
950 },
951 {
952 "descriptors": [
953 {
954 "defaultMessage": "!!!Reload",
955 "end": {
956 "column": 3,
957 "line": 18
958 },
959 "file": "src/components/services/tabs/TabItem.js",
960 "id": "tabs.item.reload",
961 "start": {
962 "column": 10,
963 "line": 15
964 }
965 },
966 {
967 "defaultMessage": "!!!Edit",
968 "end": {
969 "column": 3,
970 "line": 22
971 },
972 "file": "src/components/services/tabs/TabItem.js",
973 "id": "tabs.item.edit",
974 "start": {
975 "column": 8,
976 "line": 19
977 }
978 },
979 {
980 "defaultMessage": "!!!Disable notifications",
981 "end": {
982 "column": 3,
983 "line": 26
984 },
985 "file": "src/components/services/tabs/TabItem.js",
986 "id": "tabs.item.disableNotifications",
987 "start": {
988 "column": 24,
989 "line": 23
990 }
991 },
992 {
993 "defaultMessage": "!!!Enable notifications",
994 "end": {
995 "column": 3,
996 "line": 30
997 },
998 "file": "src/components/services/tabs/TabItem.js",
999 "id": "tabs.item.enableNotification",
1000 "start": {
1001 "column": 23,
1002 "line": 27
1003 }
1004 },
1005 {
1006 "defaultMessage": "!!!Disable audio",
1007 "end": {
1008 "column": 3,
1009 "line": 34
1010 },
1011 "file": "src/components/services/tabs/TabItem.js",
1012 "id": "tabs.item.disableAudio",
1013 "start": {
1014 "column": 16,
1015 "line": 31
1016 }
1017 },
1018 {
1019 "defaultMessage": "!!!Enable audio",
1020 "end": {
1021 "column": 3,
1022 "line": 38
1023 },
1024 "file": "src/components/services/tabs/TabItem.js",
1025 "id": "tabs.item.enableAudio",
1026 "start": {
1027 "column": 15,
1028 "line": 35
1029 }
1030 },
1031 {
1032 "defaultMessage": "!!!Disable Service",
1033 "end": {
1034 "column": 3,
1035 "line": 42
1036 },
1037 "file": "src/components/services/tabs/TabItem.js",
1038 "id": "tabs.item.disableService",
1039 "start": {
1040 "column": 18,
1041 "line": 39
1042 }
1043 },
1044 {
1045 "defaultMessage": "!!!Enable Service",
1046 "end": {
1047 "column": 3,
1048 "line": 46
1049 },
1050 "file": "src/components/services/tabs/TabItem.js",
1051 "id": "tabs.item.enableService",
1052 "start": {
1053 "column": 17,
1054 "line": 43
1055 }
1056 },
1057 {
1058 "defaultMessage": "!!!Delete Service",
1059 "end": {
1060 "column": 3,
1061 "line": 50
1062 },
1063 "file": "src/components/services/tabs/TabItem.js",
1064 "id": "tabs.item.deleteService",
1065 "start": {
1066 "column": 17,
1067 "line": 47
1068 }
1069 }
1070 ],
1071 "path": "src/components/services/tabs/TabItem.json"
1072 },
1073 {
1074 "descriptors": [
1075 {
1076 "defaultMessage": "!!!Account",
1077 "end": {
1078 "column": 3,
1079 "line": 18
1080 },
1081 "file": "src/components/settings/account/AccountDashboard.js",
1082 "id": "settings.account.headline",
1083 "start": {
1084 "column": 12,
1085 "line": 15
1086 }
1087 },
1088 {
1089 "defaultMessage": "!!!Your Subscription",
1090 "end": {
1091 "column": 3,
1092 "line": 22
1093 },
1094 "file": "src/components/settings/account/AccountDashboard.js",
1095 "id": "settings.account.headlineSubscription",
1096 "start": {
1097 "column": 24,
1098 "line": 19
1099 }
1100 },
1101 {
1102 "defaultMessage": "!!!Upgrade your Account",
1103 "end": {
1104 "column": 3,
1105 "line": 26
1106 },
1107 "file": "src/components/settings/account/AccountDashboard.js",
1108 "id": "settings.account.headlineUpgrade",
1109 "start": {
1110 "column": 19,
1111 "line": 23
1112 }
1113 },
1114 {
1115 "defaultMessage": "!!Invoices",
1116 "end": {
1117 "column": 3,
1118 "line": 30
1119 },
1120 "file": "src/components/settings/account/AccountDashboard.js",
1121 "id": "settings.account.headlineInvoices",
1122 "start": {
1123 "column": 20,
1124 "line": 27
1125 }
1126 },
1127 {
1128 "defaultMessage": "!!Danger Zone",
1129 "end": {
1130 "column": 3,
1131 "line": 34
1132 },
1133 "file": "src/components/settings/account/AccountDashboard.js",
1134 "id": "settings.account.headlineDangerZone",
1135 "start": {
1136 "column": 22,
1137 "line": 31
1138 }
1139 },
1140 {
1141 "defaultMessage": "!!!Manage your subscription",
1142 "end": {
1143 "column": 3,
1144 "line": 38
1145 },
1146 "file": "src/components/settings/account/AccountDashboard.js",
1147 "id": "settings.account.manageSubscription.label",
1148 "start": {
1149 "column": 33,
1150 "line": 35
1151 }
1152 },
1153 {
1154 "defaultMessage": "!!!Basic Account",
1155 "end": {
1156 "column": 3,
1157 "line": 42
1158 },
1159 "file": "src/components/settings/account/AccountDashboard.js",
1160 "id": "settings.account.accountType.basic",
1161 "start": {
1162 "column": 20,
1163 "line": 39
1164 }
1165 },
1166 {
1167 "defaultMessage": "!!!Premium Supporter Account",
1168 "end": {
1169 "column": 3,
1170 "line": 46
1171 },
1172 "file": "src/components/settings/account/AccountDashboard.js",
1173 "id": "settings.account.accountType.premium",
1174 "start": {
1175 "column": 22,
1176 "line": 43
1177 }
1178 },
1179 {
1180 "defaultMessage": "!!!Edit Account",
1181 "end": {
1182 "column": 3,
1183 "line": 50
1184 },
1185 "file": "src/components/settings/account/AccountDashboard.js",
1186 "id": "settings.account.account.editButton",
1187 "start": {
1188 "column": 21,
1189 "line": 47
1190 }
1191 },
1192 {
1193 "defaultMessage": "!!!Download",
1194 "end": {
1195 "column": 3,
1196 "line": 54
1197 },
1198 "file": "src/components/settings/account/AccountDashboard.js",
1199 "id": "settings.account.invoiceDownload",
1200 "start": {
1201 "column": 19,
1202 "line": 51
1203 }
1204 },
1205 {
1206 "defaultMessage": "!!!Could not load user information",
1207 "end": {
1208 "column": 3,
1209 "line": 58
1210 },
1211 "file": "src/components/settings/account/AccountDashboard.js",
1212 "id": "settings.account.userInfoRequestFailed",
1213 "start": {
1214 "column": 25,
1215 "line": 55
1216 }
1217 },
1218 {
1219 "defaultMessage": "!!!Try again",
1220 "end": {
1221 "column": 3,
1222 "line": 62
1223 },
1224 "file": "src/components/settings/account/AccountDashboard.js",
1225 "id": "settings.account.tryReloadUserInfoRequest",
1226 "start": {
1227 "column": 28,
1228 "line": 59
1229 }
1230 },
1231 {
1232 "defaultMessage": "!!!Delete account",
1233 "end": {
1234 "column": 3,
1235 "line": 66
1236 },
1237 "file": "src/components/settings/account/AccountDashboard.js",
1238 "id": "settings.account.deleteAccount",
1239 "start": {
1240 "column": 17,
1241 "line": 63
1242 }
1243 },
1244 {
1245 "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.",
1246 "end": {
1247 "column": 3,
1248 "line": 70
1249 },
1250 "file": "src/components/settings/account/AccountDashboard.js",
1251 "id": "settings.account.deleteInfo",
1252 "start": {
1253 "column": 14,
1254 "line": 67
1255 }
1256 },
1257 {
1258 "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
1259 "end": {
1260 "column": 3,
1261 "line": 74
1262 },
1263 "file": "src/components/settings/account/AccountDashboard.js",
1264 "id": "settings.account.deleteEmailSent",
1265 "start": {
1266 "column": 19,
1267 "line": 71
1268 }
1269 }
1270 ],
1271 "path": "src/components/settings/account/AccountDashboard.json"
1272 },
1273 {
1274 "descriptors": [
1275 {
1276 "defaultMessage": "!!!Available services",
1277 "end": {
1278 "column": 3,
1279 "line": 12
1280 },
1281 "file": "src/components/settings/navigation/SettingsNavigation.js",
1282 "id": "settings.navigation.availableServices",
1283 "start": {
1284 "column": 21,
1285 "line": 9
1286 }
1287 },
1288 {
1289 "defaultMessage": "!!!Your services",
1290 "end": {
1291 "column": 3,
1292 "line": 16
1293 },
1294 "file": "src/components/settings/navigation/SettingsNavigation.js",
1295 "id": "settings.navigation.yourServices",
1296 "start": {
1297 "column": 16,
1298 "line": 13
1299 }
1300 },
1301 {
1302 "defaultMessage": "!!!Your workspaces",
1303 "end": {
1304 "column": 3,
1305 "line": 20
1306 },
1307 "file": "src/components/settings/navigation/SettingsNavigation.js",
1308 "id": "settings.navigation.yourWorkspaces",
1309 "start": {
1310 "column": 18,
1311 "line": 17
1312 }
1313 },
1314 {
1315 "defaultMessage": "!!!Account",
1316 "end": {
1317 "column": 3,
1318 "line": 24
1319 },
1320 "file": "src/components/settings/navigation/SettingsNavigation.js",
1321 "id": "settings.navigation.account",
1322 "start": {
1323 "column": 11,
1324 "line": 21
1325 }
1326 },
1327 {
1328 "defaultMessage": "!!!Settings",
1329 "end": {
1330 "column": 3,
1331 "line": 28
1332 },
1333 "file": "src/components/settings/navigation/SettingsNavigation.js",
1334 "id": "settings.navigation.settings",
1335 "start": {
1336 "column": 12,
1337 "line": 25
1338 }
1339 },
1340 {
1341 "defaultMessage": "!!!Invite Friends",
1342 "end": {
1343 "column": 3,
1344 "line": 32
1345 },
1346 "file": "src/components/settings/navigation/SettingsNavigation.js",
1347 "id": "settings.navigation.inviteFriends",
1348 "start": {
1349 "column": 17,
1350 "line": 29
1351 }
1352 },
1353 {
1354 "defaultMessage": "!!!Logout",
1355 "end": {
1356 "column": 3,
1357 "line": 36
1358 },
1359 "file": "src/components/settings/navigation/SettingsNavigation.js",
1360 "id": "settings.navigation.logout",
1361 "start": {
1362 "column": 10,
1363 "line": 33
1364 }
1365 }
1366 ],
1367 "path": "src/components/settings/navigation/SettingsNavigation.json"
1368 },
1369 {
1370 "descriptors": [
1371 {
1372 "defaultMessage": "!!!Available Services",
1373 "end": {
1374 "column": 3,
1375 "line": 18
1376 },
1377 "file": "src/components/settings/recipes/RecipesDashboard.js",
1378 "id": "settings.recipes.headline",
1379 "start": {
1380 "column": 12,
1381 "line": 15
1382 }
1383 },
1384 {
1385 "defaultMessage": "!!!Search service",
1386 "end": {
1387 "column": 3,
1388 "line": 22
1389 },
1390 "file": "src/components/settings/recipes/RecipesDashboard.js",
1391 "id": "settings.searchService",
1392 "start": {
1393 "column": 17,
1394 "line": 19
1395 }
1396 },
1397 {
1398 "defaultMessage": "!!!Most popular",
1399 "end": {
1400 "column": 3,
1401 "line": 26
1402 },
1403 "file": "src/components/settings/recipes/RecipesDashboard.js",
1404 "id": "settings.recipes.mostPopular",
1405 "start": {
1406 "column": 22,
1407 "line": 23
1408 }
1409 },
1410 {
1411 "defaultMessage": "!!!All services",
1412 "end": {
1413 "column": 3,
1414 "line": 30
1415 },
1416 "file": "src/components/settings/recipes/RecipesDashboard.js",
1417 "id": "settings.recipes.all",
1418 "start": {
1419 "column": 14,
1420 "line": 27
1421 }
1422 },
1423 {
1424 "defaultMessage": "!!!Development",
1425 "end": {
1426 "column": 3,
1427 "line": 34
1428 },
1429 "file": "src/components/settings/recipes/RecipesDashboard.js",
1430 "id": "settings.recipes.dev",
1431 "start": {
1432 "column": 14,
1433 "line": 31
1434 }
1435 },
1436 {
1437 "defaultMessage": "!!!Sorry, but no service matched your search term.",
1438 "end": {
1439 "column": 3,
1440 "line": 38
1441 },
1442 "file": "src/components/settings/recipes/RecipesDashboard.js",
1443 "id": "settings.recipes.nothingFound",
1444 "start": {
1445 "column": 16,
1446 "line": 35
1447 }
1448 },
1449 {
1450 "defaultMessage": "!!!Service successfully added",
1451 "end": {
1452 "column": 3,
1453 "line": 42
1454 },
1455 "file": "src/components/settings/recipes/RecipesDashboard.js",
1456 "id": "settings.recipes.servicesSuccessfulAddedInfo",
1457 "start": {
1458 "column": 31,
1459 "line": 39
1460 }
1461 },
1462 {
1463 "defaultMessage": "!!!Missing a service?",
1464 "end": {
1465 "column": 3,
1466 "line": 46
1467 },
1468 "file": "src/components/settings/recipes/RecipesDashboard.js",
1469 "id": "settings.recipes.missingService",
1470 "start": {
1471 "column": 18,
1472 "line": 43
1473 }
1474 }
1475 ],
1476 "path": "src/components/settings/recipes/RecipesDashboard.json"
1477 },
1478 {
1479 "descriptors": [
1480 {
1481 "defaultMessage": "!!!Save service",
1482 "end": {
1483 "column": 3,
1484 "line": 25
1485 },
1486 "file": "src/components/settings/services/EditServiceForm.js",
1487 "id": "settings.service.form.saveButton",
1488 "start": {
1489 "column": 15,
1490 "line": 22
1491 }
1492 },
1493 {
1494 "defaultMessage": "!!!Delete Service",
1495 "end": {
1496 "column": 3,
1497 "line": 29
1498 },
1499 "file": "src/components/settings/services/EditServiceForm.js",
1500 "id": "settings.service.form.deleteButton",
1501 "start": {
1502 "column": 17,
1503 "line": 26
1504 }
1505 },
1506 {
1507 "defaultMessage": "!!!Available services",
1508 "end": {
1509 "column": 3,
1510 "line": 33
1511 },
1512 "file": "src/components/settings/services/EditServiceForm.js",
1513 "id": "settings.service.form.availableServices",
1514 "start": {
1515 "column": 21,
1516 "line": 30
1517 }
1518 },
1519 {
1520 "defaultMessage": "!!!Your services",
1521 "end": {
1522 "column": 3,
1523 "line": 37
1524 },
1525 "file": "src/components/settings/services/EditServiceForm.js",
1526 "id": "settings.service.form.yourServices",
1527 "start": {
1528 "column": 16,
1529 "line": 34
1530 }
1531 },
1532 {
1533 "defaultMessage": "!!!Add {name}",
1534 "end": {
1535 "column": 3,
1536 "line": 41
1537 },
1538 "file": "src/components/settings/services/EditServiceForm.js",
1539 "id": "settings.service.form.addServiceHeadline",
1540 "start": {
1541 "column": 22,
1542 "line": 38
1543 }
1544 },
1545 {
1546 "defaultMessage": "!!!Edit {name}",
1547 "end": {
1548 "column": 3,
1549 "line": 45
1550 },
1551 "file": "src/components/settings/services/EditServiceForm.js",
1552 "id": "settings.service.form.editServiceHeadline",
1553 "start": {
1554 "column": 23,
1555 "line": 42
1556 }
1557 },
1558 {
1559 "defaultMessage": "!!!Hosted",
1560 "end": {
1561 "column": 3,
1562 "line": 49
1563 },
1564 "file": "src/components/settings/services/EditServiceForm.js",
1565 "id": "settings.service.form.tabHosted",
1566 "start": {
1567 "column": 13,
1568 "line": 46
1569 }
1570 },
1571 {
1572 "defaultMessage": "!!!Self hosted ⭐️",
1573 "end": {
1574 "column": 3,
1575 "line": 53
1576 },
1577 "file": "src/components/settings/services/EditServiceForm.js",
1578 "id": "settings.service.form.tabOnPremise",
1579 "start": {
1580 "column": 16,
1581 "line": 50
1582 }
1583 },
1584 {
1585 "defaultMessage": "!!!Use the hosted {name} service.",
1586 "end": {
1587 "column": 3,
1588 "line": 57
1589 },
1590 "file": "src/components/settings/services/EditServiceForm.js",
1591 "id": "settings.service.form.useHostedService",
1592 "start": {
1593 "column": 20,
1594 "line": 54
1595 }
1596 },
1597 {
1598 "defaultMessage": "!!!Could not validate custom {name} server.",
1599 "end": {
1600 "column": 3,
1601 "line": 61
1602 },
1603 "file": "src/components/settings/services/EditServiceForm.js",
1604 "id": "settings.service.form.customUrlValidationError",
1605 "start": {
1606 "column": 28,
1607 "line": 58
1608 }
1609 },
1610 {
1611 "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.",
1612 "end": {
1613 "column": 3,
1614 "line": 65
1615 },
1616 "file": "src/components/settings/services/EditServiceForm.js",
1617 "id": "settings.service.form.customUrlPremiumInfo",
1618 "start": {
1619 "column": 24,
1620 "line": 62
1621 }
1622 },
1623 {
1624 "defaultMessage": "!!!Upgrade your account",
1625 "end": {
1626 "column": 3,
1627 "line": 69
1628 },
1629 "file": "src/components/settings/services/EditServiceForm.js",
1630 "id": "settings.service.form.customUrlUpgradeAccount",
1631 "start": {
1632 "column": 27,
1633 "line": 66
1634 }
1635 },
1636 {
1637 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
1638 "end": {
1639 "column": 3,
1640 "line": 73
1641 },
1642 "file": "src/components/settings/services/EditServiceForm.js",
1643 "id": "settings.service.form.indirectMessageInfo",
1644 "start": {
1645 "column": 23,
1646 "line": 70
1647 }
1648 },
1649 {
1650 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
1651 "end": {
1652 "column": 3,
1653 "line": 77
1654 },
1655 "file": "src/components/settings/services/EditServiceForm.js",
1656 "id": "settings.service.form.isMutedInfo",
1657 "start": {
1658 "column": 15,
1659 "line": 74
1660 }
1661 },
1662 {
1663 "defaultMessage": "!!!Notifications",
1664 "end": {
1665 "column": 3,
1666 "line": 81
1667 },
1668 "file": "src/components/settings/services/EditServiceForm.js",
1669 "id": "settings.service.form.headlineNotifications",
1670 "start": {
1671 "column": 25,
1672 "line": 78
1673 }
1674 },
1675 {
1676 "defaultMessage": "!!!Unread message badges",
1677 "end": {
1678 "column": 3,
1679 "line": 85
1680 },
1681 "file": "src/components/settings/services/EditServiceForm.js",
1682 "id": "settings.service.form.headlineBadges",
1683 "start": {
1684 "column": 18,
1685 "line": 82
1686 }
1687 },
1688 {
1689 "defaultMessage": "!!!General",
1690 "end": {
1691 "column": 3,
1692 "line": 89
1693 },
1694 "file": "src/components/settings/services/EditServiceForm.js",
1695 "id": "settings.service.form.headlineGeneral",
1696 "start": {
1697 "column": 19,
1698 "line": 86
1699 }
1700 },
1701 {
1702 "defaultMessage": "!!!Delete",
1703 "end": {
1704 "column": 3,
1705 "line": 93
1706 },
1707 "file": "src/components/settings/services/EditServiceForm.js",
1708 "id": "settings.service.form.iconDelete",
1709 "start": {
1710 "column": 14,
1711 "line": 90
1712 }
1713 },
1714 {
1715 "defaultMessage": "!!!Drop your image, or click here",
1716 "end": {
1717 "column": 3,
1718 "line": 97
1719 },
1720 "file": "src/components/settings/services/EditServiceForm.js",
1721 "id": "settings.service.form.iconUpload",
1722 "start": {
1723 "column": 14,
1724 "line": 94
1725 }
1726 },
1727 {
1728 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
1729 "end": {
1730 "column": 3,
1731 "line": 101
1732 },
1733 "file": "src/components/settings/services/EditServiceForm.js",
1734 "id": "settings.service.form.proxy.headline",
1735 "start": {
1736 "column": 17,
1737 "line": 98
1738 }
1739 },
1740 {
1741 "defaultMessage": "!!!Please restart Franz after changing proxy Settings.",
1742 "end": {
1743 "column": 3,
1744 "line": 105
1745 },
1746 "file": "src/components/settings/services/EditServiceForm.js",
1747 "id": "settings.service.form.proxy.restartInfo",
1748 "start": {
1749 "column": 20,
1750 "line": 102
1751 }
1752 },
1753 {
1754 "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.",
1755 "end": {
1756 "column": 3,
1757 "line": 109
1758 },
1759 "file": "src/components/settings/services/EditServiceForm.js",
1760 "id": "settings.service.form.proxy.info",
1761 "start": {
1762 "column": 13,
1763 "line": 106
1764 }
1765 }
1766 ],
1767 "path": "src/components/settings/services/EditServiceForm.json"
1768 },
1769 {
1770 "descriptors": [
1771 {
1772 "defaultMessage": "!!!Error",
1773 "end": {
1774 "column": 3,
1775 "line": 13
1776 },
1777 "file": "src/components/settings/services/ServiceError.js",
1778 "id": "settings.service.error.headline",
1779 "start": {
1780 "column": 12,
1781 "line": 10
1782 }
1783 },
1784 {
1785 "defaultMessage": "!!!Back to services",
1786 "end": {
1787 "column": 3,
1788 "line": 17
1789 },
1790 "file": "src/components/settings/services/ServiceError.js",
1791 "id": "settings.service.error.goBack",
1792 "start": {
1793 "column": 10,
1794 "line": 14
1795 }
1796 },
1797 {
1798 "defaultMessage": "!!!Available services",
1799 "end": {
1800 "column": 3,
1801 "line": 21
1802 },
1803 "file": "src/components/settings/services/ServiceError.js",
1804 "id": "settings.service.form.availableServices",
1805 "start": {
1806 "column": 21,
1807 "line": 18
1808 }
1809 },
1810 {
1811 "defaultMessage": "!!!Could not load service recipe.",
1812 "end": {
1813 "column": 3,
1814 "line": 25
1815 },
1816 "file": "src/components/settings/services/ServiceError.js",
1817 "id": "settings.service.error.message",
1818 "start": {
1819 "column": 16,
1820 "line": 22
1821 }
1822 }
1823 ],
1824 "path": "src/components/settings/services/ServiceError.json"
1825 },
1826 {
1827 "descriptors": [
1828 {
1829 "defaultMessage": "!!!Service is disabled",
1830 "end": {
1831 "column": 3,
1832 "line": 14
1833 },
1834 "file": "src/components/settings/services/ServiceItem.js",
1835 "id": "settings.services.tooltip.isDisabled",
1836 "start": {
1837 "column": 21,
1838 "line": 11
1839 }
1840 },
1841 {
1842 "defaultMessage": "!!!Notifications are disabled",
1843 "end": {
1844 "column": 3,
1845 "line": 18
1846 },
1847 "file": "src/components/settings/services/ServiceItem.js",
1848 "id": "settings.services.tooltip.notificationsDisabled",
1849 "start": {
1850 "column": 32,
1851 "line": 15
1852 }
1853 },
1854 {
1855 "defaultMessage": "!!!All sounds are muted",
1856 "end": {
1857 "column": 3,
1858 "line": 22
1859 },
1860 "file": "src/components/settings/services/ServiceItem.js",
1861 "id": "settings.services.tooltip.isMuted",
1862 "start": {
1863 "column": 18,
1864 "line": 19
1865 }
1866 }
1867 ],
1868 "path": "src/components/settings/services/ServiceItem.json"
1869 },
1870 {
1871 "descriptors": [
1872 {
1873 "defaultMessage": "!!!Your services",
1874 "end": {
1875 "column": 3,
1876 "line": 17
1877 },
1878 "file": "src/components/settings/services/ServicesDashboard.js",
1879 "id": "settings.services.headline",
1880 "start": {
1881 "column": 12,
1882 "line": 14
1883 }
1884 },
1885 {
1886 "defaultMessage": "!!!Search service",
1887 "end": {
1888 "column": 3,
1889 "line": 21
1890 },
1891 "file": "src/components/settings/services/ServicesDashboard.js",
1892 "id": "settings.searchService",
1893 "start": {
1894 "column": 17,
1895 "line": 18
1896 }
1897 },
1898 {
1899 "defaultMessage": "!!!You haven't added any services yet.",
1900 "end": {
1901 "column": 3,
1902 "line": 25
1903 },
1904 "file": "src/components/settings/services/ServicesDashboard.js",
1905 "id": "settings.services.noServicesAdded",
1906 "start": {
1907 "column": 19,
1908 "line": 22
1909 }
1910 },
1911 {
1912 "defaultMessage": "!!!Sorry, but no service matched your search term.",
1913 "end": {
1914 "column": 3,
1915 "line": 29
1916 },
1917 "file": "src/components/settings/services/ServicesDashboard.js",
1918 "id": "settings.recipes.nothingFound",
1919 "start": {
1920 "column": 18,
1921 "line": 26
1922 }
1923 },
1924 {
1925 "defaultMessage": "!!!Discover services",
1926 "end": {
1927 "column": 3,
1928 "line": 33
1929 },
1930 "file": "src/components/settings/services/ServicesDashboard.js",
1931 "id": "settings.services.discoverServices",
1932 "start": {
1933 "column": 20,
1934 "line": 30
1935 }
1936 },
1937 {
1938 "defaultMessage": "!!!Could not load your services",
1939 "end": {
1940 "column": 3,
1941 "line": 37
1942 },
1943 "file": "src/components/settings/services/ServicesDashboard.js",
1944 "id": "settings.services.servicesRequestFailed",
1945 "start": {
1946 "column": 25,
1947 "line": 34
1948 }
1949 },
1950 {
1951 "defaultMessage": "!!!Try again",
1952 "end": {
1953 "column": 3,
1954 "line": 41
1955 },
1956 "file": "src/components/settings/services/ServicesDashboard.js",
1957 "id": "settings.account.tryReloadServices",
1958 "start": {
1959 "column": 21,
1960 "line": 38
1961 }
1962 },
1963 {
1964 "defaultMessage": "!!!Your changes have been saved",
1965 "end": {
1966 "column": 3,
1967 "line": 45
1968 },
1969 "file": "src/components/settings/services/ServicesDashboard.js",
1970 "id": "settings.services.updatedInfo",
1971 "start": {
1972 "column": 15,
1973 "line": 42
1974 }
1975 },
1976 {
1977 "defaultMessage": "!!!Service has been deleted",
1978 "end": {
1979 "column": 3,
1980 "line": 49
1981 },
1982 "file": "src/components/settings/services/ServicesDashboard.js",
1983 "id": "settings.services.deletedInfo",
1984 "start": {
1985 "column": 15,
1986 "line": 46
1987 }
1988 }
1989 ],
1990 "path": "src/components/settings/services/ServicesDashboard.json"
1991 },
1992 {
1993 "descriptors": [
1994 {
1995 "defaultMessage": "!!!Settings",
1996 "end": {
1997 "column": 3,
1998 "line": 19
1999 },
2000 "file": "src/components/settings/settings/EditSettingsForm.js",
2001 "id": "settings.app.headline",
2002 "start": {
2003 "column": 12,
2004 "line": 16
2005 }
2006 },
2007 {
2008 "defaultMessage": "!!!General",
2009 "end": {
2010 "column": 3,
2011 "line": 23
2012 },
2013 "file": "src/components/settings/settings/EditSettingsForm.js",
2014 "id": "settings.app.headlineGeneral",
2015 "start": {
2016 "column": 19,
2017 "line": 20
2018 }
2019 },
2020 {
2021 "defaultMessage": "!!!Language",
2022 "end": {
2023 "column": 3,
2024 "line": 27
2025 },
2026 "file": "src/components/settings/settings/EditSettingsForm.js",
2027 "id": "settings.app.headlineLanguage",
2028 "start": {
2029 "column": 20,
2030 "line": 24
2031 }
2032 },
2033 {
2034 "defaultMessage": "!!!Updates",
2035 "end": {
2036 "column": 3,
2037 "line": 31
2038 },
2039 "file": "src/components/settings/settings/EditSettingsForm.js",
2040 "id": "settings.app.headlineUpdates",
2041 "start": {
2042 "column": 19,
2043 "line": 28
2044 }
2045 },
2046 {
2047 "defaultMessage": "!!!Appearance",
2048 "end": {
2049 "column": 3,
2050 "line": 35
2051 },
2052 "file": "src/components/settings/settings/EditSettingsForm.js",
2053 "id": "settings.app.headlineAppearance",
2054 "start": {
2055 "column": 22,
2056 "line": 32
2057 }
2058 },
2059 {
2060 "defaultMessage": "!!!Advanced",
2061 "end": {
2062 "column": 3,
2063 "line": 39
2064 },
2065 "file": "src/components/settings/settings/EditSettingsForm.js",
2066 "id": "settings.app.headlineAdvanced",
2067 "start": {
2068 "column": 20,
2069 "line": 36
2070 }
2071 },
2072 {
2073 "defaultMessage": "!!!Help us to translate Franz into your language.",
2074 "end": {
2075 "column": 3,
2076 "line": 43
2077 },
2078 "file": "src/components/settings/settings/EditSettingsForm.js",
2079 "id": "settings.app.translationHelp",
2080 "start": {
2081 "column": 19,
2082 "line": 40
2083 }
2084 },
2085 {
2086 "defaultMessage": "!!!Cache",
2087 "end": {
2088 "column": 3,
2089 "line": 47
2090 },
2091 "file": "src/components/settings/settings/EditSettingsForm.js",
2092 "id": "settings.app.subheadlineCache",
2093 "start": {
2094 "column": 20,
2095 "line": 44
2096 }
2097 },
2098 {
2099 "defaultMessage": "!!!Franz cache is currently using {size} of disk space.",
2100 "end": {
2101 "column": 3,
2102 "line": 51
2103 },
2104 "file": "src/components/settings/settings/EditSettingsForm.js",
2105 "id": "settings.app.cacheInfo",
2106 "start": {
2107 "column": 13,
2108 "line": 48
2109 }
2110 },
2111 {
2112 "defaultMessage": "!!!Clear cache",
2113 "end": {
2114 "column": 3,
2115 "line": 55
2116 },
2117 "file": "src/components/settings/settings/EditSettingsForm.js",
2118 "id": "settings.app.buttonClearAllCache",
2119 "start": {
2120 "column": 23,
2121 "line": 52
2122 }
2123 },
2124 {
2125 "defaultMessage": "!!!Check for updates",
2126 "end": {
2127 "column": 3,
2128 "line": 59
2129 },
2130 "file": "src/components/settings/settings/EditSettingsForm.js",
2131 "id": "settings.app.buttonSearchForUpdate",
2132 "start": {
2133 "column": 25,
2134 "line": 56
2135 }
2136 },
2137 {
2138 "defaultMessage": "!!!Restart & install update",
2139 "end": {
2140 "column": 3,
2141 "line": 63
2142 },
2143 "file": "src/components/settings/settings/EditSettingsForm.js",
2144 "id": "settings.app.buttonInstallUpdate",
2145 "start": {
2146 "column": 23,
2147 "line": 60
2148 }
2149 },
2150 {
2151 "defaultMessage": "!!!Is searching for update",
2152 "end": {
2153 "column": 3,
2154 "line": 67
2155 },
2156 "file": "src/components/settings/settings/EditSettingsForm.js",
2157 "id": "settings.app.updateStatusSearching",
2158 "start": {
2159 "column": 25,
2160 "line": 64
2161 }
2162 },
2163 {
2164 "defaultMessage": "!!!Update available, downloading...",
2165 "end": {
2166 "column": 3,
2167 "line": 71
2168 },
2169 "file": "src/components/settings/settings/EditSettingsForm.js",
2170 "id": "settings.app.updateStatusAvailable",
2171 "start": {
2172 "column": 25,
2173 "line": 68
2174 }
2175 },
2176 {
2177 "defaultMessage": "!!!You are using the latest version of Franz",
2178 "end": {
2179 "column": 3,
2180 "line": 75
2181 },
2182 "file": "src/components/settings/settings/EditSettingsForm.js",
2183 "id": "settings.app.updateStatusUpToDate",
2184 "start": {
2185 "column": 24,
2186 "line": 72
2187 }
2188 },
2189 {
2190 "defaultMessage": "!!!Current version:",
2191 "end": {
2192 "column": 3,
2193 "line": 79
2194 },
2195 "file": "src/components/settings/settings/EditSettingsForm.js",
2196 "id": "settings.app.currentVersion",
2197 "start": {
2198 "column": 18,
2199 "line": 76
2200 }
2201 },
2202 {
2203 "defaultMessage": "!!!Changes require restart",
2204 "end": {
2205 "column": 3,
2206 "line": 83
2207 },
2208 "file": "src/components/settings/settings/EditSettingsForm.js",
2209 "id": "settings.app.restartRequired",
2210 "start": {
2211 "column": 29,
2212 "line": 80
2213 }
2214 }
2215 ],
2216 "path": "src/components/settings/settings/EditSettingsForm.json"
2217 },
2218 {
2219 "descriptors": [
2220 {
2221 "defaultMessage": "!!!Account",
2222 "end": {
2223 "column": 3,
2224 "line": 18
2225 },
2226 "file": "src/components/settings/user/EditUserForm.js",
2227 "id": "settings.account.headline",
2228 "start": {
2229 "column": 12,
2230 "line": 15
2231 }
2232 },
2233 {
2234 "defaultMessage": "!!!Update Profile",
2235 "end": {
2236 "column": 3,
2237 "line": 22
2238 },
2239 "file": "src/components/settings/user/EditUserForm.js",
2240 "id": "settings.account.headlineProfile",
2241 "start": {
2242 "column": 19,
2243 "line": 19
2244 }
2245 },
2246 {
2247 "defaultMessage": "!!!Account Information",
2248 "end": {
2249 "column": 3,
2250 "line": 26
2251 },
2252 "file": "src/components/settings/user/EditUserForm.js",
2253 "id": "settings.account.headlineAccount",
2254 "start": {
2255 "column": 19,
2256 "line": 23
2257 }
2258 },
2259 {
2260 "defaultMessage": "!!!Change Password",
2261 "end": {
2262 "column": 3,
2263 "line": 30
2264 },
2265 "file": "src/components/settings/user/EditUserForm.js",
2266 "id": "settings.account.headlinePassword",
2267 "start": {
2268 "column": 20,
2269 "line": 27
2270 }
2271 },
2272 {
2273 "defaultMessage": "!!!Your changes have been saved",
2274 "end": {
2275 "column": 3,
2276 "line": 34
2277 },
2278 "file": "src/components/settings/user/EditUserForm.js",
2279 "id": "settings.account.successInfo",
2280 "start": {
2281 "column": 15,
2282 "line": 31
2283 }
2284 },
2285 {
2286 "defaultMessage": "!!!Update profile",
2287 "end": {
2288 "column": 3,
2289 "line": 38
2290 },
2291 "file": "src/components/settings/user/EditUserForm.js",
2292 "id": "settings.account.buttonSave",
2293 "start": {
2294 "column": 14,
2295 "line": 35
2296 }
2297 }
2298 ],
2299 "path": "src/components/settings/user/EditUserForm.json"
2300 },
2301 {
2302 "descriptors": [
2303 {
2304 "defaultMessage": "!!!Support the development of Franz",
2305 "end": {
2306 "column": 3,
2307 "line": 17
2308 },
2309 "file": "src/components/subscription/SubscriptionForm.js",
2310 "id": "subscription.submit.label",
2311 "start": {
2312 "column": 21,
2313 "line": 14
2314 }
2315 },
2316 {
2317 "defaultMessage": "!!!Could not initialize payment form",
2318 "end": {
2319 "column": 3,
2320 "line": 21
2321 },
2322 "file": "src/components/subscription/SubscriptionForm.js",
2323 "id": "subscription.paymentSessionError",
2324 "start": {
2325 "column": 23,
2326 "line": 18
2327 }
2328 },
2329 {
2330 "defaultMessage": "!!!free",
2331 "end": {
2332 "column": 3,
2333 "line": 25
2334 },
2335 "file": "src/components/subscription/SubscriptionForm.js",
2336 "id": "subscription.type.free",
2337 "start": {
2338 "column": 12,
2339 "line": 22
2340 }
2341 },
2342 {
2343 "defaultMessage": "!!!month",
2344 "end": {
2345 "column": 3,
2346 "line": 29
2347 },
2348 "file": "src/components/subscription/SubscriptionForm.js",
2349 "id": "subscription.type.month",
2350 "start": {
2351 "column": 15,
2352 "line": 26
2353 }
2354 },
2355 {
2356 "defaultMessage": "!!!year",
2357 "end": {
2358 "column": 3,
2359 "line": 33
2360 },
2361 "file": "src/components/subscription/SubscriptionForm.js",
2362 "id": "subscription.type.year",
2363 "start": {
2364 "column": 14,
2365 "line": 30
2366 }
2367 },
2368 {
2369 "defaultMessage": "!!!The Franz Premium Supporter Account includes",
2370 "end": {
2371 "column": 3,
2372 "line": 37
2373 },
2374 "file": "src/components/subscription/SubscriptionForm.js",
2375 "id": "subscription.includedFeatures",
2376 "start": {
2377 "column": 20,
2378 "line": 34
2379 }
2380 },
2381 {
2382 "defaultMessage": "!!!Add on-premise/hosted services like Mattermost",
2383 "end": {
2384 "column": 3,
2385 "line": 41
2386 },
2387 "file": "src/components/subscription/SubscriptionForm.js",
2388 "id": "subscription.features.onpremise.mattermost",
2389 "start": {
2390 "column": 13,
2391 "line": 38
2392 }
2393 },
2394 {
2395 "defaultMessage": "!!!No app delays & nagging to upgrade license",
2396 "end": {
2397 "column": 3,
2398 "line": 45
2399 },
2400 "file": "src/components/subscription/SubscriptionForm.js",
2401 "id": "subscription.features.noInterruptions",
2402 "start": {
2403 "column": 19,
2404 "line": 42
2405 }
2406 },
2407 {
2408 "defaultMessage": "!!!Proxy support for services",
2409 "end": {
2410 "column": 3,
2411 "line": 49
2412 },
2413 "file": "src/components/subscription/SubscriptionForm.js",
2414 "id": "subscription.features.proxy",
2415 "start": {
2416 "column": 9,
2417 "line": 46
2418 }
2419 },
2420 {
2421 "defaultMessage": "!!!Support for Spellchecker",
2422 "end": {
2423 "column": 3,
2424 "line": 53
2425 },
2426 "file": "src/components/subscription/SubscriptionForm.js",
2427 "id": "subscription.features.spellchecker",
2428 "start": {
2429 "column": 16,
2430 "line": 50
2431 }
2432 },
2433 {
2434 "defaultMessage": "!!!No ads, ever!",
2435 "end": {
2436 "column": 3,
2437 "line": 57
2438 },
2439 "file": "src/components/subscription/SubscriptionForm.js",
2440 "id": "subscription.features.ads",
2441 "start": {
2442 "column": 7,
2443 "line": 54
2444 }
2445 },
2446 {
2447 "defaultMessage": "!!!coming soon",
2448 "end": {
2449 "column": 3,
2450 "line": 61
2451 },
2452 "file": "src/components/subscription/SubscriptionForm.js",
2453 "id": "subscription.features.comingSoon",
2454 "start": {
2455 "column": 14,
2456 "line": 58
2457 }
2458 },
2459 {
2460 "defaultMessage": "!!!EU residents: local sales tax may apply",
2461 "end": {
2462 "column": 3,
2463 "line": 65
2464 },
2465 "file": "src/components/subscription/SubscriptionForm.js",
2466 "id": "subscription.euTaxInfo",
2467 "start": {
2468 "column": 13,
2469 "line": 62
2470 }
2471 }
2472 ],
2473 "path": "src/components/subscription/SubscriptionForm.json"
2474 },
2475 {
2476 "descriptors": [
2477 {
2478 "defaultMessage": "!!!Cancel",
2479 "end": {
2480 "column": 3,
2481 "line": 14
2482 },
2483 "file": "src/components/subscription/SubscriptionPopup.js",
2484 "id": "subscriptionPopup.buttonCancel",
2485 "start": {
2486 "column": 16,
2487 "line": 11
2488 }
2489 },
2490 {
2491 "defaultMessage": "!!!Done",
2492 "end": {
2493 "column": 3,
2494 "line": 18
2495 },
2496 "file": "src/components/subscription/SubscriptionPopup.js",
2497 "id": "subscriptionPopup.buttonDone",
2498 "start": {
2499 "column": 14,
2500 "line": 15
2501 }
2502 }
2503 ],
2504 "path": "src/components/subscription/SubscriptionPopup.json"
2505 },
2506 {
2507 "descriptors": [
2508 {
2509 "defaultMessage": "!!!Upgrade account",
2510 "end": {
2511 "column": 3,
2512 "line": 17
2513 },
2514 "file": "src/components/ui/PremiumFeatureContainer/index.js",
2515 "id": "premiumFeature.button.upgradeAccount",
2516 "start": {
2517 "column": 10,
2518 "line": 14
2519 }
2520 }
2521 ],
2522 "path": "src/components/ui/PremiumFeatureContainer/index.json"
2523 },
2524 {
2525 "descriptors": [
2526 {
2527 "defaultMessage": "!!!Something went wrong.",
2528 "end": {
2529 "column": 3,
2530 "line": 14
2531 },
2532 "file": "src/components/util/ErrorBoundary/index.js",
2533 "id": "app.errorHandler.headline",
2534 "start": {
2535 "column": 12,
2536 "line": 11
2537 }
2538 },
2539 {
2540 "defaultMessage": "!!!Reload",
2541 "end": {
2542 "column": 3,
2543 "line": 18
2544 },
2545 "file": "src/components/util/ErrorBoundary/index.js",
2546 "id": "app.errorHandler.action",
2547 "start": {
2548 "column": 10,
2549 "line": 15
2550 }
2551 }
2552 ],
2553 "path": "src/components/util/ErrorBoundary/index.json"
2554 },
2555 {
2556 "descriptors": [
2557 {
2558 "defaultMessage": "!!!Name",
2559 "end": {
2560 "column": 3,
2561 "line": 31
2562 },
2563 "file": "src/containers/settings/EditServiceScreen.js",
2564 "id": "settings.service.form.name",
2565 "start": {
2566 "column": 8,
2567 "line": 28
2568 }
2569 },
2570 {
2571 "defaultMessage": "!!!Enable service",
2572 "end": {
2573 "column": 3,
2574 "line": 35
2575 },
2576 "file": "src/containers/settings/EditServiceScreen.js",
2577 "id": "settings.service.form.enableService",
2578 "start": {
2579 "column": 17,
2580 "line": 32
2581 }
2582 },
2583 {
2584 "defaultMessage": "!!!Enable Notifications",
2585 "end": {
2586 "column": 3,
2587 "line": 39
2588 },
2589 "file": "src/containers/settings/EditServiceScreen.js",
2590 "id": "settings.service.form.enableNotification",
2591 "start": {
2592 "column": 22,
2593 "line": 36
2594 }
2595 },
2596 {
2597 "defaultMessage": "!!!Show unread message badges",
2598 "end": {
2599 "column": 3,
2600 "line": 43
2601 },
2602 "file": "src/containers/settings/EditServiceScreen.js",
2603 "id": "settings.service.form.enableBadge",
2604 "start": {
2605 "column": 15,
2606 "line": 40
2607 }
2608 },
2609 {
2610 "defaultMessage": "!!!Enable audio",
2611 "end": {
2612 "column": 3,
2613 "line": 47
2614 },
2615 "file": "src/containers/settings/EditServiceScreen.js",
2616 "id": "settings.service.form.enableAudio",
2617 "start": {
2618 "column": 15,
2619 "line": 44
2620 }
2621 },
2622 {
2623 "defaultMessage": "!!!Team",
2624 "end": {
2625 "column": 3,
2626 "line": 51
2627 },
2628 "file": "src/containers/settings/EditServiceScreen.js",
2629 "id": "settings.service.form.team",
2630 "start": {
2631 "column": 8,
2632 "line": 48
2633 }
2634 },
2635 {
2636 "defaultMessage": "!!!Custom server",
2637 "end": {
2638 "column": 3,
2639 "line": 55
2640 },
2641 "file": "src/containers/settings/EditServiceScreen.js",
2642 "id": "settings.service.form.customUrl",
2643 "start": {
2644 "column": 13,
2645 "line": 52
2646 }
2647 },
2648 {
2649 "defaultMessage": "!!!Show message badge for all new messages",
2650 "end": {
2651 "column": 3,
2652 "line": 59
2653 },
2654 "file": "src/containers/settings/EditServiceScreen.js",
2655 "id": "settings.service.form.indirectMessages",
2656 "start": {
2657 "column": 20,
2658 "line": 56
2659 }
2660 },
2661 {
2662 "defaultMessage": "!!!Custom icon",
2663 "end": {
2664 "column": 3,
2665 "line": 63
2666 },
2667 "file": "src/containers/settings/EditServiceScreen.js",
2668 "id": "settings.service.form.icon",
2669 "start": {
2670 "column": 8,
2671 "line": 60
2672 }
2673 },
2674 {
2675 "defaultMessage": "!!!Enable Dark Mode",
2676 "end": {
2677 "column": 3,
2678 "line": 67
2679 },
2680 "file": "src/containers/settings/EditServiceScreen.js",
2681 "id": "settings.service.form.enableDarkMode",
2682 "start": {
2683 "column": 18,
2684 "line": 64
2685 }
2686 },
2687 {
2688 "defaultMessage": "!!!Use Proxy",
2689 "end": {
2690 "column": 3,
2691 "line": 71
2692 },
2693 "file": "src/containers/settings/EditServiceScreen.js",
2694 "id": "settings.service.form.proxy.isEnabled",
2695 "start": {
2696 "column": 15,
2697 "line": 68
2698 }
2699 },
2700 {
2701 "defaultMessage": "!!!Proxy Host/IP",
2702 "end": {
2703 "column": 3,
2704 "line": 75
2705 },
2706 "file": "src/containers/settings/EditServiceScreen.js",
2707 "id": "settings.service.form.proxy.host",
2708 "start": {
2709 "column": 13,
2710 "line": 72
2711 }
2712 },
2713 {
2714 "defaultMessage": "!!!Port",
2715 "end": {
2716 "column": 3,
2717 "line": 79
2718 },
2719 "file": "src/containers/settings/EditServiceScreen.js",
2720 "id": "settings.service.form.proxy.port",
2721 "start": {
2722 "column": 13,
2723 "line": 76
2724 }
2725 },
2726 {
2727 "defaultMessage": "!!!User",
2728 "end": {
2729 "column": 3,
2730 "line": 83
2731 },
2732 "file": "src/containers/settings/EditServiceScreen.js",
2733 "id": "settings.service.form.proxy.user",
2734 "start": {
2735 "column": 13,
2736 "line": 80
2737 }
2738 },
2739 {
2740 "defaultMessage": "!!!Password",
2741 "end": {
2742 "column": 3,
2743 "line": 87
2744 },
2745 "file": "src/containers/settings/EditServiceScreen.js",
2746 "id": "settings.service.form.proxy.password",
2747 "start": {
2748 "column": 17,
2749 "line": 84
2750 }
2751 }
2752 ],
2753 "path": "src/containers/settings/EditServiceScreen.json"
2754 },
2755 {
2756 "descriptors": [
2757 {
2758 "defaultMessage": "!!!Launch Franz on start",
2759 "end": {
2760 "column": 3,
2761 "line": 25
2762 },
2763 "file": "src/containers/settings/EditSettingsScreen.js",
2764 "id": "settings.app.form.autoLaunchOnStart",
2765 "start": {
2766 "column": 21,
2767 "line": 22
2768 }
2769 },
2770 {
2771 "defaultMessage": "!!!Open in background",
2772 "end": {
2773 "column": 3,
2774 "line": 29
2775 },
2776 "file": "src/containers/settings/EditSettingsScreen.js",
2777 "id": "settings.app.form.autoLaunchInBackground",
2778 "start": {
2779 "column": 26,
2780 "line": 26
2781 }
2782 },
2783 {
2784 "defaultMessage": "!!!Keep Franz in background when closing the window",
2785 "end": {
2786 "column": 3,
2787 "line": 33
2788 },
2789 "file": "src/containers/settings/EditSettingsScreen.js",
2790 "id": "settings.app.form.runInBackground",
2791 "start": {
2792 "column": 19,
2793 "line": 30
2794 }
2795 },
2796 {
2797 "defaultMessage": "!!!Show Franz in system tray",
2798 "end": {
2799 "column": 3,
2800 "line": 37
2801 },
2802 "file": "src/containers/settings/EditSettingsScreen.js",
2803 "id": "settings.app.form.enableSystemTray",
2804 "start": {
2805 "column": 20,
2806 "line": 34
2807 }
2808 },
2809 {
2810 "defaultMessage": "!!!Minimize Franz to system tray",
2811 "end": {
2812 "column": 3,
2813 "line": 41
2814 },
2815 "file": "src/containers/settings/EditSettingsScreen.js",
2816 "id": "settings.app.form.minimizeToSystemTray",
2817 "start": {
2818 "column": 24,
2819 "line": 38
2820 }
2821 },
2822 {
2823 "defaultMessage": "!!!Language",
2824 "end": {
2825 "column": 3,
2826 "line": 45
2827 },
2828 "file": "src/containers/settings/EditSettingsScreen.js",
2829 "id": "settings.app.form.language",
2830 "start": {
2831 "column": 12,
2832 "line": 42
2833 }
2834 },
2835 {
2836 "defaultMessage": "!!!Dark Mode",
2837 "end": {
2838 "column": 3,
2839 "line": 49
2840 },
2841 "file": "src/containers/settings/EditSettingsScreen.js",
2842 "id": "settings.app.form.darkMode",
2843 "start": {
2844 "column": 12,
2845 "line": 46
2846 }
2847 },
2848 {
2849 "defaultMessage": "!!!Display disabled services tabs",
2850 "end": {
2851 "column": 3,
2852 "line": 53
2853 },
2854 "file": "src/containers/settings/EditSettingsScreen.js",
2855 "id": "settings.app.form.showDisabledServices",
2856 "start": {
2857 "column": 24,
2858 "line": 50
2859 }
2860 },
2861 {
2862 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
2863 "end": {
2864 "column": 3,
2865 "line": 57
2866 },
2867 "file": "src/containers/settings/EditSettingsScreen.js",
2868 "id": "settings.app.form.showMessagesBadgesWhenMuted",
2869 "start": {
2870 "column": 29,
2871 "line": 54
2872 }
2873 },
2874 {
2875 "defaultMessage": "!!!Enable spell checking",
2876 "end": {
2877 "column": 3,
2878 "line": 61
2879 },
2880 "file": "src/containers/settings/EditSettingsScreen.js",
2881 "id": "settings.app.form.enableSpellchecking",
2882 "start": {
2883 "column": 23,
2884 "line": 58
2885 }
2886 },
2887 {
2888 "defaultMessage": "!!!Enable GPU Acceleration",
2889 "end": {
2890 "column": 3,
2891 "line": 65
2892 },
2893 "file": "src/containers/settings/EditSettingsScreen.js",
2894 "id": "settings.app.form.enableGPUAcceleration",
2895 "start": {
2896 "column": 25,
2897 "line": 62
2898 }
2899 },
2900 {
2901 "defaultMessage": "!!!Include beta versions",
2902 "end": {
2903 "column": 3,
2904 "line": 69
2905 },
2906 "file": "src/containers/settings/EditSettingsScreen.js",
2907 "id": "settings.app.form.beta",
2908 "start": {
2909 "column": 8,
2910 "line": 66
2911 }
2912 }
2913 ],
2914 "path": "src/containers/settings/EditSettingsScreen.json"
2915 },
2916 {
2917 "descriptors": [
2918 {
2919 "defaultMessage": "!!!Firstname",
2920 "end": {
2921 "column": 3,
2922 "line": 17
2923 },
2924 "file": "src/containers/settings/EditUserScreen.js",
2925 "id": "settings.user.form.firstname",
2926 "start": {
2927 "column": 13,
2928 "line": 14
2929 }
2930 },
2931 {
2932 "defaultMessage": "!!!Lastname",
2933 "end": {
2934 "column": 3,
2935 "line": 21
2936 },
2937 "file": "src/containers/settings/EditUserScreen.js",
2938 "id": "settings.user.form.lastname",
2939 "start": {
2940 "column": 12,
2941 "line": 18
2942 }
2943 },
2944 {
2945 "defaultMessage": "!!!Email",
2946 "end": {
2947 "column": 3,
2948 "line": 25
2949 },
2950 "file": "src/containers/settings/EditUserScreen.js",
2951 "id": "settings.user.form.email",
2952 "start": {
2953 "column": 9,
2954 "line": 22
2955 }
2956 },
2957 {
2958 "defaultMessage": "!!!Account type",
2959 "end": {
2960 "column": 3,
2961 "line": 29
2962 },
2963 "file": "src/containers/settings/EditUserScreen.js",
2964 "id": "settings.user.form.accountType.label",
2965 "start": {
2966 "column": 20,
2967 "line": 26
2968 }
2969 },
2970 {
2971 "defaultMessage": "!!!Individual",
2972 "end": {
2973 "column": 3,
2974 "line": 33
2975 },
2976 "file": "src/containers/settings/EditUserScreen.js",
2977 "id": "settings.user.form.accountType.individual",
2978 "start": {
2979 "column": 25,
2980 "line": 30
2981 }
2982 },
2983 {
2984 "defaultMessage": "!!!Non-Profit",
2985 "end": {
2986 "column": 3,
2987 "line": 37
2988 },
2989 "file": "src/containers/settings/EditUserScreen.js",
2990 "id": "settings.user.form.accountType.non-profit",
2991 "start": {
2992 "column": 24,
2993 "line": 34
2994 }
2995 },
2996 {
2997 "defaultMessage": "!!!Company",
2998 "end": {
2999 "column": 3,
3000 "line": 41
3001 },
3002 "file": "src/containers/settings/EditUserScreen.js",
3003 "id": "settings.user.form.accountType.company",
3004 "start": {
3005 "column": 22,
3006 "line": 38
3007 }
3008 },
3009 {
3010 "defaultMessage": "!!!Current password",
3011 "end": {
3012 "column": 3,
3013 "line": 45
3014 },
3015 "file": "src/containers/settings/EditUserScreen.js",
3016 "id": "settings.user.form.currentPassword",
3017 "start": {
3018 "column": 19,
3019 "line": 42
3020 }
3021 },
3022 {
3023 "defaultMessage": "!!!New password",
3024 "end": {
3025 "column": 3,
3026 "line": 49
3027 },
3028 "file": "src/containers/settings/EditUserScreen.js",
3029 "id": "settings.user.form.newPassword",
3030 "start": {
3031 "column": 15,
3032 "line": 46
3033 }
3034 }
3035 ],
3036 "path": "src/containers/settings/EditUserScreen.json"
3037 },
3038 {
3039 "descriptors": [
3040 {
3041 "defaultMessage": "!!!Please purchase license to skip waiting",
3042 "end": {
3043 "column": 3,
3044 "line": 18
3045 },
3046 "file": "src/features/delayApp/Component.js",
3047 "id": "feature.delayApp.headline",
3048 "start": {
3049 "column": 12,
3050 "line": 15
3051 }
3052 },
3053 {
3054 "defaultMessage": "!!!Get a Franz Supporter License",
3055 "end": {
3056 "column": 3,
3057 "line": 22
3058 },
3059 "file": "src/features/delayApp/Component.js",
3060 "id": "feature.delayApp.action",
3061 "start": {
3062 "column": 10,
3063 "line": 19
3064 }
3065 },
3066 {
3067 "defaultMessage": "!!!Franz will continue in {seconds} seconds.",
3068 "end": {
3069 "column": 3,
3070 "line": 26
3071 },
3072 "file": "src/features/delayApp/Component.js",
3073 "id": "feature.delayApp.text",
3074 "start": {
3075 "column": 8,
3076 "line": 23
3077 }
3078 }
3079 ],
3080 "path": "src/features/delayApp/Component.json"
3081 },
3082 {
3083 "descriptors": [
3084 {
3085 "defaultMessage": "!!!Franz is better together!",
3086 "end": {
3087 "column": 3,
3088 "line": 18
3089 },
3090 "file": "src/features/shareFranz/Component.js",
3091 "id": "feature.shareFranz.headline",
3092 "start": {
3093 "column": 12,
3094 "line": 15
3095 }
3096 },
3097 {
3098 "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
3099 "end": {
3100 "column": 3,
3101 "line": 22
3102 },
3103 "file": "src/features/shareFranz/Component.js",
3104 "id": "feature.shareFranz.text",
3105 "start": {
3106 "column": 8,
3107 "line": 19
3108 }
3109 },
3110 {
3111 "defaultMessage": "!!!Share as email",
3112 "end": {
3113 "column": 3,
3114 "line": 26
3115 },
3116 "file": "src/features/shareFranz/Component.js",
3117 "id": "feature.shareFranz.action.email",
3118 "start": {
3119 "column": 16,
3120 "line": 23
3121 }
3122 },
3123 {
3124 "defaultMessage": "!!!Share on Facebook",
3125 "end": {
3126 "column": 3,
3127 "line": 30
3128 },
3129 "file": "src/features/shareFranz/Component.js",
3130 "id": "feature.shareFranz.action.facebook",
3131 "start": {
3132 "column": 19,
3133 "line": 27
3134 }
3135 },
3136 {
3137 "defaultMessage": "!!!Share on Twitter",
3138 "end": {
3139 "column": 3,
3140 "line": 34
3141 },
3142 "file": "src/features/shareFranz/Component.js",
3143 "id": "feature.shareFranz.action.twitter",
3144 "start": {
3145 "column": 18,
3146 "line": 31
3147 }
3148 },
3149 {
3150 "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
3151 "end": {
3152 "column": 3,
3153 "line": 38
3154 },
3155 "file": "src/features/shareFranz/Component.js",
3156 "id": "feature.shareFranz.shareText.email",
3157 "start": {
3158 "column": 18,
3159 "line": 35
3160 }
3161 },
3162 {
3163 "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz",
3164 "end": {
3165 "column": 3,
3166 "line": 42
3167 },
3168 "file": "src/features/shareFranz/Component.js",
3169 "id": "feature.shareFranz.shareText.twitter",
3170 "start": {
3171 "column": 20,
3172 "line": 39
3173 }
3174 }
3175 ],
3176 "path": "src/features/shareFranz/Component.json"
3177 },
3178 {
3179 "descriptors": [
3180 {
3181 "defaultMessage": "!!!Save workspace",
3182 "end": {
3183 "column": 3,
3184 "line": 14
3185 },
3186 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
3187 "id": "settings.workspace.add.form.submitButton",
3188 "start": {
3189 "column": 16,
3190 "line": 11
3191 }
3192 },
3193 {
3194 "defaultMessage": "!!!Name",
3195 "end": {
3196 "column": 3,
3197 "line": 18
3198 },
3199 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
3200 "id": "settings.workspace.add.form.name",
3201 "start": {
3202 "column": 8,
3203 "line": 15
3204 }
3205 }
3206 ],
3207 "path": "src/features/workspaces/components/CreateWorkspaceForm.json"
3208 },
3209 {
3210 "descriptors": [
3211 {
3212 "defaultMessage": "!!!Delete workspace",
3213 "end": {
3214 "column": 3,
3215 "line": 19
3216 },
3217 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3218 "id": "settings.workspace.form.buttonDelete",
3219 "start": {
3220 "column": 16,
3221 "line": 16
3222 }
3223 },
3224 {
3225 "defaultMessage": "!!!Save workspace",
3226 "end": {
3227 "column": 3,
3228 "line": 23
3229 },
3230 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3231 "id": "settings.workspace.form.buttonSave",
3232 "start": {
3233 "column": 14,
3234 "line": 20
3235 }
3236 },
3237 {
3238 "defaultMessage": "!!!Name",
3239 "end": {
3240 "column": 3,
3241 "line": 27
3242 },
3243 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3244 "id": "settings.workspace.form.name",
3245 "start": {
3246 "column": 8,
3247 "line": 24
3248 }
3249 },
3250 {
3251 "defaultMessage": "!!!Your workspaces",
3252 "end": {
3253 "column": 3,
3254 "line": 31
3255 },
3256 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3257 "id": "settings.workspace.form.yourWorkspaces",
3258 "start": {
3259 "column": 18,
3260 "line": 28
3261 }
3262 },
3263 {
3264 "defaultMessage": "!!!Services in this Workspace",
3265 "end": {
3266 "column": 3,
3267 "line": 35
3268 },
3269 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
3270 "id": "settings.workspace.form.servicesInWorkspaceHeadline",
3271 "start": {
3272 "column": 31,
3273 "line": 32
3274 }
3275 }
3276 ],
3277 "path": "src/features/workspaces/components/EditWorkspaceForm.json"
3278 },
3279 {
3280 "descriptors": [
3281 {
3282 "defaultMessage": "!!!Your workspaces",
3283 "end": {
3284 "column": 3,
3285 "line": 15
3286 },
3287 "file": "src/features/workspaces/components/WorkspacesDashboard.js",
3288 "id": "settings.workspaces.headline",
3289 "start": {
3290 "column": 12,
3291 "line": 12
3292 }
3293 },
3294 {
3295 "defaultMessage": "!!!You haven't added any workspaces yet.",
3296 "end": {
3297 "column": 3,
3298 "line": 19
3299 },
3300 "file": "src/features/workspaces/components/WorkspacesDashboard.js",
3301 "id": "settings.workspaces.noWorkspacesAdded",
3302 "start": {
3303 "column": 19,
3304 "line": 16
3305 }
3306 }
3307 ],
3308 "path": "src/features/workspaces/components/WorkspacesDashboard.json"
3309 },
3310 {
3311 "descriptors": [
3312 {
3313 "defaultMessage": "!!!Field is required",
3314 "end": {
3315 "column": 3,
3316 "line": 7
3317 },
3318 "file": "src/helpers/validation-helpers.js",
3319 "id": "validation.required",
3320 "start": {
3321 "column": 12,
3322 "line": 4
3323 }
3324 },
3325 {
3326 "defaultMessage": "!!!Email not valid",
3327 "end": {
3328 "column": 3,
3329 "line": 11
3330 },
3331 "file": "src/helpers/validation-helpers.js",
3332 "id": "validation.email",
3333 "start": {
3334 "column": 9,
3335 "line": 8
3336 }
3337 },
3338 {
3339 "defaultMessage": "!!!Not a valid URL",
3340 "end": {
3341 "column": 3,
3342 "line": 15
3343 },
3344 "file": "src/helpers/validation-helpers.js",
3345 "id": "validation.url",
3346 "start": {
3347 "column": 7,
3348 "line": 12
3349 }
3350 },
3351 {
3352 "defaultMessage": "!!!Too few characters",
3353 "end": {
3354 "column": 3,
3355 "line": 19
3356 },
3357 "file": "src/helpers/validation-helpers.js",
3358 "id": "validation.minLength",
3359 "start": {
3360 "column": 13,
3361 "line": 16
3362 }
3363 },
3364 {
3365 "defaultMessage": "!!!At least one is required",
3366 "end": {
3367 "column": 3,
3368 "line": 23
3369 },
3370 "file": "src/helpers/validation-helpers.js",
3371 "id": "validation.oneRequired",
3372 "start": {
3373 "column": 15,
3374 "line": 20
3375 }
3376 }
3377 ],
3378 "path": "src/helpers/validation-helpers.json"
3379 },
3380 {
3381 "descriptors": [
3382 {
3383 "defaultMessage": "!!!Can't connect to Franz Online Services",
3384 "end": {
3385 "column": 3,
3386 "line": 7
3387 },
3388 "file": "src/i18n/globalMessages.js",
3389 "id": "global.api.unhealthy",
3390 "start": {
3391 "column": 16,
3392 "line": 4
3393 }
3394 },
3395 {
3396 "defaultMessage": "!!!You are not connected to the internet.",
3397 "end": {
3398 "column": 3,
3399 "line": 11
3400 },
3401 "file": "src/i18n/globalMessages.js",
3402 "id": "global.notConnectedToTheInternet",
3403 "start": {
3404 "column": 29,
3405 "line": 8
3406 }
3407 },
3408 {
3409 "defaultMessage": "!!!Spell checking language",
3410 "end": {
3411 "column": 3,
3412 "line": 15
3413 },
3414 "file": "src/i18n/globalMessages.js",
3415 "id": "global.spellchecking.language",
3416 "start": {
3417 "column": 24,
3418 "line": 12
3419 }
3420 },
3421 {
3422 "defaultMessage": "!!!Use System Default ({default})",
3423 "end": {
3424 "column": 3,
3425 "line": 19
3426 },
3427 "file": "src/i18n/globalMessages.js",
3428 "id": "global.spellchecker.useDefault",
3429 "start": {
3430 "column": 29,
3431 "line": 16
3432 }
3433 },
3434 {
3435 "defaultMessage": "!!!Detect language automatically",
3436 "end": {
3437 "column": 3,
3438 "line": 23
3439 },
3440 "file": "src/i18n/globalMessages.js",
3441 "id": "global.spellchecking.autodetect",
3442 "start": {
3443 "column": 34,
3444 "line": 20
3445 }
3446 },
3447 {
3448 "defaultMessage": "!!!Automatic",
3449 "end": {
3450 "column": 3,
3451 "line": 27
3452 },
3453 "file": "src/i18n/globalMessages.js",
3454 "id": "global.spellchecking.autodetect.short",
3455 "start": {
3456 "column": 39,
3457 "line": 24
3458 }
3459 }
3460 ],
3461 "path": "src/i18n/globalMessages.json"
3462 },
3463 {
3464 "descriptors": [
3465 {
3466 "defaultMessage": "!!!Edit",
3467 "end": {
3468 "column": 3,
3469 "line": 15
3470 },
3471 "file": "src/lib/Menu.js",
3472 "id": "menu.edit",
3473 "start": {
3474 "column": 8,
3475 "line": 12
3476 }
3477 },
3478 {
3479 "defaultMessage": "!!!Undo",
3480 "end": {
3481 "column": 3,
3482 "line": 19
3483 },
3484 "file": "src/lib/Menu.js",
3485 "id": "menu.edit.undo",
3486 "start": {
3487 "column": 8,
3488 "line": 16
3489 }
3490 },
3491 {
3492 "defaultMessage": "!!!Redo",
3493 "end": {
3494 "column": 3,
3495 "line": 23
3496 },
3497 "file": "src/lib/Menu.js",
3498 "id": "menu.edit.redo",
3499 "start": {
3500 "column": 8,
3501 "line": 20
3502 }
3503 },
3504 {
3505 "defaultMessage": "!!!Cut",
3506 "end": {
3507 "column": 3,
3508 "line": 27
3509 },
3510 "file": "src/lib/Menu.js",
3511 "id": "menu.edit.cut",
3512 "start": {
3513 "column": 7,
3514 "line": 24
3515 }
3516 },
3517 {
3518 "defaultMessage": "!!!Copy",
3519 "end": {
3520 "column": 3,
3521 "line": 31
3522 },
3523 "file": "src/lib/Menu.js",
3524 "id": "menu.edit.copy",
3525 "start": {
3526 "column": 8,
3527 "line": 28
3528 }
3529 },
3530 {
3531 "defaultMessage": "!!!Paste",
3532 "end": {
3533 "column": 3,
3534 "line": 35
3535 },
3536 "file": "src/lib/Menu.js",
3537 "id": "menu.edit.paste",
3538 "start": {
3539 "column": 9,
3540 "line": 32
3541 }
3542 },
3543 {
3544 "defaultMessage": "!!!Paste And Match Style",
3545 "end": {
3546 "column": 3,
3547 "line": 39
3548 },
3549 "file": "src/lib/Menu.js",
3550 "id": "menu.edit.pasteAndMatchStyle",
3551 "start": {
3552 "column": 22,
3553 "line": 36
3554 }
3555 },
3556 {
3557 "defaultMessage": "!!!Delete",
3558 "end": {
3559 "column": 3,
3560 "line": 43
3561 },
3562 "file": "src/lib/Menu.js",
3563 "id": "menu.edit.delete",
3564 "start": {
3565 "column": 10,
3566 "line": 40
3567 }
3568 },
3569 {
3570 "defaultMessage": "!!!Select All",
3571 "end": {
3572 "column": 3,
3573 "line": 47
3574 },
3575 "file": "src/lib/Menu.js",
3576 "id": "menu.edit.selectAll",
3577 "start": {
3578 "column": 13,
3579 "line": 44
3580 }
3581 },
3582 {
3583 "defaultMessage": "!!!Speech",
3584 "end": {
3585 "column": 3,
3586 "line": 51
3587 },
3588 "file": "src/lib/Menu.js",
3589 "id": "menu.edit.speech",
3590 "start": {
3591 "column": 10,
3592 "line": 48
3593 }
3594 },
3595 {
3596 "defaultMessage": "!!!Start Speaking",
3597 "end": {
3598 "column": 3,
3599 "line": 55
3600 },
3601 "file": "src/lib/Menu.js",
3602 "id": "menu.edit.startSpeaking",
3603 "start": {
3604 "column": 17,
3605 "line": 52
3606 }
3607 },
3608 {
3609 "defaultMessage": "!!!Stop Speaking",
3610 "end": {
3611 "column": 3,
3612 "line": 59
3613 },
3614 "file": "src/lib/Menu.js",
3615 "id": "menu.edit.stopSpeaking",
3616 "start": {
3617 "column": 16,
3618 "line": 56
3619 }
3620 },
3621 {
3622 "defaultMessage": "!!!Start Dictation",
3623 "end": {
3624 "column": 3,
3625 "line": 63
3626 },
3627 "file": "src/lib/Menu.js",
3628 "id": "menu.edit.startDictation",
3629 "start": {
3630 "column": 18,
3631 "line": 60
3632 }
3633 },
3634 {
3635 "defaultMessage": "!!!Emoji & Symbols",
3636 "end": {
3637 "column": 3,
3638 "line": 67
3639 },
3640 "file": "src/lib/Menu.js",
3641 "id": "menu.edit.emojiSymbols",
3642 "start": {
3643 "column": 16,
3644 "line": 64
3645 }
3646 },
3647 {
3648 "defaultMessage": "!!!Actual Size",
3649 "end": {
3650 "column": 3,
3651 "line": 71
3652 },
3653 "file": "src/lib/Menu.js",
3654 "id": "menu.view.resetZoom",
3655 "start": {
3656 "column": 13,
3657 "line": 68
3658 }
3659 },
3660 {
3661 "defaultMessage": "!!!Zoom In",
3662 "end": {
3663 "column": 3,
3664 "line": 75
3665 },
3666 "file": "src/lib/Menu.js",
3667 "id": "menu.view.zoomIn",
3668 "start": {
3669 "column": 10,
3670 "line": 72
3671 }
3672 },
3673 {
3674 "defaultMessage": "!!!Zoom Out",
3675 "end": {
3676 "column": 3,
3677 "line": 79
3678 },
3679 "file": "src/lib/Menu.js",
3680 "id": "menu.view.zoomOut",
3681 "start": {
3682 "column": 11,
3683 "line": 76
3684 }
3685 },
3686 {
3687 "defaultMessage": "!!!Enter Full Screen",
3688 "end": {
3689 "column": 3,
3690 "line": 83
3691 },
3692 "file": "src/lib/Menu.js",
3693 "id": "menu.view.enterFullScreen",
3694 "start": {
3695 "column": 19,
3696 "line": 80
3697 }
3698 },
3699 {
3700 "defaultMessage": "!!!Exit Full Screen",
3701 "end": {
3702 "column": 3,
3703 "line": 87
3704 },
3705 "file": "src/lib/Menu.js",
3706 "id": "menu.view.exitFullScreen",
3707 "start": {
3708 "column": 18,
3709 "line": 84
3710 }
3711 },
3712 {
3713 "defaultMessage": "!!!Toggle Full Screen",
3714 "end": {
3715 "column": 3,
3716 "line": 91
3717 },
3718 "file": "src/lib/Menu.js",
3719 "id": "menu.view.toggleFullScreen",
3720 "start": {
3721 "column": 20,
3722 "line": 88
3723 }
3724 },
3725 {
3726 "defaultMessage": "!!!Toggle Developer Tools",
3727 "end": {
3728 "column": 3,
3729 "line": 95
3730 },
3731 "file": "src/lib/Menu.js",
3732 "id": "menu.view.toggleDevTools",
3733 "start": {
3734 "column": 18,
3735 "line": 92
3736 }
3737 },
3738 {
3739 "defaultMessage": "!!!Toggle Service Developer Tools",
3740 "end": {
3741 "column": 3,
3742 "line": 99
3743 },
3744 "file": "src/lib/Menu.js",
3745 "id": "menu.view.toggleServiceDevTools",
3746 "start": {
3747 "column": 25,
3748 "line": 96
3749 }
3750 },
3751 {
3752 "defaultMessage": "!!!Reload Service",
3753 "end": {
3754 "column": 3,
3755 "line": 103
3756 },
3757 "file": "src/lib/Menu.js",
3758 "id": "menu.view.reloadService",
3759 "start": {
3760 "column": 17,
3761 "line": 100
3762 }
3763 },
3764 {
3765 "defaultMessage": "!!!Reload Franz",
3766 "end": {
3767 "column": 3,
3768 "line": 107
3769 },
3770 "file": "src/lib/Menu.js",
3771 "id": "menu.view.reloadFranz",
3772 "start": {
3773 "column": 15,
3774 "line": 104
3775 }
3776 },
3777 {
3778 "defaultMessage": "!!!Minimize",
3779 "end": {
3780 "column": 3,
3781 "line": 111
3782 },
3783 "file": "src/lib/Menu.js",
3784 "id": "menu.window.minimize",
3785 "start": {
3786 "column": 12,
3787 "line": 108
3788 }
3789 },
3790 {
3791 "defaultMessage": "!!!Close",
3792 "end": {
3793 "column": 3,
3794 "line": 115
3795 },
3796 "file": "src/lib/Menu.js",
3797 "id": "menu.window.close",
3798 "start": {
3799 "column": 9,
3800 "line": 112
3801 }
3802 },
3803 {
3804 "defaultMessage": "!!!Learn More",
3805 "end": {
3806 "column": 3,
3807 "line": 119
3808 },
3809 "file": "src/lib/Menu.js",
3810 "id": "menu.help.learnMore",
3811 "start": {
3812 "column": 13,
3813 "line": 116
3814 }
3815 },
3816 {
3817 "defaultMessage": "!!!Changelog",
3818 "end": {
3819 "column": 3,
3820 "line": 123
3821 },
3822 "file": "src/lib/Menu.js",
3823 "id": "menu.help.changelog",
3824 "start": {
3825 "column": 13,
3826 "line": 120
3827 }
3828 },
3829 {
3830 "defaultMessage": "!!!Support",
3831 "end": {
3832 "column": 3,
3833 "line": 127
3834 },
3835 "file": "src/lib/Menu.js",
3836 "id": "menu.help.support",
3837 "start": {
3838 "column": 11,
3839 "line": 124
3840 }
3841 },
3842 {
3843 "defaultMessage": "!!!Terms of Service",
3844 "end": {
3845 "column": 3,
3846 "line": 131
3847 },
3848 "file": "src/lib/Menu.js",
3849 "id": "menu.help.tos",
3850 "start": {
3851 "column": 7,
3852 "line": 128
3853 }
3854 },
3855 {
3856 "defaultMessage": "!!!Privacy Statement",
3857 "end": {
3858 "column": 3,
3859 "line": 135
3860 },
3861 "file": "src/lib/Menu.js",
3862 "id": "menu.help.privacy",
3863 "start": {
3864 "column": 11,
3865 "line": 132
3866 }
3867 },
3868 {
3869 "defaultMessage": "!!!File",
3870 "end": {
3871 "column": 3,
3872 "line": 139
3873 },
3874 "file": "src/lib/Menu.js",
3875 "id": "menu.file",
3876 "start": {
3877 "column": 8,
3878 "line": 136
3879 }
3880 },
3881 {
3882 "defaultMessage": "!!!View",
3883 "end": {
3884 "column": 3,
3885 "line": 143
3886 },
3887 "file": "src/lib/Menu.js",
3888 "id": "menu.view",
3889 "start": {
3890 "column": 8,
3891 "line": 140
3892 }
3893 },
3894 {
3895 "defaultMessage": "!!!Services",
3896 "end": {
3897 "column": 3,
3898 "line": 147
3899 },
3900 "file": "src/lib/Menu.js",
3901 "id": "menu.services",
3902 "start": {
3903 "column": 12,
3904 "line": 144
3905 }
3906 },
3907 {
3908 "defaultMessage": "!!!Window",
3909 "end": {
3910 "column": 3,
3911 "line": 151
3912 },
3913 "file": "src/lib/Menu.js",
3914 "id": "menu.window",
3915 "start": {
3916 "column": 10,
3917 "line": 148
3918 }
3919 },
3920 {
3921 "defaultMessage": "!!!Help",
3922 "end": {
3923 "column": 3,
3924 "line": 155
3925 },
3926 "file": "src/lib/Menu.js",
3927 "id": "menu.help",
3928 "start": {
3929 "column": 8,
3930 "line": 152
3931 }
3932 },
3933 {
3934 "defaultMessage": "!!!About Franz",
3935 "end": {
3936 "column": 3,
3937 "line": 159
3938 },
3939 "file": "src/lib/Menu.js",
3940 "id": "menu.app.about",
3941 "start": {
3942 "column": 9,
3943 "line": 156
3944 }
3945 },
3946 {
3947 "defaultMessage": "!!!Settings",
3948 "end": {
3949 "column": 3,
3950 "line": 163
3951 },
3952 "file": "src/lib/Menu.js",
3953 "id": "menu.app.settings",
3954 "start": {
3955 "column": 12,
3956 "line": 160
3957 }
3958 },
3959 {
3960 "defaultMessage": "!!!Hide",
3961 "end": {
3962 "column": 3,
3963 "line": 167
3964 },
3965 "file": "src/lib/Menu.js",
3966 "id": "menu.app.hide",
3967 "start": {
3968 "column": 8,
3969 "line": 164
3970 }
3971 },
3972 {
3973 "defaultMessage": "!!!Hide Others",
3974 "end": {
3975 "column": 3,
3976 "line": 171
3977 },
3978 "file": "src/lib/Menu.js",
3979 "id": "menu.app.hideOthers",
3980 "start": {
3981 "column": 14,
3982 "line": 168
3983 }
3984 },
3985 {
3986 "defaultMessage": "!!!Unhide",
3987 "end": {
3988 "column": 3,
3989 "line": 175
3990 },
3991 "file": "src/lib/Menu.js",
3992 "id": "menu.app.unhide",
3993 "start": {
3994 "column": 10,
3995 "line": 172
3996 }
3997 },
3998 {
3999 "defaultMessage": "!!!Quit",
4000 "end": {
4001 "column": 3,
4002 "line": 179
4003 },
4004 "file": "src/lib/Menu.js",
4005 "id": "menu.app.quit",
4006 "start": {
4007 "column": 8,
4008 "line": 176
4009 }
4010 },
4011 {
4012 "defaultMessage": "!!!Add New Service...",
4013 "end": {
4014 "column": 3,
4015 "line": 183
4016 },
4017 "file": "src/lib/Menu.js",
4018 "id": "menu.services.addNewService",
4019 "start": {
4020 "column": 17,
4021 "line": 180
4022 }
4023 },
4024 {
4025 "defaultMessage": "!!!Add New Workspace...",
4026 "end": {
4027 "column": 3,
4028 "line": 187
4029 },
4030 "file": "src/lib/Menu.js",
4031 "id": "menu.workspaces.addNewWorkspace",
4032 "start": {
4033 "column": 19,
4034 "line": 184
4035 }
4036 },
4037 {
4038 "defaultMessage": "!!!Activate next service...",
4039 "end": {
4040 "column": 3,
4041 "line": 191
4042 },
4043 "file": "src/lib/Menu.js",
4044 "id": "menu.services.setNextServiceActive",
4045 "start": {
4046 "column": 23,
4047 "line": 188
4048 }
4049 },
4050 {
4051 "defaultMessage": "!!!Activate previous service...",
4052 "end": {
4053 "column": 3,
4054 "line": 195
4055 },
4056 "file": "src/lib/Menu.js",
4057 "id": "menu.services.activatePreviousService",
4058 "start": {
4059 "column": 27,
4060 "line": 192
4061 }
4062 },
4063 {
4064 "defaultMessage": "!!!Disable notifications & audio",
4065 "end": {
4066 "column": 3,
4067 "line": 199
4068 },
4069 "file": "src/lib/Menu.js",
4070 "id": "sidebar.muteApp",
4071 "start": {
4072 "column": 11,
4073 "line": 196
4074 }
4075 },
4076 {
4077 "defaultMessage": "!!!Enable notifications & audio",
4078 "end": {
4079 "column": 3,
4080 "line": 203
4081 },
4082 "file": "src/lib/Menu.js",
4083 "id": "sidebar.unmuteApp",
4084 "start": {
4085 "column": 13,
4086 "line": 200
4087 }
4088 },
4089 {
4090 "defaultMessage": "!!!Workspaces",
4091 "end": {
4092 "column": 3,
4093 "line": 207
4094 },
4095 "file": "src/lib/Menu.js",
4096 "id": "menu.workspaces",
4097 "start": {
4098 "column": 14,
4099 "line": 204
4100 }
4101 },
4102 {
4103 "defaultMessage": "!!!Default",
4104 "end": {
4105 "column": 3,
4106 "line": 211
4107 },
4108 "file": "src/lib/Menu.js",
4109 "id": "menu.workspaces.defaultWorkspace",
4110 "start": {
4111 "column": 20,
4112 "line": 208
4113 }
4114 }
4115 ],
4116 "path": "src/lib/Menu.json"
4117 }
4118] \ No newline at end of file
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json
index 671eecd41..9639ec5f7 100644
--- a/src/i18n/locales/el.json
+++ b/src/i18n/locales/el.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Επαναφόρτωση", 2 "app.errorHandler.action" : "Επαναφόρτωση",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Κάτι δεν λειτουργεί",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz θα συνεχίσει σε {seconds} δευτερόλεπτα.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Δεν είναι δυνατή η σύνδεση με τις ζωντανές υπηρεσίες του Franz", 14 "global.api.unhealthy" : "Δεν είναι δυνατή η σύνδεση με τις ζωντανές υπηρεσίες του Franz",
8 "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο", 15 "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "Εισαγάγετε τις υπηρεσίες σας Franz 4", 20 "import.headline" : "Εισαγάγετε τις υπηρεσίες σας Franz 4",
10 "import.notSupportedHeadline" : "Υπηρεσίες που δεν υποστηρίζονται ακόμα στο Franz 5", 21 "import.notSupportedHeadline" : "Υπηρεσίες που δεν υποστηρίζονται ακόμα στο Franz 5",
11 "import.skip.label" : "Θέλω να προσθέσω υπηρεσίες χειροκίνητα", 22 "import.skip.label" : "Θέλω να προσθέσω υπηρεσίες χειροκίνητα",
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json
index 2a51662a2..1041a8b5f 100644
--- a/src/i18n/locales/en-US.json
+++ b/src/i18n/locales/en-US.json
@@ -1,300 +1,298 @@
1{ 1{
2 "app.errorHandler.action": "Reload",
3 "app.errorHandler.headline": "Something went wrong",
4 "feature.delayApp.action": "Get a Franz Supporter License",
5 "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text": "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email": "Send as email",
8 "feature.shareFranz.action.facebook": "Share on Facebook",
9 "feature.shareFranz.action.twitter": "Share on Twitter",
10 "feature.shareFranz.headline": "Franz is better together!",
11 "feature.shareFranz.shareText.email": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz",
13 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
2 "global.api.unhealthy": "Can't connect to Franz online services", 14 "global.api.unhealthy": "Can't connect to Franz online services",
3 "global.notConnectedToTheInternet": "You are not connected to the internet.", 15 "global.notConnectedToTheInternet": "You are not connected to the internet.",
4 "global.spellchecking.language": "Spell checking language",
5 "global.spellchecker.useDefault": "Use System Default ({default})", 16 "global.spellchecker.useDefault": "Use System Default ({default})",
6 "global.spellchecking.autodetect": "Detect language automatically", 17 "global.spellchecking.autodetect": "Detect language automatically",
7 "global.spellchecking.autodetect.short": "Automatic", 18 "global.spellchecking.autodetect.short": "Automatic",
8 "welcome.signupButton": "Create a free account", 19 "global.spellchecking.language": "Spell checking language",
9 "welcome.loginButton": "Login to your account", 20 "import.headline": "Import your Franz 4 services",
10 "welcome.slogan": "Messaging that works for you", 21 "import.notSupportedHeadline": "Services not yet supported in Franz 5",
11 "login.headline": "Sign in", 22 "import.skip.label": "I want to add services manually",
23 "import.submit.label": "Import services",
24 "infobar.buttonChangelog": "What is new?",
25 "infobar.buttonInstallUpdate": "Restart & install update",
26 "infobar.buttonReloadServices": "Reload services",
27 "infobar.requiredRequestsFailed": "Could not load services and user information",
28 "infobar.servicesUpdated": "Your services have been updated.",
29 "infobar.updateAvailable": "A new update for Franz is available.",
30 "invite.email.label": "Email address",
31 "invite.headline.friends": "Invite 3 of your friends or colleagues",
32 "invite.name.label": "Name",
33 "invite.skip.label": "I want to do this later",
34 "invite.submit.label": "Send invites",
35 "invite.successInfo": "Invitations sent successfully",
12 "login.email.label": "Email address", 36 "login.email.label": "Email address",
37 "login.headline": "Sign in",
38 "login.invalidCredentials": "Email or password not valid",
39 "login.link.password": "Reset password",
40 "login.link.signup": "Create a free account",
13 "login.password.label": "Password", 41 "login.password.label": "Password",
42 "login.serverLogout": "Your session expired, please login again.",
14 "login.submit.label": "Sign in", 43 "login.submit.label": "Sign in",
15 "login.invalidCredentials": "Email or password not valid",
16 "login.tokenExpired": "Your session expired, please login again.", 44 "login.tokenExpired": "Your session expired, please login again.",
17 "login.serverLogout": "Your session expired, please login again.", 45 "menu.app.about": "About Franz",
18 "login.link.signup": "Create a free account", 46 "menu.app.hide": "Hide",
19 "login.link.password": "Reset password", 47 "menu.app.hideOthers": "Hide Others",
20 "password.headline": "Reset password", 48 "menu.app.quit": "Quit",
49 "menu.app.settings": "Settings",
50 "menu.app.unhide": "Unhide",
51 "menu.edit": "Edit",
52 "menu.edit.copy": "Copy",
53 "menu.edit.cut": "Cut",
54 "menu.edit.delete": "Delete",
55 "menu.edit.emojiSymbols": "Emoji & Symbols",
56 "menu.edit.paste": "Paste",
57 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
58 "menu.edit.redo": "Redo",
59 "menu.edit.selectAll": "Select All",
60 "menu.edit.speech": "Speech",
61 "menu.edit.startDictation": "Start Dictation",
62 "menu.edit.startSpeaking": "Start Speaking",
63 "menu.edit.stopSpeaking": "Stop Speaking",
64 "menu.edit.undo": "Undo",
65 "menu.file": "File",
66 "menu.help": "Help",
67 "menu.help.changelog": "Changelog",
68 "menu.help.learnMore": "Learn More",
69 "menu.help.privacy": "Privacy Statement",
70 "menu.help.support": "Support",
71 "menu.help.tos": "Terms of Service",
72 "menu.services": "Services",
73 "menu.services.activatePreviousService": "Activate previous service",
74 "menu.services.addNewService": "Add New Service...",
75 "menu.services.setNextServiceActive": "Activate next service",
76 "menu.view": "View",
77 "menu.view.enterFullScreen": "Enter Full Screen",
78 "menu.view.exitFullScreen": "Exit Full Screen",
79 "menu.view.reloadFranz": "Reload Franz",
80 "menu.view.reloadService": "Reload Service",
81 "menu.view.resetZoom": "Actual Size",
82 "menu.view.toggleDevTools": "Toggle Developer Tools",
83 "menu.view.toggleFullScreen": "Toggle Full Screen",
84 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
85 "menu.view.zoomIn": "Zoom In",
86 "menu.view.zoomOut": "Zoom Out",
87 "menu.window": "Window",
88 "menu.window.close": "Close",
89 "menu.window.minimize": "Minimize",
90 "menu.workspaces": "Workspaces",
91 "menu.workspaces.addNewWorkspace": "Add New Workspace...",
92 "menu.workspaces.defaultWorkspace": "All services",
21 "password.email.label": "Email address", 93 "password.email.label": "Email address",
22 "password.submit.label": "Submit", 94 "password.headline": "Reset password",
95 "password.link.login": "Sign in to your account",
96 "password.link.signup": "Create a free account",
23 "password.noUser": "No user with that email address was found", 97 "password.noUser": "No user with that email address was found",
98 "password.submit.label": "Submit",
24 "password.successInfo": "Please check your email", 99 "password.successInfo": "Please check your email",
25 "password.link.signup": "Create a free account", 100 "premiumFeature.button.upgradeAccount": "Upgrade account",
26 "password.link.login": "Sign in to your account",
27 "signup.headline": "Sign up",
28 "signup.firstname.label": "First Name",
29 "signup.lastname.label": "Last Name",
30 "signup.email.label": "Email address",
31 "signup.company.label": "Company",
32 "signup.password.label": "Password",
33 "signup.submit.label": "Create account",
34 "signup.link.login": "Already have an account, sign in?",
35 "signup.emailDuplicate": "A user with that email address already exists",
36 "signup.legal.info": "By creating a Franz account you accept the",
37 "signup.legal.terms": "Terms of service",
38 "signup.legal.privacy": "Privacy Statement",
39 "pricing.headline": "Support Franz", 101 "pricing.headline": "Support Franz",
40 "pricing.support.label": "Select your support plan",
41 "pricing.submit.label": "I want to support the development of Franz",
42 "pricing.link.skipPayment": "I don't want to support the development of Franz.", 102 "pricing.link.skipPayment": "I don't want to support the development of Franz.",
43 "import.headline": "Import your Franz 4 services", 103 "pricing.submit.label": "I want to support the development of Franz",
44 "import.notSupportedHeadline": "Services not yet supported in Franz 5", 104 "pricing.support.label": "Select your support plan",
45 "import.submit.label": "Import services", 105 "service.crashHandler.action": "Reload {name}",
46 "import.skip.label": "I want to add services manually", 106 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
47 "invite.submit.label": "Send invites", 107 "service.crashHandler.headline": "Oh no!",
48 "invite.headline.friends": "Invite 3 of your friends or colleagues", 108 "service.crashHandler.text": "{name} has caused an error.",
49 "invite.name.label": "Name", 109 "service.disabledHandler.action": "Enable {name}",
50 "invite.email.label": "Email address", 110 "service.disabledHandler.headline": "{name} is disabled",
51 "invite.skip.label": "I want to do this later", 111 "service.errorHandler.action": "Reload {name}",
52 "invite.successInfo": "Invitations sent successfully", 112 "service.errorHandler.editAction": "Edit {name}",
53 "subscription.submit.label": "I want to support the development of Franz", 113 "service.errorHandler.headline": "Oh no!",
54 "subscription.paymentSessionError": "Could not initialize payment form", 114 "service.errorHandler.message": "Error",
55 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", 115 "service.errorHandler.text": "{name} has failed to load.",
56 "subscription.features.onpremise": "Add on-premise/hosted services like HipChat",
57 "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost",
58 "subscription.features.encryptedSync": "Encrypted session synchronization",
59 "subscription.features.proxy": "Proxy support for services",
60 "subscription.features.ads": "No ads, ever!",
61 "subscription.features.spellchecker": "Support for spellchecker",
62 "subscription.features.noInterruptions": "No app delays & nagging to upgrade license",
63 "subscription.features.comingSoon": "coming soon",
64 "infobar.servicesUpdated": "Your services have been updated.",
65 "infobar.updateAvailable": "A new update for Franz is available.",
66 "infobar.buttonReloadServices": "Reload services",
67 "infobar.buttonInstallUpdate": "Restart & install update",
68 "infobar.buttonChangelog": "What is new?",
69 "infobar.requiredRequestsFailed": "Could not load services and user information",
70 "sidebar.settings": "Settings",
71 "sidebar.addNewService": "Add new service",
72 "sidebar.muteApp": "Disable notifications & audio",
73 "sidebar.unmuteApp": "Enable notifications & audio",
74 "services.welcome": "Welcome to Franz",
75 "services.getStarted": "Get started", 116 "services.getStarted": "Get started",
76 "settings.searchService": "Search service", 117 "services.welcome": "Welcome to Franz",
77 "settings.account.headline": "Account", 118 "settings.account.account.editButton": "Edit account",
78 "settings.account.headlineSubscription": "Your subscription",
79 "settings.account.headlineUpgrade": "Upgrade your account & support Franz",
80 "settings.account.headlineInvoices": "Invoices",
81 "settings.account.headlineDangerZone": "Danger Zone",
82 "settings.account.manageSubscription.label": "Manage your subscription",
83 "settings.account.accountType.basic": "Basic Account", 119 "settings.account.accountType.basic": "Basic Account",
84 "settings.account.accountType.premium": "Premium Supporter Account", 120 "settings.account.accountType.premium": "Premium Supporter Account",
85 "settings.account.account.editButton": "Edit account",
86 "settings.account.invoiceDownload": "Download",
87 "settings.account.userInfoRequestFailed": "Could not load user information",
88 "settings.account.tryReloadUserInfoRequest": "Try again",
89 "settings.account.headlineProfile": "Update profile",
90 "settings.account.headlineAccount": "Account information",
91 "settings.account.headlinePassword": "Change password",
92 "settings.account.successInfo": "Your changes have been saved",
93 "settings.account.buttonSave": "Update profile", 121 "settings.account.buttonSave": "Update profile",
94 "settings.account.deleteAccount": "Delete account", 122 "settings.account.deleteAccount": "Delete account",
95 "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.",
96 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", 123 "settings.account.deleteEmailSent": "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
124 "settings.account.deleteInfo": "If you don't need your Franz account any longer, you can delete your account and all related data here.",
125 "settings.account.headline": "Account",
126 "settings.account.headlineAccount": "Account information",
127 "settings.account.headlineDangerZone": "Danger Zone",
128 "settings.account.headlineInvoices": "Invoices",
129 "settings.account.headlinePassword": "Change password",
130 "settings.account.headlineProfile": "Update profile",
131 "settings.account.headlineSubscription": "Your subscription",
132 "settings.account.headlineUpgrade": "Upgrade your account & support Franz",
133 "settings.account.invoiceDownload": "Download",
134 "settings.account.manageSubscription.label": "Manage your subscription",
135 "settings.account.successInfo": "Your changes have been saved",
136 "settings.account.tryReloadServices": "Try again",
137 "settings.account.tryReloadUserInfoRequest": "Try again",
138 "settings.account.userInfoRequestFailed": "Could not load user information",
139 "settings.app.buttonClearAllCache": "Clear cache",
140 "settings.app.buttonInstallUpdate": "Restart & install update",
141 "settings.app.buttonSearchForUpdate": "Check for updates",
142 "settings.app.cacheInfo": "Franz cache is currently using {size} of disk space.",
143 "settings.app.currentVersion": "Current version:",
144 "settings.app.form.autoLaunchInBackground": "Open in background",
145 "settings.app.form.autoLaunchOnStart": "Launch Franz on start",
146 "settings.app.form.beta": "Include beta versions",
147 "settings.app.form.darkMode": "Join the Dark Side",
148 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
149 "settings.app.form.enableSpellchecking": "Enable spell checking",
150 "settings.app.form.enableSystemTray": "Show Franz in system tray",
151 "settings.app.form.language": "Language",
152 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray",
153 "settings.app.form.runInBackground": "Keep Franz in background when closing the window",
154 "settings.app.form.showDisabledServices": "Display disabled services tabs",
155 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
156 "settings.app.headline": "Settings",
157 "settings.app.headlineAdvanced": "Advanced",
158 "settings.app.headlineAppearance": "Appearance",
159 "settings.app.headlineGeneral": "General",
160 "settings.app.headlineLanguage": "Language",
161 "settings.app.headlineUpdates": "Updates",
162 "settings.app.restartRequired": "Changes require restart",
163 "settings.app.subheadlineCache": "Cache",
164 "settings.app.translationHelp": "Help us to translate Franz into your language.",
165 "settings.app.updateStatusAvailable": "Update available, downloading...",
166 "settings.app.updateStatusSearching": "Is searching for update",
167 "settings.app.updateStatusUpToDate": "You are using the latest version of Franz",
97 "settings.invite.headline": "Invite Friends", 168 "settings.invite.headline": "Invite Friends",
98 "settings.navigation.availableServices": "Available services",
99 "settings.navigation.yourServices": "Your services",
100 "settings.navigation.yourWorkspaces": "Your workspaces",
101 "settings.navigation.account": "Account", 169 "settings.navigation.account": "Account",
102 "settings.navigation.settings": "Settings", 170 "settings.navigation.availableServices": "Available services",
103 "settings.navigation.inviteFriends": "Invite Friends", 171 "settings.navigation.inviteFriends": "Invite Friends",
104 "settings.navigation.logout": "Logout", 172 "settings.navigation.logout": "Logout",
105 "settings.recipes.headline": "Available services", 173 "settings.navigation.settings": "Settings",
106 "settings.recipes.mostPopular": "Most popular", 174 "settings.navigation.yourServices": "Your services",
175 "settings.navigation.yourWorkspaces": "Your workspaces",
107 "settings.recipes.all": "All services", 176 "settings.recipes.all": "All services",
108 "settings.recipes.dev": "Development", 177 "settings.recipes.dev": "Development",
178 "settings.recipes.headline": "Available services",
179 "settings.recipes.missingService": "Missing a service?",
180 "settings.recipes.mostPopular": "Most popular",
109 "settings.recipes.nothingFound": "Sorry, but no service matched your search term.", 181 "settings.recipes.nothingFound": "Sorry, but no service matched your search term.",
110 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added", 182 "settings.recipes.servicesSuccessfulAddedInfo": "Service successfully added",
111 "settings.recipes.missingService": "Missing a service?", 183 "settings.searchService": "Search service",
112 "settings.service.form.saveButton": "Save service", 184 "settings.service.error.goBack": "Back to services",
113 "settings.service.form.deleteButton": "Delete service", 185 "settings.service.error.headline": "Error",
114 "settings.service.form.availableServices": "Available services", 186 "settings.service.error.message": "Could not load service recipe.",
115 "settings.service.form.yourServices": "Your services",
116 "settings.service.form.addServiceHeadline": "Add {name}", 187 "settings.service.form.addServiceHeadline": "Add {name}",
117 "settings.service.form.editServiceHeadline": "Edit {name}", 188 "settings.service.form.availableServices": "Available services",
118 "settings.service.form.tabHosted": "Hosted", 189 "settings.service.form.customUrl": "Custom server",
119 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
120 "settings.service.form.useHostedService": "Use the hosted {name} service.",
121 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
122 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.", 190 "settings.service.form.customUrlPremiumInfo": "To add self hosted services, you need a Franz Premium Supporter Account.",
123 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account", 191 "settings.service.form.customUrlUpgradeAccount": "Upgrade your account",
124 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", 192 "settings.service.form.customUrlValidationError": "Could not validate custom {name} server.",
125 "settings.service.form.name": "Name", 193 "settings.service.form.deleteButton": "Delete service",
126 "settings.service.form.enableService": "Enable service", 194 "settings.service.form.editServiceHeadline": "Edit {name}",
127 "settings.service.form.enableNotification": "Enable notifications",
128 "settings.service.form.enableBadge": "Show unread message badges",
129 "settings.service.form.team": "Team",
130 "settings.service.form.customUrl": "Custom server",
131 "settings.service.form.indirectMessages": "Show message badge for all new messages",
132 "settings.service.form.enableAudio": "Enable audio", 195 "settings.service.form.enableAudio": "Enable audio",
133 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", 196 "settings.service.form.enableBadge": "Show unread message badges",
134 "settings.service.form.headlineNotifications": "Notifications", 197 "settings.service.form.enableDarkMode": "Enable Dark Mode",
198 "settings.service.form.enableNotification": "Enable notifications",
199 "settings.service.form.enableService": "Enable service",
135 "settings.service.form.headlineBadges": "Unread message badges", 200 "settings.service.form.headlineBadges": "Unread message badges",
136 "settings.service.form.headlineGeneral": "General", 201 "settings.service.form.headlineGeneral": "General",
202 "settings.service.form.headlineNotifications": "Notifications",
137 "settings.service.form.icon": "Custom icon", 203 "settings.service.form.icon": "Custom icon",
138 "settings.service.form.iconDelete": "Delete", 204 "settings.service.form.iconDelete": "Delete",
139 "settings.service.form.iconUpload": "Drop your image, or click here", 205 "settings.service.form.iconUpload": "Drop your image, or click here",
140 "settings.service.form.enableDarkMode": "Enable Dark Mode", 206 "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
207 "settings.service.form.indirectMessages": "Show message badge for all new messages",
208 "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted",
209 "settings.service.form.name": "Name",
141 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings", 210 "settings.service.form.proxy.headline": "HTTP/HTTPS Proxy Settings",
142 "settings.service.form.proxy.isEnabled": "Use Proxy",
143 "settings.service.form.proxy.host": "Proxy Host/IP", 211 "settings.service.form.proxy.host": "Proxy Host/IP",
144 "settings.service.form.proxy.port": "Port",
145 "settings.service.form.proxy.user": "User (optional)",
146 "settings.service.form.proxy.password": "Password (optional)",
147 "settings.service.form.proxy.info": "Proxy settings will not synced with the Franz servers.", 212 "settings.service.form.proxy.info": "Proxy settings will not synced with the Franz servers.",
213 "settings.service.form.proxy.isEnabled": "Use Proxy",
214 "settings.service.form.proxy.password": "Password (optional)",
215 "settings.service.form.proxy.port": "Port",
148 "settings.service.form.proxy.restartInfo": "Please restart Franz after changing proxy Settings.", 216 "settings.service.form.proxy.restartInfo": "Please restart Franz after changing proxy Settings.",
149 "settings.service.form.spellcheckerLanguage": "Spell checking Language", 217 "settings.service.form.proxy.user": "User (optional)",
150 "settings.service.form.spellcheckerLanguage.default": "Use System Default ({default})", 218 "settings.service.form.saveButton": "Save service",
151 "settings.service.error.headline": "Error", 219 "settings.service.form.tabHosted": "Hosted",
152 "settings.service.error.goBack": "Back to services", 220 "settings.service.form.tabOnPremise": "Self hosted ⭐️",
153 "settings.service.error.message": "Could not load service recipe.", 221 "settings.service.form.team": "Team",
154 "settings.services.tooltip.isDisabled": "Service is disabled", 222 "settings.service.form.useHostedService": "Use the hosted {name} service.",
155 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", 223 "settings.service.form.yourServices": "Your services",
156 "settings.services.tooltip.isMuted": "All sounds are muted", 224 "settings.services.deletedInfo": "Service has been deleted",
225 "settings.services.discoverServices": "Discover services",
157 "settings.services.headline": "Your services", 226 "settings.services.headline": "Your services",
158 "settings.services.noServicesAdded": "You haven't added any services yet.", 227 "settings.services.noServicesAdded": "You haven't added any services yet.",
159 "settings.services.discoverServices": "Discover services", 228 "settings.services.servicesRequestFailed": "Could not load your services",
229 "settings.services.tooltip.isDisabled": "Service is disabled",
230 "settings.services.tooltip.isMuted": "All sounds are muted",
231 "settings.services.tooltip.notificationsDisabled": "Notifications are disabled",
160 "settings.services.updatedInfo": "Your changes have been saved", 232 "settings.services.updatedInfo": "Your changes have been saved",
161 "settings.services.deletedInfo": "Service has been deleted", 233 "settings.user.form.accountType.company": "Company",
162 "settings.app.headline": "Settings", 234 "settings.user.form.accountType.individual": "Individual",
163 "settings.app.headlineGeneral": "General", 235 "settings.user.form.accountType.label": "Account type",
164 "settings.app.headlineLanguage": "Language", 236 "settings.user.form.accountType.non-profit": "Non-Profit",
165 "settings.app.headlineUpdates": "Updates", 237 "settings.user.form.currentPassword": "Current password",
166 "settings.app.headlineAppearance": "Appearance", 238 "settings.user.form.email": "Email",
167 "settings.app.headlineAdvanced": "Advanced",
168 "settings.app.buttonSearchForUpdate": "Check for updates",
169 "settings.app.buttonInstallUpdate": "Restart & install update",
170 "settings.app.updateStatusSearching": "Is searching for update",
171 "settings.app.updateStatusAvailable": "Update available, downloading...",
172 "settings.app.updateStatusUpToDate": "You are using the latest version of Franz",
173 "settings.app.subheadlineCache": "Cache",
174 "settings.app.cacheInfo": "Franz cache is currently using {size} of disk space.",
175 "settings.app.buttonClearAllCache": "Clear cache",
176 "settings.app.form.autoLaunchOnStart": "Launch Franz on start",
177 "settings.app.form.autoLaunchInBackground": "Open in background",
178 "settings.app.form.enableSystemTray": "Show Franz in system tray",
179 "settings.app.form.darkMode": "Join the Dark Side",
180 "settings.app.form.minimizeToSystemTray": "Minimize Franz to system tray",
181 "settings.app.form.enableMenuBar": "Show Franz in Menu Bar",
182 "settings.app.form.hideDockIcon": "Hide Franz icon in Dock",
183 "settings.app.form.runInBackground": "Keep Franz in background when closing the window",
184 "settings.app.form.language": "Language",
185 "settings.app.form.enableSpellchecking": "Enable spell checking",
186 "settings.app.form.spellcheckerLanguage": "Spell checking language",
187 "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration",
188 "settings.app.form.showDisabledServices": "Display disabled services tabs",
189 "settings.app.form.showMessagesBadgesWhenMuted": "Show unread message badge when notifications are disabled",
190 "settings.app.form.beta": "Include beta versions",
191 "settings.app.translationHelp": "Help us to translate Franz into your language.",
192 "settings.app.currentVersion": "Current version:",
193 "settings.app.restartRequired": "Changes require restart",
194 "settings.user.form.firstname": "First Name", 239 "settings.user.form.firstname": "First Name",
195 "settings.user.form.lastname": "Last Name", 240 "settings.user.form.lastname": "Last Name",
196 "settings.user.form.email": "Email",
197 "settings.user.form.currentPassword": "Current password",
198 "settings.user.form.newPassword": "New password", 241 "settings.user.form.newPassword": "New password",
199 "settings.user.form.accountType.label": "Account type",
200 "settings.user.form.accountType.individual": "Individual",
201 "settings.user.form.accountType.non-profit": "Non-Profit",
202 "settings.user.form.accountType.company": "Company",
203 "settings.workspaces.headline": "Your workspaces",
204 "settings.workspace.add.form.submitButton": "Create Workspace",
205 "settings.workspace.add.form.name": "Name", 242 "settings.workspace.add.form.name": "Name",
206 "settings.workspace.form.yourWorkspaces": "Your workspaces", 243 "settings.workspace.add.form.submitButton": "Save workspace",
244 "settings.workspace.form.buttonDelete": "Delete workspace",
245 "settings.workspace.form.buttonSave": "Save workspace",
207 "settings.workspace.form.name": "Name", 246 "settings.workspace.form.name": "Name",
208 "settings.workspace.form.buttonDelete": "Delete Workspace",
209 "settings.workspace.form.buttonSave": "Save Workspace",
210 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace", 247 "settings.workspace.form.servicesInWorkspaceHeadline": "Services in this Workspace",
248 "settings.workspace.form.yourWorkspaces": "Your workspaces",
249 "settings.workspaces.headline": "Your workspaces",
250 "settings.workspaces.noWorkspacesAdded": "You haven't added any workspaces yet.",
251 "sidebar.addNewService": "Add new service",
252 "sidebar.muteApp": "Disable notifications & audio",
253 "sidebar.settings": "Settings",
254 "sidebar.unmuteApp": "Enable notifications & audio",
255 "signup.company.label": "Company",
256 "signup.email.label": "Email address",
257 "signup.emailDuplicate": "A user with that email address already exists",
258 "signup.firstname.label": "First Name",
259 "signup.headline": "Sign up",
260 "signup.lastname.label": "Last Name",
261 "signup.legal.info": "By creating a Franz account you accept the",
262 "signup.legal.privacy": "Privacy Statement",
263 "signup.legal.terms": "Terms of service",
264 "signup.link.login": "Already have an account, sign in?",
265 "signup.password.label": "Password",
266 "signup.submit.label": "Create account",
267 "subscription.euTaxInfo": "EU residents: local sales tax may apply",
268 "subscription.features.ads": "No ads, ever!",
269 "subscription.features.comingSoon": "coming soon",
270 "subscription.features.noInterruptions": "No app delays & nagging to upgrade license",
271 "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost",
272 "subscription.features.proxy": "Proxy support for services",
273 "subscription.features.spellchecker": "Support for spellchecker",
274 "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes",
275 "subscription.paymentSessionError": "Could not initialize payment form",
276 "subscription.submit.label": "I want to support the development of Franz",
211 "subscription.type.free": "free", 277 "subscription.type.free": "free",
212 "subscription.type.month": "month", 278 "subscription.type.month": "month",
213 "subscription.type.year": "year", 279 "subscription.type.year": "year",
214 "subscription.euTaxInfo": "EU residents: local sales tax may apply",
215 "subscriptionPopup.buttonCancel": "Cancel", 280 "subscriptionPopup.buttonCancel": "Cancel",
216 "subscriptionPopup.buttonDone": "Done", 281 "subscriptionPopup.buttonDone": "Done",
217 "tabs.item.reload": "Reload", 282 "tabs.item.deleteService": "Delete service",
218 "tabs.item.edit": "Edit",
219 "tabs.item.disableNotifications": "Disable notifications",
220 "tabs.item.enableNotification": "Enable notifications",
221 "tabs.item.disableAudio": "Disable audio", 283 "tabs.item.disableAudio": "Disable audio",
222 "tabs.item.enableAudio": "Enable audio", 284 "tabs.item.disableNotifications": "Disable notifications",
223 "tabs.item.disableService": "Disable service", 285 "tabs.item.disableService": "Disable service",
286 "tabs.item.edit": "Edit",
287 "tabs.item.enableAudio": "Enable audio",
288 "tabs.item.enableNotification": "Enable notifications",
224 "tabs.item.enableService": "Enable service", 289 "tabs.item.enableService": "Enable service",
225 "tabs.item.deleteService": "Delete service", 290 "tabs.item.reload": "Reload",
226 "service.crashHandler.headline": "Oh no!",
227 "service.crashHandler.text": "{name} has caused an error.",
228 "service.crashHandler.action": "Reload {name}",
229 "service.crashHandler.autoReload": "Trying to automatically restore {name} in {seconds} seconds",
230 "service.errorHandler.headline": "Oh no!",
231 "service.errorHandler.text": "{name} has failed to load.",
232 "service.errorHandler.message": "Error",
233 "service.errorHandler.action": "Reload {name}",
234 "service.errorHandler.editAction": "Edit {name}",
235 "service.disabledHandler.headline": "{name} is disabled",
236 "service.disabledHandler.action": "Enable {name}",
237 "menu.edit": "Edit",
238 "menu.edit.undo": "Undo",
239 "menu.edit.redo": "Redo",
240 "menu.edit.cut": "Cut",
241 "menu.edit.copy": "Copy",
242 "menu.edit.paste": "Paste",
243 "menu.edit.pasteAndMatchStyle": "Paste And Match Style",
244 "menu.edit.delete": "Delete",
245 "menu.edit.selectAll": "Select All",
246 "menu.edit.speech": "Speech",
247 "menu.edit.startSpeaking": "Start Speaking",
248 "menu.edit.stopSpeaking": "Stop Speaking",
249 "menu.edit.startDictation": "Start Dictation",
250 "menu.edit.emojiSymbols": "Emoji & Symbols",
251 "menu.view.resetZoom": "Actual Size",
252 "menu.view.zoomIn": "Zoom In",
253 "menu.view.zoomOut": "Zoom Out",
254 "menu.view.enterFullScreen": "Enter Full Screen",
255 "menu.view.exitFullScreen": "Exit Full Screen",
256 "menu.view.toggleFullScreen": "Toggle Full Screen",
257 "menu.view.toggleDevTools": "Toggle Developer Tools",
258 "menu.view.toggleServiceDevTools": "Toggle Service Developer Tools",
259 "menu.view.reloadService": "Reload Service",
260 "menu.view.reloadFranz": "Reload Franz",
261 "menu.window.minimize": "Minimize",
262 "menu.window.close": "Close",
263 "menu.help.learnMore": "Learn More",
264 "menu.help.changelog": "Changelog",
265 "menu.help.support": "Support",
266 "menu.help.tos": "Terms of Service",
267 "menu.help.privacy": "Privacy Statement",
268 "menu.file": "File",
269 "menu.view": "View",
270 "menu.services": "Services",
271 "menu.window": "Window",
272 "menu.help": "Help",
273 "menu.app.about": "About Franz",
274 "menu.app.settings": "Settings",
275 "menu.app.hide": "Hide",
276 "menu.app.hideOthers": "Hide Others",
277 "menu.app.unhide": "Unhide",
278 "menu.app.quit": "Quit",
279 "menu.services.addNewService": "Add New Service",
280 "menu.workspaces": "Workspaces",
281 "menu.workspaces.defaultWorkspace": "All services",
282 "menu.workspaces.addNewWorkspace": "Add New Workspace",
283 "validation.required": "{field} is required",
284 "validation.email": "{field} is not valid", 291 "validation.email": "{field} is not valid",
285 "validation.url": "{field} is not a valid URL",
286 "validation.minLength": "{field} should be at least {length} characters long", 292 "validation.minLength": "{field} should be at least {length} characters long",
287 "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", 293 "validation.oneRequired": "At least one is required",
288 "feature.delayApp.action": "Get a Franz Supporter License", 294 "validation.required": "{field} is required",
289 "feature.delayApp.text": "Franz will continue in {seconds} seconds.", 295 "validation.url": "{field} is not a valid URL",
290 "premiumFeature.button.upgradeAccount": "Upgrade account", 296 "welcome.loginButton": "Login to your account",
291 "app.errorHandler.headline": "Something went wrong", 297 "welcome.signupButton": "Create a free account"
292 "app.errorHandler.action": "Reload", 298} \ No newline at end of file
293 "feature.shareFranz.headline": "Franz is better together!",
294 "feature.shareFranz.text": "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
295 "feature.shareFranz.action.email": "Send as email",
296 "feature.shareFranz.action.facebook": "Share on Facebook",
297 "feature.shareFranz.action.twitter": "Share on Twitter",
298 "feature.shareFranz.shareText.email": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
299 "feature.shareFranz.shareText.twitter": "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz"
300}
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json
index 669b4d2dd..3ac23d9a5 100644
--- a/src/i18n/locales/es.json
+++ b/src/i18n/locales/es.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Recargar", 2 "app.errorHandler.action" : "Recargar",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Ha surgido un error",
4 "feature.delayApp.action" : "Consigue una Licencia de Soporte de Franz", 4 "feature.delayApp.action" : "Consigue una Licencia de Soporte de Franz",
5 "feature.delayApp.headline" : "Por favor, compra una Licencia de Soporte de Franz para saltar la espera", 5 "feature.delayApp.headline" : "Por favor, compra una Licencia de Soporte de Franz para saltar la espera",
6 "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", 6 "feature.delayApp.text" : "Franz continuará en {seconds} segundos.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "No es posible conectarse a los servicios en línea de Franz.", 14 "global.api.unhealthy" : "No es posible conectarse a los servicios en línea de Franz.",
8 "global.notConnectedToTheInternet" : "No estás conectado a Internet", 15 "global.notConnectedToTheInternet" : "No estás conectado a Internet",
16 "global.spellchecker.useDefault" : "Utilizar estándar del sistema ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Corrector de ortografía",
9 "import.headline" : "Importa tus servicios de Franz 4", 20 "import.headline" : "Importa tus servicios de Franz 4",
10 "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5", 21 "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5",
11 "import.skip.label" : "Quiero agregar servicios manualmente", 22 "import.skip.label" : "Quiero agregar servicios manualmente",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Editar {name}", 107 "service.errorHandler.editAction" : "Editar {name}",
97 "service.errorHandler.headline" : "¡Oh, no!", 108 "service.errorHandler.headline" : "¡Oh, no!",
98 "service.errorHandler.message" : "Error", 109 "service.errorHandler.message" : "Error",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} ha fallado la carga",
100 "services.getStarted" : "Primeros pasos", 111 "services.getStarted" : "Primeros pasos",
101 "services.welcome" : "Bienvenido a Franz", 112 "services.welcome" : "Bienvenido a Franz",
102 "settings.account.account.editButton" : "Editar cuenta", 113 "settings.account.account.editButton" : "Editar cuenta",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Mostrar señal de notificación para todos los mensajes nuevos", 203 "settings.service.form.indirectMessages" : "Mostrar señal de notificación para todos los mensajes nuevos",
193 "settings.service.form.isMutedInfo" : "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados", 204 "settings.service.form.isMutedInfo" : "Cuando estén desactivados, todos los sonidos de notificación y la reproducción de audio serán silenciados",
194 "settings.service.form.name" : "Nombre", 205 "settings.service.form.name" : "Nombre",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Ajustes Proxy HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Las configuraciones de Proxy no se sincronizarán con los servidores de Franz.", 208 "settings.service.form.proxy.info" : "Las configuraciones de Proxy no se sincronizarán con los servidores de Franz.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Use Proxy",
199 "settings.service.form.proxy.password" : "Contraseña (opcional)", 210 "settings.service.form.proxy.password" : "Contraseña (opcional)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Puerto",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Por favor reinicie Franz despues de modificar los ajustes proxy.",
202 "settings.service.form.proxy.user" : "Usuario (opcional)", 213 "settings.service.form.proxy.user" : "Usuario (opcional)",
203 "settings.service.form.saveButton" : "Guardar servicio", 214 "settings.service.form.saveButton" : "Guardar servicio",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Marcar faltas de ortografía",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Utilizar estándar del sistema ({default})",
206 "settings.service.form.tabHosted" : "Alojado", 217 "settings.service.form.tabHosted" : "Alojado",
207 "settings.service.form.tabOnPremise" : "Auto alojado ⭐️", 218 "settings.service.form.tabOnPremise" : "Auto alojado ⭐️",
208 "settings.service.form.team" : "Equipo", 219 "settings.service.form.team" : "Equipo",
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json
index a83767f1e..8af875a3d 100644
--- a/src/i18n/locales/fr.json
+++ b/src/i18n/locales/fr.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Recharger", 2 "app.errorHandler.action" : "Recharger",
3 "app.errorHandler.headline" : "Une erreur s'est produite.", 3 "app.errorHandler.headline" : "Une erreur s'est produite",
4 "feature.delayApp.action" : "Obtenez une licence de Supporter Franz", 4 "feature.delayApp.action" : "Obtenez une licence de Supporter Franz",
5 "feature.delayApp.headline" : "Veuillez acheter une licence de Supporter Franz pour sauter le temps d'attente", 5 "feature.delayApp.headline" : "Veuillez acheter une licence de Supporter Franz pour sauter le temps d'attente",
6 "feature.delayApp.text" : "Franz continuera dans {seconds} secondes.", 6 "feature.delayApp.text" : "Franz reprendra dans {seconds} secondes.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", 14 "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz",
8 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", 15 "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.",
16 "global.spellchecker.useDefault" : "Par défaut ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Langue de la vérification orthographique",
9 "import.headline" : "Importez vos services depuis la version 4 de Franz.", 20 "import.headline" : "Importez vos services depuis la version 4 de Franz.",
10 "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5", 21 "import.notSupportedHeadline" : "Ces services ne sont pas encore supportés par Franz 5",
11 "import.skip.label" : "Je veux ajouter des services manuellement", 22 "import.skip.label" : "Je veux ajouter des services manuellement",
@@ -198,10 +209,10 @@
198 "settings.service.form.proxy.isEnabled" : "Utiliser un proxy", 209 "settings.service.form.proxy.isEnabled" : "Utiliser un proxy",
199 "settings.service.form.proxy.password" : "Mot de passe (facultatif)", 210 "settings.service.form.proxy.password" : "Mot de passe (facultatif)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifier les paramètres proxy.", 212 "settings.service.form.proxy.restartInfo" : "Veuillez redémarrer Franz après avoir modifié les paramètres proxy.",
202 "settings.service.form.proxy.user" : "Utilisateur (facultatif)", 213 "settings.service.form.proxy.user" : "Utilisateur (facultatif)",
203 "settings.service.form.saveButton" : "Enregistrer le service", 214 "settings.service.form.saveButton" : "Enregistrer le service",
204 "settings.service.form.spellcheckerLanguage" : "Veuillez vérifier l'épellation Langage", 215 "settings.service.form.spellcheckerLanguage" : "Langue de vérification d'orthographe",
205 "settings.service.form.spellcheckerLanguage.default" : "Par défaut ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Par défaut ({default})",
206 "settings.service.form.tabHosted" : "Hébergé", 217 "settings.service.form.tabHosted" : "Hébergé",
207 "settings.service.form.tabOnPremise" : "Auto-hébergé ⭐️", 218 "settings.service.form.tabOnPremise" : "Auto-hébergé ⭐️",
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json
index 0d3d8623e..2b3d39b73 100644
--- a/src/i18n/locales/ga.json
+++ b/src/i18n/locales/ga.json
@@ -4,8 +4,19 @@
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne", 14 "global.api.unhealthy" : "Ní féidir nascadh le seirbhísí Franz ar líne",
8 "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.", 15 "global.notConnectedToTheInternet" : "Níl tú nasctha leis an Idirlíon.",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "Iompórtáil do sheirbhísí Franz 4", 20 "import.headline" : "Iompórtáil do sheirbhísí Franz 4",
10 "import.notSupportedHeadline" : "Níl na seirbhísí seo taca ag Franz 5 go fóill", 21 "import.notSupportedHeadline" : "Níl na seirbhísí seo taca ag Franz 5 go fóill",
11 "import.skip.label" : "Ba mhaith liom seirbhísí a chur de láimh", 22 "import.skip.label" : "Ba mhaith liom seirbhísí a chur de láimh",
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json
index 2ff69755d..dc1d579fa 100644
--- a/src/i18n/locales/hr.json
+++ b/src/i18n/locales/hr.json
@@ -4,8 +4,19 @@
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", 14 "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ",
8 "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", 15 "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "Uvezite svoje Franc 4 servise. ", 20 "import.headline" : "Uvezite svoje Franc 4 servise. ",
10 "import.notSupportedHeadline" : "Franc 5 trenutno ne podržava taj servis", 21 "import.notSupportedHeadline" : "Franc 5 trenutno ne podržava taj servis",
11 "import.skip.label" : "Želim ručno dodati ove usluge", 22 "import.skip.label" : "Želim ručno dodati ove usluge",
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json
index 0b396cf3b..ddaffeebb 100644
--- a/src/i18n/locales/hu.json
+++ b/src/i18n/locales/hu.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Újratöltés", 2 "app.errorHandler.action" : "Újratöltés",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Valami nem jött össze",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Szerezz egy Franz Támogatói Liszencet",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "A Franz továbblép {seconds} másodperc múlva.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", 14 "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz",
8 "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", 15 "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.",
16 "global.spellchecker.useDefault" : "Rendszer alapbeállítás használata ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Helyesírás-ellenőrző nyelve",
9 "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből", 20 "import.headline" : "Importáld szolgáltatásaidat a Franz 4-ből",
10 "import.notSupportedHeadline" : "Még nem támogatott szolgáltatások a Franz 5-ben", 21 "import.notSupportedHeadline" : "Még nem támogatott szolgáltatások a Franz 5-ben",
11 "import.skip.label" : "Manuálisan szeretném hozzáadni a szolgáltatásokat", 22 "import.skip.label" : "Manuálisan szeretném hozzáadni a szolgáltatásokat",
@@ -51,7 +62,7 @@
51 "menu.edit.startSpeaking" : "Beszélgetés kezdeményezése", 62 "menu.edit.startSpeaking" : "Beszélgetés kezdeményezése",
52 "menu.edit.stopSpeaking" : "Beszéd vége", 63 "menu.edit.stopSpeaking" : "Beszéd vége",
53 "menu.edit.undo" : "Visszavonás", 64 "menu.edit.undo" : "Visszavonás",
54 "menu.file" : "fájl", 65 "menu.file" : "Fájl",
55 "menu.help" : "Súgó", 66 "menu.help" : "Súgó",
56 "menu.help.changelog" : "Változások listája", 67 "menu.help.changelog" : "Változások listája",
57 "menu.help.learnMore" : "Tudjon meg többet", 68 "menu.help.learnMore" : "Tudjon meg többet",
@@ -59,16 +70,16 @@
59 "menu.help.support" : "Támogatás", 70 "menu.help.support" : "Támogatás",
60 "menu.help.tos" : "Felhasználói feltételek", 71 "menu.help.tos" : "Felhasználói feltételek",
61 "menu.services" : "Szolgáltatások", 72 "menu.services" : "Szolgáltatások",
62 "menu.services.addNewService" : "Új kiszolgál hozzáadása", 73 "menu.services.addNewService" : "Új szolgáltats hozzáadása...",
63 "menu.view" : "Nézet", 74 "menu.view" : "Nézet",
64 "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból", 75 "menu.view.enterFullScreen" : "Kilépés a teljes képernyős módból",
65 "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból", 76 "menu.view.exitFullScreen" : "Kilépés a teljes képernyős módból",
66 "menu.view.reloadFranz" : "Franz újrainditása", 77 "menu.view.reloadFranz" : "Franz újrainditása",
67 "menu.view.reloadService" : "Kiszolgál újraindítása", 78 "menu.view.reloadService" : "Szolgáltats újraindítása",
68 "menu.view.resetZoom" : "Tényleges méret", 79 "menu.view.resetZoom" : "Tényleges méret",
69 "menu.view.toggleDevTools" : "fejlesztői eszközök bekapcsolása", 80 "menu.view.toggleDevTools" : "Fejlesztői eszközök ki\/bekapcsolása",
70 "menu.view.toggleFullScreen" : "Váltás Teljes képernyős módra", 81 "menu.view.toggleFullScreen" : "Teljes képernyős mód ki\/bekapcsolása",
71 "menu.view.toggleServiceDevTools" : "Kiszolgál Fejlesztői Eszközök Bekapcsolása", 82 "menu.view.toggleServiceDevTools" : "Szolgáltats Fejlesztői Eszközök ki\/bekapcsolása",
72 "menu.view.zoomIn" : "Nagyítás", 83 "menu.view.zoomIn" : "Nagyítás",
73 "menu.view.zoomOut" : "Kicsinyítés", 84 "menu.view.zoomOut" : "Kicsinyítés",
74 "menu.window" : "Ablak", 85 "menu.window" : "Ablak",
@@ -81,13 +92,13 @@
81 "password.noUser" : "Nem található felhasználó a megadott email címmel", 92 "password.noUser" : "Nem található felhasználó a megadott email címmel",
82 "password.submit.label" : "Küldés", 93 "password.submit.label" : "Küldés",
83 "password.successInfo" : "Ellenőrizd az email fiókodat", 94 "password.successInfo" : "Ellenőrizd az email fiókodat",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Fiók frissítése",
85 "pricing.headline" : "Támogasd a Franz-ot", 96 "pricing.headline" : "Támogasd a Franz-ot",
86 "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.", 97 "pricing.link.skipPayment" : "Nem szeretném támogatni a Franz fejlesztését.",
87 "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését.", 98 "pricing.submit.label" : "Támogatni szeretném a Franz fejlesztését",
88 "pricing.support.label" : "Válaszd ki a támogatás módját", 99 "pricing.support.label" : "Válaszd ki a támogatás módját",
89 "service.crashHandler.action" : "{name} újratöltése", 100 "service.crashHandler.action" : "{name} újratöltése",
90 "service.crashHandler.autoReload" : "Megpróbáljuk automatikusan helyreállítani {name}-t {seconds} mp-en belül", 101 "service.crashHandler.autoReload" : "{name} automatikusan helyreállítása {seconds} másodpercen belül",
91 "service.crashHandler.headline" : "Jajj ne!", 102 "service.crashHandler.headline" : "Jajj ne!",
92 "service.crashHandler.text" : "{name} hibát okozott.", 103 "service.crashHandler.text" : "{name} hibát okozott.",
93 "service.disabledHandler.action" : "{name} engedélyezése", 104 "service.disabledHandler.action" : "{name} engedélyezése",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "{name} szerkesztése", 107 "service.errorHandler.editAction" : "{name} szerkesztése",
97 "service.errorHandler.headline" : "Jajj ne!", 108 "service.errorHandler.headline" : "Jajj ne!",
98 "service.errorHandler.message" : "Hiba", 109 "service.errorHandler.message" : "Hiba",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} nem tudott betöldni.",
100 "services.getStarted" : "Kezdj hozzá", 111 "services.getStarted" : "Kezdj hozzá",
101 "services.welcome" : "Üdvözöl a Franz", 112 "services.welcome" : "Üdvözöl a Franz",
102 "settings.account.account.editButton" : "Fiók szerkesztése", 113 "settings.account.account.editButton" : "Fiók szerkesztése",
@@ -108,7 +119,7 @@
108 "settings.account.deleteInfo" : "Ha még nem szeretnéd fenntartani a Franz-fiókodat, akkor itt törölheted minden hozzá kapcsolódó adattal együtt.", 119 "settings.account.deleteInfo" : "Ha még nem szeretnéd fenntartani a Franz-fiókodat, akkor itt törölheted minden hozzá kapcsolódó adattal együtt.",
109 "settings.account.headline" : "Fiók", 120 "settings.account.headline" : "Fiók",
110 "settings.account.headlineAccount" : "Fiókinformációk", 121 "settings.account.headlineAccount" : "Fiókinformációk",
111 "settings.account.headlineDangerZone" : "Veszélyes terület, óvatosan!", 122 "settings.account.headlineDangerZone" : "Veszélyes terület",
112 "settings.account.headlineInvoices" : "Számlák", 123 "settings.account.headlineInvoices" : "Számlák",
113 "settings.account.headlinePassword" : "Jelszócsere", 124 "settings.account.headlinePassword" : "Jelszócsere",
114 "settings.account.headlineProfile" : "Profil frissítése", 125 "settings.account.headlineProfile" : "Profil frissítése",
@@ -122,13 +133,13 @@
122 "settings.app.buttonClearAllCache" : "Gyorsítótár törlése", 133 "settings.app.buttonClearAllCache" : "Gyorsítótár törlése",
123 "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése", 134 "settings.app.buttonInstallUpdate" : "Újraindítás és frissítések telepítése",
124 "settings.app.buttonSearchForUpdate" : "Frissítések keresése", 135 "settings.app.buttonSearchForUpdate" : "Frissítések keresése",
125 "settings.app.cacheInfo" : "A Franz gyorsítótár jelenleg {space} lemezterületet használ.", 136 "settings.app.cacheInfo" : "A Franz gyorsítótár jelenleg {size} lemezterületet használ.",
126 "settings.app.currentVersion" : "Aktuális verzió:", 137 "settings.app.currentVersion" : "Aktuális verzió:",
127 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben", 138 "settings.app.form.autoLaunchInBackground" : "Megnyitás háttérben",
128 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor", 139 "settings.app.form.autoLaunchOnStart" : "Franz betöltése indításkor",
129 "settings.app.form.beta" : "Béta verziók keresése", 140 "settings.app.form.beta" : "Béta verziók keresése",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Csatlakozz a Sötét Oldalhoz",
131 "settings.app.form.enableGPUAcceleration" : "hardveres gyorsítás engedélyezése", 142 "settings.app.form.enableGPUAcceleration" : "Hardveres gyorsítás engedélyezése",
132 "settings.app.form.enableMenuBar" : "Franz megjelenítése a menüsorban", 143 "settings.app.form.enableMenuBar" : "Franz megjelenítése a menüsorban",
133 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése", 144 "settings.app.form.enableSpellchecking" : "Helyesírás-ellenőrzés engedélyezése",
134 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán", 145 "settings.app.form.enableSystemTray" : "Franz mutatása a tálcán",
@@ -137,8 +148,8 @@
137 "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára", 148 "settings.app.form.minimizeToSystemTray" : "Franz kicsinyítése a tálcára",
138 "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor", 149 "settings.app.form.runInBackground" : "Franz fusson a háttérben az ablak bezárásakor",
139 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése", 150 "settings.app.form.showDisabledServices" : "Letiltott szolgáltatások megjelenítése",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutass az 'olvasatlan üzenet' jelzést amikor az értesítések le vannak tiltva.", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Mutassa az 'olvasatlan üzenet' jelzést, amikor az értesítések le vannak tiltva",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Helyesírás-ellenőrző nyelve",
142 "settings.app.headline" : "Beállítások", 153 "settings.app.headline" : "Beállítások",
143 "settings.app.headlineAdvanced" : "Haladó", 154 "settings.app.headlineAdvanced" : "Haladó",
144 "settings.app.headlineAppearance" : "Megjelenés", 155 "settings.app.headlineAppearance" : "Megjelenés",
@@ -151,7 +162,7 @@
151 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...", 162 "settings.app.updateStatusAvailable" : "Frissítés elérhető, letöltés folyamatban...",
152 "settings.app.updateStatusSearching" : "Frissítéseket keres", 163 "settings.app.updateStatusSearching" : "Frissítéseket keres",
153 "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod", 164 "settings.app.updateStatusUpToDate" : "A Franz legfrissebb verzióját használod",
154 "settings.invite.headline" : "Barát meghívása", 165 "settings.invite.headline" : "Barátok meghívása",
155 "settings.navigation.account" : "Fiók", 166 "settings.navigation.account" : "Fiók",
156 "settings.navigation.availableServices" : "Elérhető szolgáltatások", 167 "settings.navigation.availableServices" : "Elérhető szolgáltatások",
157 "settings.navigation.inviteFriends" : "Barát meghívása", 168 "settings.navigation.inviteFriends" : "Barát meghívása",
@@ -164,7 +175,7 @@
164 "settings.recipes.missingService" : "Hiányzik egy szolgáltatás?", 175 "settings.recipes.missingService" : "Hiányzik egy szolgáltatás?",
165 "settings.recipes.mostPopular" : "Legnépszerűbb", 176 "settings.recipes.mostPopular" : "Legnépszerűbb",
166 "settings.recipes.nothingFound" : "Sajnáljuk, nincs egyezés a szolgáltatások között a keresett kifejezésre.", 177 "settings.recipes.nothingFound" : "Sajnáljuk, nincs egyezés a szolgáltatások között a keresett kifejezésre.",
167 "settings.recipes.servicesSuccessfulAddedInfo" : "Szolgáltatás sikeresen hozzáadva.", 178 "settings.recipes.servicesSuccessfulAddedInfo" : "Szolgáltatás sikeresen hozzáadva",
168 "settings.searchService" : "Szolgáltatások keresése", 179 "settings.searchService" : "Szolgáltatások keresése",
169 "settings.service.error.goBack" : "Vissza a szolgáltatásokhoz", 180 "settings.service.error.goBack" : "Vissza a szolgáltatásokhoz",
170 "settings.service.error.headline" : "Hiba", 181 "settings.service.error.headline" : "Hiba",
@@ -174,12 +185,12 @@
174 "settings.service.form.customUrl" : "Egyéni szerver", 185 "settings.service.form.customUrl" : "Egyéni szerver",
175 "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Franz Prémium Támogató Fiók szükséges.", 186 "settings.service.form.customUrlPremiumInfo" : "Egyénileg üzemeltetett szolgáltatások hozzáadásához Franz Prémium Támogató Fiók szükséges.",
176 "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat", 187 "settings.service.form.customUrlUpgradeAccount" : "Frissítsd fiókodat",
177 "settings.service.form.customUrlValidationError" : "Nem sikerült hitelesíteni az egyéni {name} szervert.", 188 "settings.service.form.customUrlValidationError" : "Nem sikerült érvényesíteni az egyéni {name} kiszolgálót.",
178 "settings.service.form.deleteButton" : "Szolgáltatás törlése", 189 "settings.service.form.deleteButton" : "Szolgáltatás törlése",
179 "settings.service.form.editServiceHeadline" : "{name} szerkesztése", 190 "settings.service.form.editServiceHeadline" : "{name} szerkesztése",
180 "settings.service.form.enableAudio" : "Hang engedélyezése", 191 "settings.service.form.enableAudio" : "Hang engedélyezése",
181 "settings.service.form.enableBadge" : "Mutasd az olvasatlan jelzéseket", 192 "settings.service.form.enableBadge" : "Mutasd az olvasatlan jelzéseket",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Sötét mód engedélyezése",
183 "settings.service.form.enableNotification" : "Értesítések engedélyezése", 194 "settings.service.form.enableNotification" : "Értesítések engedélyezése",
184 "settings.service.form.enableService" : "Szolgáltatás engedélyezése", 195 "settings.service.form.enableService" : "Szolgáltatás engedélyezése",
185 "settings.service.form.headlineBadges" : "Olvasatlan üzenet jelzések", 196 "settings.service.form.headlineBadges" : "Olvasatlan üzenet jelzések",
@@ -188,31 +199,31 @@
188 "settings.service.form.icon" : "Egyedi ikon", 199 "settings.service.form.icon" : "Egyedi ikon",
189 "settings.service.form.iconDelete" : "Törlés", 200 "settings.service.form.iconDelete" : "Törlés",
190 "settings.service.form.iconUpload" : "Húzd ide a képet, vagy kattints ide", 201 "settings.service.form.iconUpload" : "Húzd ide a képet, vagy kattints ide",
191 "settings.service.form.indirectMessageInfo" : "Értesítést kapsz minden üzenetről a csatornában, nem csak @felhasználónév, @csatorna @here és egyéb említések esetén", 202 "settings.service.form.indirectMessageInfo" : "Értesítést kapsz minden üzenetről a csatornában, nem csak @felhasználónév, @csatorna, @here és egyéb említések esetén",
192 "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez", 203 "settings.service.form.indirectMessages" : "Üzenet kitűző megjelenítése minden üzenethez",
193 "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül.", 204 "settings.service.form.isMutedInfo" : "Ha kikapcsolod, minden értesítési és lejátszott hang némításra kerül",
194 "settings.service.form.name" : "Név", 205 "settings.service.form.name" : "Név",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy beállítások",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Proxy beállítások nem szinkronizálódnak a Franz kiszolgálókkal.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Proxy használata",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Jels (opcionális)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Kérjük indítsd újra a Franz-ot a proxy beállítások megváltoztatása után.",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Felhasználó (opcionális)",
203 "settings.service.form.saveButton" : "Szolgáltatás mentése", 214 "settings.service.form.saveButton" : "Szolgáltatás mentése",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Helyesírás-ellenőrző nyelve",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Rendszer alapbeállítás használata ({default})",
206 "settings.service.form.tabHosted" : "Üzemeltetett", 217 "settings.service.form.tabHosted" : "Üzemeltetett",
207 "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett", 218 "settings.service.form.tabOnPremise" : "Egyénileg üzemeltetett",
208 "settings.service.form.team" : "Csapat", 219 "settings.service.form.team" : "Csapat",
209 "settings.service.form.useHostedService" : "A távoli {name} szolgáltatás használata", 220 "settings.service.form.useHostedService" : "A távoli {name} szolgáltatás használata.",
210 "settings.service.form.yourServices" : "Szolgáltatásaid", 221 "settings.service.form.yourServices" : "Szolgáltatásaid",
211 "settings.services.deletedInfo" : "A szolgáltatás törlésre került", 222 "settings.services.deletedInfo" : "A szolgáltatás törlésre került",
212 "settings.services.discoverServices" : "Szolgáltatások felfedezése", 223 "settings.services.discoverServices" : "Szolgáltatások felfedezése",
213 "settings.services.headline" : "Szolgáltatásaid", 224 "settings.services.headline" : "Szolgáltatásaid",
214 "settings.services.noServicesAdded" : "Még nem adtál hozzá egyetlen szolgáltatást sem eddig.", 225 "settings.services.noServicesAdded" : "Még nem adtál hozzá egyetlen szolgáltatást sem eddig.",
215 "settings.services.tooltip.isDisabled" : "Ez a szolgáltatás le van tiltva.", 226 "settings.services.tooltip.isDisabled" : "A szolgáltatás le van tiltva",
216 "settings.services.tooltip.isMuted" : "Minden hang lenémítva", 227 "settings.services.tooltip.isMuted" : "Minden hang lenémítva",
217 "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva", 228 "settings.services.tooltip.notificationsDisabled" : "Értesítések letiltva",
218 "settings.services.updatedInfo" : "A módosításokat elmentettük", 229 "settings.services.updatedInfo" : "A módosításokat elmentettük",
@@ -243,13 +254,13 @@
243 "signup.submit.label" : "Fiók létrehozása", 254 "signup.submit.label" : "Fiók létrehozása",
244 "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra", 255 "subscription.euTaxInfo" : "EU állampolgárok: helyi vásárlás esetén adók kerülhetnek felszámolásra",
245 "subscription.features.ads" : "Hirdetésmentes, mindig!", 256 "subscription.features.ads" : "Hirdetésmentes, mindig!",
246 "subscription.features.comingSoon" : "Hamarosan!", 257 "subscription.features.comingSoon" : "hamarosan",
247 "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás", 258 "subscription.features.encryptedSync" : "Titkosított munkamenet szinkronizálás",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Nincs több app késlekedés és liszencfrissítési piszkálás",
249 "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat", 260 "subscription.features.onpremise" : "Helyi\/üzemeltetett szolgáltatások használata, pl. HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Támogatás a Helyesírás-ellerzőhöz",
253 "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", 264 "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza",
254 "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", 265 "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni",
255 "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", 266 "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését",
@@ -268,8 +279,8 @@
268 "tabs.item.enableService" : "Szolgáltatás engedélyezése", 279 "tabs.item.enableService" : "Szolgáltatás engedélyezése",
269 "tabs.item.reload" : "Újratöltés", 280 "tabs.item.reload" : "Újratöltés",
270 "validation.email" : "{field} nem érvényes", 281 "validation.email" : "{field} nem érvényes",
271 "validation.minLength" : "{field} legalább {length} karakter hosszúnak kell lennie", 282 "validation.minLength" : "{field} mezőnek legalább {length} karakter hosszúnak kell lennie",
272 "validation.required" : "{field} Kitöltése kötelező", 283 "validation.required" : "{field} kitöltése kötelező",
273 "validation.url" : "{field} nem érvényes URL", 284 "validation.url" : "{field} nem érvényes URL",
274 "welcome.loginButton" : "Jelentkezz be a fiókodba", 285 "welcome.loginButton" : "Jelentkezz be a fiókodba",
275 "welcome.signupButton" : "Új fiók létrehozása", 286 "welcome.signupButton" : "Új fiók létrehozása",
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json
index 11596d142..6abbf064b 100644
--- a/src/i18n/locales/id.json
+++ b/src/i18n/locales/id.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Muat Ulang", 2 "app.errorHandler.action" : "Muat Ulang",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Terjadi kesalahan",
4 "feature.delayApp.action" : "Dapatkan Franz Supporter License", 4 "feature.delayApp.action" : "Dapatkan Franz Supporter License",
5 "feature.delayApp.headline" : "Beli Franz Supporter License agar tidak perlu menunggu", 5 "feature.delayApp.headline" : "Beli Franz Supporter License agar tidak perlu menunggu",
6 "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", 6 "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz", 14 "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz",
8 "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", 15 "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.",
16 "global.spellchecker.useDefault" : "Gunakan Bawaan Sistem ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Periksa ejaan",
9 "import.headline" : "Impor layanan Franz 4 Anda", 20 "import.headline" : "Impor layanan Franz 4 Anda",
10 "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", 21 "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5",
11 "import.skip.label" : "Saya ingin menambahkan layanan secara manual", 22 "import.skip.label" : "Saya ingin menambahkan layanan secara manual",
@@ -92,11 +103,11 @@
92 "service.crashHandler.text" : "{name} menyebabkan kesalahan.", 103 "service.crashHandler.text" : "{name} menyebabkan kesalahan.",
93 "service.disabledHandler.action" : "Aktifkan {name}", 104 "service.disabledHandler.action" : "Aktifkan {name}",
94 "service.disabledHandler.headline" : "{name} dinonaktifkan", 105 "service.disabledHandler.headline" : "{name} dinonaktifkan",
95 "service.errorHandler.action" : "Muat Ulang {name}", 106 "service.errorHandler.action" : "Muat ulang {name}",
96 "service.errorHandler.editAction" : "Edit {nama}", 107 "service.errorHandler.editAction" : "Edit {nama}",
97 "service.errorHandler.headline" : "Ya Ampun!", 108 "service.errorHandler.headline" : "Oh tidak!",
98 "service.errorHandler.message" : "Kesalahan", 109 "service.errorHandler.message" : "Kesalahan",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} gagal dimuat",
100 "services.getStarted" : "Ayo mulai!", 111 "services.getStarted" : "Ayo mulai!",
101 "services.welcome" : "Selamat datang di Franz", 112 "services.welcome" : "Selamat datang di Franz",
102 "settings.account.account.editButton" : "Edit akun", 113 "settings.account.account.editButton" : "Edit akun",
@@ -167,7 +178,7 @@
167 "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan", 178 "settings.recipes.servicesSuccessfulAddedInfo" : "Layanan berhasil ditambahkan",
168 "settings.searchService" : "Cari layanan", 179 "settings.searchService" : "Cari layanan",
169 "settings.service.error.goBack" : "Kembali ke layanan", 180 "settings.service.error.goBack" : "Kembali ke layanan",
170 "settings.service.error.headline" : "Kesalahan", 181 "settings.service.error.headline" : "Terjadi kesalahan",
171 "settings.service.error.message" : "Tidak dapat memuat konfigurasi layanan.", 182 "settings.service.error.message" : "Tidak dapat memuat konfigurasi layanan.",
172 "settings.service.form.addServiceHeadline" : "Tambahkan {name}", 183 "settings.service.form.addServiceHeadline" : "Tambahkan {name}",
173 "settings.service.form.availableServices" : "Layanan tersedia", 184 "settings.service.form.availableServices" : "Layanan tersedia",
@@ -176,7 +187,7 @@
176 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda", 187 "settings.service.form.customUrlUpgradeAccount" : "Tingkatkan akun Anda",
177 "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.", 188 "settings.service.form.customUrlValidationError" : "Gagal memvalidasi server {nama} khusus.",
178 "settings.service.form.deleteButton" : "Hapus layanan", 189 "settings.service.form.deleteButton" : "Hapus layanan",
179 "settings.service.form.editServiceHeadline" : "Edit {nama}", 190 "settings.service.form.editServiceHeadline" : "Edit {name}",
180 "settings.service.form.enableAudio" : "Aktifkan audio", 191 "settings.service.form.enableAudio" : "Aktifkan audio",
181 "settings.service.form.enableBadge" : "Tampilkan lencana pesan belum dibaca", 192 "settings.service.form.enableBadge" : "Tampilkan lencana pesan belum dibaca",
182 "settings.service.form.enableDarkMode" : "Aktifkan Mode Gelap", 193 "settings.service.form.enableDarkMode" : "Aktifkan Mode Gelap",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan baru", 203 "settings.service.form.indirectMessages" : "Tampilkan lencana pesan untuk semua pesan baru",
193 "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan", 204 "settings.service.form.isMutedInfo" : "Saat dinonaktifkan, semua suara pemberitahuan dan pemutaran audio akan dibisukan",
194 "settings.service.form.name" : "Nama", 205 "settings.service.form.name" : "Nama",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Pengaturan Proxy HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Host\/IP Proksi", 207 "settings.service.form.proxy.host" : "Host\/IP Proksi",
197 "settings.service.form.proxy.info" : "Pengaturan proksi tidak akan disinkronkan dengan server Franz.", 208 "settings.service.form.proxy.info" : "Pengaturan proksi tidak akan disinkronkan dengan server Franz.",
198 "settings.service.form.proxy.isEnabled" : "Gunakan Proksi", 209 "settings.service.form.proxy.isEnabled" : "Gunakan Proksi",
199 "settings.service.form.proxy.password" : "Sandi (opsional)", 210 "settings.service.form.proxy.password" : "Sandi (opsional)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Silahkan mulai ulang Franz setelah mengubah Setelan proxy",
202 "settings.service.form.proxy.user" : "Pengguna (opsional)", 213 "settings.service.form.proxy.user" : "Pengguna (opsional)",
203 "settings.service.form.saveButton" : "Simpan layanan", 214 "settings.service.form.saveButton" : "Simpan layanan",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Periksa ejaan Bahasa",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Gunakan Bawaan Sistem ({default})",
206 "settings.service.form.tabHosted" : "Hosted", 217 "settings.service.form.tabHosted" : "Hosted",
207 "settings.service.form.tabOnPremise" : "Hosted mandiri", 218 "settings.service.form.tabOnPremise" : "Hosted mandiri",
208 "settings.service.form.team" : "Tim", 219 "settings.service.form.team" : "Tim",
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json
index 47cbd8f1e..b63b30a90 100644
--- a/src/i18n/locales/it.json
+++ b/src/i18n/locales/it.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Ricarica", 2 "app.errorHandler.action" : "Ricarica",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Qualcosa è andato storto",
4 "feature.delayApp.action" : "Ricevi una Licenza Supporter di Franz", 4 "feature.delayApp.action" : "Ricevi una Licenza Supporter di Franz",
5 "feature.delayApp.headline" : "Per favore, compra una Licenza Supporter di Franz per saltare l'attesa", 5 "feature.delayApp.headline" : "Per favore, compra una Licenza Supporter di Franz per saltare l'attesa",
6 "feature.delayApp.text" : "Franz continuerà a funzionare tra {seconds} secondi.", 6 "feature.delayApp.text" : "Franz continuerà a funzionare tra {seconds} secondi.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", 14 "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz",
8 "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", 15 "global.notConnectedToTheInternet" : "Non sei connesso a Internet.",
16 "global.spellchecker.useDefault" : "Usa le impostazioni predefinite di sistema ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Lingua per controllo ortografico",
9 "import.headline" : "Importa i servizi di Franz 4", 20 "import.headline" : "Importa i servizi di Franz 4",
10 "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", 21 "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5",
11 "import.skip.label" : "Voglio aggiungere i servizi manualmente", 22 "import.skip.label" : "Voglio aggiungere i servizi manualmente",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail", 92 "password.noUser" : "Non è stato trovato nessun utente con questo indirizzo e-mail",
82 "password.submit.label" : "Invia", 93 "password.submit.label" : "Invia",
83 "password.successInfo" : "Per favore controlla la tua email", 94 "password.successInfo" : "Per favore controlla la tua email",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Effettua l'upgrade del tuo account",
85 "pricing.headline" : "Supporta Franz", 96 "pricing.headline" : "Supporta Franz",
86 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz", 97 "pricing.link.skipPayment" : "Non voglio supportare lo sviluppo di Franz",
87 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz", 98 "pricing.submit.label" : "Voglio supportare lo sviluppo di Franz",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Modifica {name}", 107 "service.errorHandler.editAction" : "Modifica {name}",
97 "service.errorHandler.headline" : "Oh no!", 108 "service.errorHandler.headline" : "Oh no!",
98 "service.errorHandler.message" : "Errore", 109 "service.errorHandler.message" : "Errore",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} non si è caricato correttamente.",
100 "services.getStarted" : "Iniziamo", 111 "services.getStarted" : "Iniziamo",
101 "services.welcome" : "Benvenuto su Franz", 112 "services.welcome" : "Benvenuto su Franz",
102 "settings.account.account.editButton" : "Modifica account", 113 "settings.account.account.editButton" : "Modifica account",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra", 149 "settings.app.form.runInBackground" : "Mantieni Franz in esecuzione quando chiudi la finestra",
139 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati", 150 "settings.app.form.showDisabledServices" : "Mostra schede servizi disattivati",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Mostra l'etichetta dei messaggi non letti quando le notifiche sono disattivate",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Lingua per controllo ortografico",
142 "settings.app.headline" : "Impostazioni", 153 "settings.app.headline" : "Impostazioni",
143 "settings.app.headlineAdvanced" : "Avanzate", 154 "settings.app.headlineAdvanced" : "Avanzate",
144 "settings.app.headlineAppearance" : "Aspetto", 155 "settings.app.headlineAppearance" : "Aspetto",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Mostra l'etichetta per tutti i nuovi messaggi", 203 "settings.service.form.indirectMessages" : "Mostra l'etichetta per tutti i nuovi messaggi",
193 "settings.service.form.isMutedInfo" : "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate", 204 "settings.service.form.isMutedInfo" : "Se disattivato, tutte le notifiche sonore e le riproduzioni audio saranno mutate",
194 "settings.service.form.name" : "Nome", 205 "settings.service.form.name" : "Nome",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Impostazioni Proxy HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Le impostazioni proxy non verranno sincronizzate con i server Franz",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Usa un Proxy",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Password (opzionale)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Porta",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Riavvia Franz dopo aver cambiato le impostazioni del proxy.",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Utente (opzionale)",
203 "settings.service.form.saveButton" : "Salva servizio", 214 "settings.service.form.saveButton" : "Salva servizio",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Lingua per controllo ortografico",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Usa le impostazioni predefinite di sistema ({default})",
206 "settings.service.form.tabHosted" : "Hosted", 217 "settings.service.form.tabHosted" : "Hosted",
207 "settings.service.form.tabOnPremise" : "Self hosted ⭐️", 218 "settings.service.form.tabOnPremise" : "Self hosted ⭐️",
208 "settings.service.form.team" : "Gruppo", 219 "settings.service.form.team" : "Gruppo",
@@ -245,11 +256,11 @@
245 "subscription.features.ads" : "Nessuna pubblicità, mai!", 256 "subscription.features.ads" : "Nessuna pubblicità, mai!",
246 "subscription.features.comingSoon" : "in arrivo", 257 "subscription.features.comingSoon" : "in arrivo",
247 "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata", 258 "subscription.features.encryptedSync" : "Sincronizzazione sessione crittografata",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "L'upgrade della licenza avrà impatti sull'utilizzo dell'App",
249 "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hosted come HipChat", 260 "subscription.features.onpremise" : "Aggiungi servizi on-premise\/hosted come HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Supporto proxy per i servizi",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Supporto per il correttore ortografico",
253 "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include", 264 "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include",
254 "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento", 265 "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento",
255 "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", 266 "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz",
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json
index 6eea64c3a..838dc81ea 100644
--- a/src/i18n/locales/ja.json
+++ b/src/i18n/locales/ja.json
@@ -1,16 +1,27 @@
1{ 1{
2 "app.errorHandler.action" : "再読み込み", 2 "app.errorHandler.action" : "再読み込み",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "間違えている部分があります",
4 "feature.delayApp.action" : "Franz サポーターライセンスを購入する", 4 "feature.delayApp.action" : "Franzサポーターライセンスを購入する",
5 "feature.delayApp.headline" : "Franz をすぐに起動するには、Franz サポーターライセンスを購入してください。", 5 "feature.delayApp.headline" : "Franzをすぐに起動するには、Franz サポーターライセンスを購入してください。",
6 "feature.delayApp.text" : "Franz はあと{seconds}秒後に起動します。", 6 "feature.delayApp.text" : "Franzはあと{seconds}秒後に起動します。",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Franzのオンラインサービスに接続できません。", 14 "global.api.unhealthy" : "Franzのオンラインサービスに接続できません。",
8 "global.notConnectedToTheInternet" : "インターネットに接続されていません。", 15 "global.notConnectedToTheInternet" : "インターネットに接続されていません。",
16 "global.spellchecker.useDefault" : " {default}を初期設定で使用してください",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "スペルチェックする言語",
9 "import.headline" : "Franz 4のサービスをインポートして下さい", 20 "import.headline" : "Franz 4のサービスをインポートして下さい",
10 "import.notSupportedHeadline" : "Franz 5ではこのサービスにまだ対応していません", 21 "import.notSupportedHeadline" : "Franz 5ではこのサービスにまだ対応していません",
11 "import.skip.label" : "手動でサービスを追加する", 22 "import.skip.label" : "手動でサービスを追加する",
12 "import.submit.label" : "サービスをインポートして下さい", 23 "import.submit.label" : "サービスをインポートして下さい",
13 "infobar.buttonChangelog" : "の情", 24 "infobar.buttonChangelog" : "歴を見る",
14 "infobar.buttonInstallUpdate" : "再起動して更新をインストールする", 25 "infobar.buttonInstallUpdate" : "再起動して更新をインストールする",
15 "infobar.buttonReloadServices" : "サービスの再読み込み", 26 "infobar.buttonReloadServices" : "サービスの再読み込み",
16 "infobar.requiredRequestsFailed" : "サービスとユーザー情報を読み込めませんでした", 27 "infobar.requiredRequestsFailed" : "サービスとユーザー情報を読み込めませんでした",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "{name}を編集", 107 "service.errorHandler.editAction" : "{name}を編集",
97 "service.errorHandler.headline" : "しまった!", 108 "service.errorHandler.headline" : "しまった!",
98 "service.errorHandler.message" : "エラー", 109 "service.errorHandler.message" : "エラー",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} はロードに失敗しました",
100 "services.getStarted" : "はじめる", 111 "services.getStarted" : "はじめる",
101 "services.welcome" : "Franzにようこそ", 112 "services.welcome" : "Franzにようこそ",
102 "settings.account.account.editButton" : "アカウントの編集", 113 "settings.account.account.editButton" : "アカウントの編集",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "すべての新規メッセージについてバッジを表示する", 203 "settings.service.form.indirectMessages" : "すべての新規メッセージについてバッジを表示する",
193 "settings.service.form.isMutedInfo" : "無効化されている場合、全ての通知音やオーディオ再生は無音になります", 204 "settings.service.form.isMutedInfo" : "無効化されている場合、全ての通知音やオーディオ再生は無音になります",
194 "settings.service.form.name" : "サービス名", 205 "settings.service.form.name" : "サービス名",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPSのプロキシ設定",
196 "settings.service.form.proxy.host" : "プロキシサーバー\/IP", 207 "settings.service.form.proxy.host" : "プロキシサーバー\/IP",
197 "settings.service.form.proxy.info" : "プロキシ設定はFranz アカウントで同期されません。", 208 "settings.service.form.proxy.info" : "プロキシ設定はFranz アカウントで同期されません。",
198 "settings.service.form.proxy.isEnabled" : "プロキシ設定を有効にする", 209 "settings.service.form.proxy.isEnabled" : "プロキシ設定を有効にする",
199 "settings.service.form.proxy.password" : "パスワード(任意)", 210 "settings.service.form.proxy.password" : "パスワード(任意)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "ポート",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "プロキシ設定を変更してから、Franzを再起動してください",
202 "settings.service.form.proxy.user" : "ユーザー名(任意)", 213 "settings.service.form.proxy.user" : "ユーザー名(任意)",
203 "settings.service.form.saveButton" : "サービスの保存", 214 "settings.service.form.saveButton" : "サービスの保存",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "言語のスペルチェック",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : " {default}を初期設定で使用してください",
206 "settings.service.form.tabHosted" : "ホスト", 217 "settings.service.form.tabHosted" : "ホスト",
207 "settings.service.form.tabOnPremise" : "セルフホスト ⭐️", 218 "settings.service.form.tabOnPremise" : "セルフホスト ⭐️",
208 "settings.service.form.team" : "チーム", 219 "settings.service.form.team" : "チーム",
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json
index 632ca618e..ec0cdd375 100644
--- a/src/i18n/locales/ka.json
+++ b/src/i18n/locales/ka.json
@@ -4,8 +4,19 @@
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Franz-ის ონლაინ სერვისთან დაკავშირება ვერ მოხერხდა", 14 "global.api.unhealthy" : "Franz-ის ონლაინ სერვისთან დაკავშირება ვერ მოხერხდა",
8 "global.notConnectedToTheInternet" : "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.", 15 "global.notConnectedToTheInternet" : "თქვენ არ ხართ ინტერნეტთან დაკავშირებული.",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "შემოიტანე Franz 4-ის სერვისები", 20 "import.headline" : "შემოიტანე Franz 4-ის სერვისები",
10 "import.notSupportedHeadline" : "სერვისები ჯერ არ არის მხარდაჭერილი Franz 5-ში", 21 "import.notSupportedHeadline" : "სერვისები ჯერ არ არის მხარდაჭერილი Franz 5-ში",
11 "import.skip.label" : "I want to add services manually", 22 "import.skip.label" : "I want to add services manually",
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json
index c38a7f024..2082edd6d 100644
--- a/src/i18n/locales/nl-BE.json
+++ b/src/i18n/locales/nl-BE.json
@@ -1,74 +1,85 @@
1{ 1{
2 "app.errorHandler.action" : "Herladen", 2 "app.errorHandler.action" : "Herladen",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Er ging iets mis",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Neem een Franz Supporter Licentie ",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Neem een Franz Supporter Licentie om niet meer te hoeven wachten",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", 14 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services",
8 "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", 15 "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.",
16 "global.spellchecker.useDefault" : "Gebruik Systeemstandaard ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Taal spellingscontrole",
9 "import.headline" : "Importeer je Franz 4 services", 20 "import.headline" : "Importeer je Franz 4 services",
10 "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5", 21 "import.notSupportedHeadline" : "De volgende services worden nog niet ondersteund in Franz 5",
11 "import.skip.label" : "Ik wens services manueel toe te voegen", 22 "import.skip.label" : "Ik wil services handmatig toevoegen",
12 "import.submit.label" : "Importeer services", 23 "import.submit.label" : "Importeer services",
13 "infobar.buttonChangelog" : "Wat is er nieuw?", 24 "infobar.buttonChangelog" : "Wat is er nieuw?",
14 "infobar.buttonInstallUpdate" : "Start opnieuw op & installeer de update", 25 "infobar.buttonInstallUpdate" : "Opnieuw opstarten & update installeren",
15 "infobar.buttonReloadServices" : "Herlaad de services", 26 "infobar.buttonReloadServices" : "Services opnieuw laden",
16 "infobar.requiredRequestsFailed" : "Kan de services en gebruikers informatie niet laden", 27 "infobar.requiredRequestsFailed" : "Kan de services en gebruikersinformatie niet laden",
17 "infobar.servicesUpdated" : "Je services zijn geüpdatet.", 28 "infobar.servicesUpdated" : "Je services zijn bijgewerkt.",
18 "infobar.updateAvailable" : "Een nieuwe update voor Franz is beschikbaar.", 29 "infobar.updateAvailable" : "Er is een nieuwe update voor Franz beschikbaar.",
19 "invite.email.label" : "E-mailadres", 30 "invite.email.label" : "E-mailadres",
20 "invite.headline.friends" : "Nodig 3 van je vrienden of collega's uit", 31 "invite.headline.friends" : "Nodig 3 van je vrienden of collega's uit",
21 "invite.name.label" : "Naam", 32 "invite.name.label" : "Naam",
22 "invite.skip.label" : "Ik wil dit later doen", 33 "invite.skip.label" : "Ik wil dit later doen",
23 "invite.submit.label" : "Verzend uitnodigingen", 34 "invite.submit.label" : "Uitnodigingen verzenden",
24 "invite.successInfo" : "Uitnodiging met succes verzonden", 35 "invite.successInfo" : "Uitnodiging met succes verzonden",
25 "login.email.label" : "E-mailadres", 36 "login.email.label" : "E-mailadres",
26 "login.headline" : "Inloggen", 37 "login.headline" : "Inloggen",
27 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig", 38 "login.invalidCredentials" : "E-mailadres of wachtwoord ongeldig",
28 "login.link.password" : "Wachtwoord resetten", 39 "login.link.password" : "Wachtwoord resetten",
29 "login.link.signup" : "Maak een gratis account", 40 "login.link.signup" : "Maak een gratis account aan",
30 "login.password.label" : "Wachtwoord", 41 "login.password.label" : "Wachtwoord",
31 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 42 "login.serverLogout" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
32 "login.submit.label" : "Log in", 43 "login.submit.label" : "Inloggen",
33 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", 44 "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.",
34 "menu.app.about" : "Over Franz", 45 "menu.app.about" : "Over Franz",
35 "menu.app.hide" : "Verbergen", 46 "menu.app.hide" : "Verbergen",
36 "menu.app.hideOthers" : "Andere verbergen", 47 "menu.app.hideOthers" : "Andere Verbergen",
37 "menu.app.quit" : "Afsluiten", 48 "menu.app.quit" : "Afsluiten",
38 "menu.app.settings" : "Instellingen", 49 "menu.app.settings" : "Instellingen",
39 "menu.app.unhide" : "Zichtbaar maken", 50 "menu.app.unhide" : "Tonen",
40 "menu.edit" : "Aanpassen", 51 "menu.edit" : "Bewerken",
41 "menu.edit.copy" : "Kopiëren", 52 "menu.edit.copy" : "Kopiëren",
42 "menu.edit.cut" : "Knippen", 53 "menu.edit.cut" : "Knippen",
43 "menu.edit.delete" : "Verwijderen", 54 "menu.edit.delete" : "Verwijderen",
44 "menu.edit.emojiSymbols" : "Emoji & Symbolen", 55 "menu.edit.emojiSymbols" : "Emoji & Symbolen",
45 "menu.edit.paste" : "Plakken", 56 "menu.edit.paste" : "Plakken",
46 "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen", 57 "menu.edit.pasteAndMatchStyle" : "Plakken en stijl overeen laten komen",
47 "menu.edit.redo" : "Opnieuw uitvoeren", 58 "menu.edit.redo" : "Opnieuw doen",
48 "menu.edit.selectAll" : "Selecteer alles", 59 "menu.edit.selectAll" : "Selecteer Alles",
49 "menu.edit.speech" : "Spraakuitvoer", 60 "menu.edit.speech" : "Spraakuitvoer",
50 "menu.edit.startDictation" : "Beginnen met dicteren", 61 "menu.edit.startDictation" : "Beginnen met dicteren",
51 "menu.edit.startSpeaking" : "Begin met spreken", 62 "menu.edit.startSpeaking" : "Begin met Spreken",
52 "menu.edit.stopSpeaking" : "Stoppen met spreken", 63 "menu.edit.stopSpeaking" : "Stoppen met Spreken",
53 "menu.edit.undo" : "Ongedaan maken", 64 "menu.edit.undo" : "Ongedaan maken",
54 "menu.file" : "Bestand", 65 "menu.file" : "Bestand",
55 "menu.help" : "Help", 66 "menu.help" : "Help",
56 "menu.help.changelog" : "Logboek", 67 "menu.help.changelog" : "Logboek",
57 "menu.help.learnMore" : "Meer weten", 68 "menu.help.learnMore" : "Meer Weten",
58 "menu.help.privacy" : "Privacyverklaring", 69 "menu.help.privacy" : "Privacyverklaring",
59 "menu.help.support" : "Ondersteuning", 70 "menu.help.support" : "Ondersteuning",
60 "menu.help.tos" : "Servicevoorwaarden", 71 "menu.help.tos" : "Servicevoorwaarden",
61 "menu.services" : "Diensten", 72 "menu.services" : "Services",
62 "menu.services.addNewService" : "Nieuwe service toevoegen...", 73 "menu.services.addNewService" : "Nieuwe service toevoegen...",
63 "menu.view" : "Beeld", 74 "menu.view" : "Weergave",
64 "menu.view.enterFullScreen" : "Volledig scherm openen", 75 "menu.view.enterFullScreen" : "Volledig scherm openen",
65 "menu.view.exitFullScreen" : "Volledig scherm verlaten", 76 "menu.view.exitFullScreen" : "Volledig scherm verlaten",
66 "menu.view.reloadFranz" : "Franz Herladen", 77 "menu.view.reloadFranz" : "Franz Herladen",
67 "menu.view.reloadService" : "Service herladen", 78 "menu.view.reloadService" : "Service Herladen",
68 "menu.view.resetZoom" : "Werkelijke grootte", 79 "menu.view.resetZoom" : "Werkelijke Grootte",
69 "menu.view.toggleDevTools" : "Toggle Developer Tools", 80 "menu.view.toggleDevTools" : "Ontwikkelaarstools Aan\/Uit",
70 "menu.view.toggleFullScreen" : "Volledig scherm aan\/uit", 81 "menu.view.toggleFullScreen" : "Volledig Scherm Aan\/Uit",
71 "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", 82 "menu.view.toggleServiceDevTools" : "Service Ontwikkelaarstools Aan\/Uit",
72 "menu.view.zoomIn" : "Inzoomen", 83 "menu.view.zoomIn" : "Inzoomen",
73 "menu.view.zoomOut" : "Uitzoomen", 84 "menu.view.zoomOut" : "Uitzoomen",
74 "menu.window" : "Venster", 85 "menu.window" : "Venster",
@@ -78,47 +89,47 @@
78 "password.headline" : "Wachtwoord resetten", 89 "password.headline" : "Wachtwoord resetten",
79 "password.link.login" : "Log in op je account", 90 "password.link.login" : "Log in op je account",
80 "password.link.signup" : "Maak een gratis account", 91 "password.link.signup" : "Maak een gratis account",
81 "password.noUser" : "Geen gebruiker bekend met dat e-mailadres", 92 "password.noUser" : "Geen gebruiker gevonden met dat e-mailadres",
82 "password.submit.label" : "Doorgaan", 93 "password.submit.label" : "Verzenden",
83 "password.successInfo" : "Controleer alsjeblieft je e-mail", 94 "password.successInfo" : "Controleer alsjeblieft je e-mail",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Upgrade account",
85 "pricing.headline" : "Ondersteun Franz", 96 "pricing.headline" : "Steun Franz",
86 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.", 97 "pricing.link.skipPayment" : "Ik wil de ontwikkeling van Franz niet ondersteunen.",
87 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", 98 "pricing.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen",
88 "pricing.support.label" : "Selecteer je ondersteuningsplan", 99 "pricing.support.label" : "Selecteer je ondersteuningsplan",
89 "service.crashHandler.action" : "{naam} herladen", 100 "service.crashHandler.action" : "{naam} herladen",
90 "service.crashHandler.autoReload" : "Automatisch herstellen {name} proberen in {seconds} seconden", 101 "service.crashHandler.autoReload" : "Ga proberen om {name} te herstellen over {seconds} seconden",
91 "service.crashHandler.headline" : "Oh nee!", 102 "service.crashHandler.headline" : "Oh nee!",
92 "service.crashHandler.text" : "{name} heeft een probleem veroorzaakt.", 103 "service.crashHandler.text" : "{name} heeft een probleem veroorzaakt.",
93 "service.disabledHandler.action" : "Activeer {name}", 104 "service.disabledHandler.action" : "Activeer {name}",
94 "service.disabledHandler.headline" : "{name} is uitgeschakeld", 105 "service.disabledHandler.headline" : "{name} is uitgeschakeld",
95 "service.errorHandler.action" : "{naam} herladen", 106 "service.errorHandler.action" : "{naam} herladen",
96 "service.errorHandler.editAction" : "{name} aanpassen", 107 "service.errorHandler.editAction" : "Bewerk {name}",
97 "service.errorHandler.headline" : "Oh nee!", 108 "service.errorHandler.headline" : "Oh nee!",
98 "service.errorHandler.message" : "Fout", 109 "service.errorHandler.message" : "Fout",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} kon niet geladen worden.",
100 "services.getStarted" : "Beginnen", 111 "services.getStarted" : "Beginnen",
101 "services.welcome" : "Welkom bij Franz", 112 "services.welcome" : "Welkom bij Franz",
102 "settings.account.account.editButton" : "Bewerk account", 113 "settings.account.account.editButton" : "Account bewerken",
103 "settings.account.accountType.basic" : "Basis Account", 114 "settings.account.accountType.basic" : "Basis Account",
104 "settings.account.accountType.premium" : "Premium Supporter Account", 115 "settings.account.accountType.premium" : "Premium Supporter Account",
105 "settings.account.buttonSave" : "Profiel aanpassen", 116 "settings.account.buttonSave" : "Profiel bijwerken",
106 "settings.account.deleteAccount" : "Account verwijderen", 117 "settings.account.deleteAccount" : "Account verwijderen",
107 "settings.account.deleteEmailSent" : "U heeft een email ontvangen met een bevestiginslink om uw account te verwijderen. Uw account en de bijhorende gegevens kunnen niet meer worden herstel na deze actie!", 118 "settings.account.deleteEmailSent" : "U heeft een email ontvangen met een bevestiginslink om uw account te verwijderen. Uw account en de bijhorende gegevens kunnen niet meer worden herstel na deze actie!",
108 "settings.account.deleteInfo" : "Indien u uw Franz account nietmeer nodig heeft, kan u hier uw account en de gerelateerde gegegevens verwijderen.", 119 "settings.account.deleteInfo" : "Indien u uw Franz account niet meer nodig heeft, kan u hier uw account en alle gerelateerde gegevens verwijderen.",
109 "settings.account.headline" : "Account", 120 "settings.account.headline" : "Account",
110 "settings.account.headlineAccount" : "Account informatie", 121 "settings.account.headlineAccount" : "Account informatie",
111 "settings.account.headlineDangerZone" : "Gevaren Zone", 122 "settings.account.headlineDangerZone" : "Gevarenzone",
112 "settings.account.headlineInvoices" : "Facturen", 123 "settings.account.headlineInvoices" : "Facturen",
113 "settings.account.headlinePassword" : "Wijzig wachtwoord", 124 "settings.account.headlinePassword" : "Wijzig wachtwoord",
114 "settings.account.headlineProfile" : "Profiel aanpassen", 125 "settings.account.headlineProfile" : "Profiel bijwerken",
115 "settings.account.headlineSubscription" : "Je abonnement", 126 "settings.account.headlineSubscription" : "Je abonnement",
116 "settings.account.headlineUpgrade" : "Upgrade je account & ondersteun Franz", 127 "settings.account.headlineUpgrade" : "Upgrade je account & ondersteun Franz",
117 "settings.account.invoiceDownload" : "Download", 128 "settings.account.invoiceDownload" : "Download",
118 "settings.account.manageSubscription.label" : "Beheer je abonnement", 129 "settings.account.manageSubscription.label" : "Beheer je abonnement",
119 "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen", 130 "settings.account.successInfo" : "Je wijzigingen zijn opgeslagen",
120 "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw", 131 "settings.account.tryReloadUserInfoRequest" : "Probeer opnieuw",
121 "settings.account.userInfoRequestFailed" : "Kon gebruikerinformatie niet laden", 132 "settings.account.userInfoRequestFailed" : "Kon gebruikersinformatie niet laden",
122 "settings.app.buttonClearAllCache" : "Cache wissen", 133 "settings.app.buttonClearAllCache" : "Cache wissen",
123 "settings.app.buttonInstallUpdate" : "Herstart & installeer update", 134 "settings.app.buttonInstallUpdate" : "Herstart & installeer update",
124 "settings.app.buttonSearchForUpdate" : "Controleer op updates", 135 "settings.app.buttonSearchForUpdate" : "Controleer op updates",
@@ -126,47 +137,47 @@
126 "settings.app.currentVersion" : "Huidige versie:", 137 "settings.app.currentVersion" : "Huidige versie:",
127 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond", 138 "settings.app.form.autoLaunchInBackground" : "Open op de achtergrond",
128 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten", 139 "settings.app.form.autoLaunchOnStart" : "Lanceer Franz bij opstarten",
129 "settings.app.form.beta" : "Inclusief bèta versies", 140 "settings.app.form.beta" : "Inclusief beta versies",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Word lid van de Dark Side",
131 "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren", 142 "settings.app.form.enableGPUAcceleration" : "GPU Acceleratie Activeren",
132 "settings.app.form.enableMenuBar" : "Toon Franz in Menu Bar", 143 "settings.app.form.enableMenuBar" : "Toon Franz in Menu Bar",
133 "settings.app.form.enableSpellchecking" : "Spellingcontrole inschakelen", 144 "settings.app.form.enableSpellchecking" : "Spellingcontrole inschakelen",
134 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk", 145 "settings.app.form.enableSystemTray" : "Toon Franz in de systeembalk",
135 "settings.app.form.hideDockIcon" : "Hide Franz icon in Dock", 146 "settings.app.form.hideDockIcon" : "Verberg Franz in Dock",
136 "settings.app.form.language" : "Taal", 147 "settings.app.form.language" : "Taal",
137 "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk", 148 "settings.app.form.minimizeToSystemTray" : "Minimaliseer Franz naar de systeembalk",
138 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt", 149 "settings.app.form.runInBackground" : "Houd Franz op de achtergrond wanneer het venster gesloten wordt",
139 "settings.app.form.showDisabledServices" : "Display disabled services tabs", 150 "settings.app.form.showDisabledServices" : "Toon uitgeschakelde services",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Toon badge met ongelezen berichten wanneer meldingen zijn uitgeschakeld",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Taal spellingscontrole",
142 "settings.app.headline" : "Instellingen", 153 "settings.app.headline" : "Instellingen",
143 "settings.app.headlineAdvanced" : "Advanced", 154 "settings.app.headlineAdvanced" : "Geavanceerd",
144 "settings.app.headlineAppearance" : "Appearance", 155 "settings.app.headlineAppearance" : "Weergave",
145 "settings.app.headlineGeneral" : "Algemeen", 156 "settings.app.headlineGeneral" : "Algemeen",
146 "settings.app.headlineLanguage" : "Taal", 157 "settings.app.headlineLanguage" : "Taal",
147 "settings.app.headlineUpdates" : "Updates", 158 "settings.app.headlineUpdates" : "Updates",
148 "settings.app.restartRequired" : "Changes require restart", 159 "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig",
149 "settings.app.subheadlineCache" : "Cache", 160 "settings.app.subheadlineCache" : "Cache",
150 "settings.app.translationHelp" : "Help us to translate Franz into your language.", 161 "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.",
151 "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...", 162 "settings.app.updateStatusAvailable" : "Update beschikbaar, downloaden...",
152 "settings.app.updateStatusSearching" : "Zoekt naar updates", 163 "settings.app.updateStatusSearching" : "Zoekt naar updates",
153 "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz", 164 "settings.app.updateStatusUpToDate" : "Je gebruikt de laatste versie van Franz",
154 "settings.invite.headline" : "Invite Friends", 165 "settings.invite.headline" : "Nodig vrienden uit",
155 "settings.navigation.account" : "Account", 166 "settings.navigation.account" : "Account",
156 "settings.navigation.availableServices" : "Beschikbare services", 167 "settings.navigation.availableServices" : "Beschikbare services",
157 "settings.navigation.inviteFriends" : "Invite Friends", 168 "settings.navigation.inviteFriends" : "Nodig vrienden uit",
158 "settings.navigation.logout" : "Uitloggen", 169 "settings.navigation.logout" : "Uitloggen",
159 "settings.navigation.settings" : "Instellingen", 170 "settings.navigation.settings" : "Instellingen",
160 "settings.navigation.yourServices" : "Jouw services", 171 "settings.navigation.yourServices" : "Jouw services",
161 "settings.recipes.all" : "Alle services", 172 "settings.recipes.all" : "Alle services",
162 "settings.recipes.dev" : "Ontwikkeling", 173 "settings.recipes.dev" : "Ontwikkeling",
163 "settings.recipes.headline" : "Beschikbare services", 174 "settings.recipes.headline" : "Beschikbare services",
164 "settings.recipes.missingService" : "Missing a service?", 175 "settings.recipes.missingService" : "Mist er een service?",
165 "settings.recipes.mostPopular" : "Meest populair", 176 "settings.recipes.mostPopular" : "Meest populair",
166 "settings.recipes.nothingFound" : "Sorry, maar geen enkele service kwam overeen met je zoekterm.", 177 "settings.recipes.nothingFound" : "Sorry, maar geen enkele service kwam overeen met je zoekterm.",
167 "settings.recipes.servicesSuccessfulAddedInfo" : "Service succesvol toegevoegd", 178 "settings.recipes.servicesSuccessfulAddedInfo" : "Service succesvol toegevoegd",
168 "settings.searchService" : "Search service", 179 "settings.searchService" : "Service zoeken",
169 "settings.service.error.goBack" : "Terug naar de services", 180 "settings.service.error.goBack" : "Terug naar services",
170 "settings.service.error.headline" : "Fout", 181 "settings.service.error.headline" : "Fout",
171 "settings.service.error.message" : "Kon het service-recept niet laden.", 182 "settings.service.error.message" : "Kon het service-recept niet laden.",
172 "settings.service.form.addServiceHeadline" : "{name} toevoegen", 183 "settings.service.form.addServiceHeadline" : "{name} toevoegen",
@@ -177,62 +188,62 @@
177 "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.", 188 "settings.service.form.customUrlValidationError" : "Kon de custom {name} server niet valideren.",
178 "settings.service.form.deleteButton" : "Service verwijderen", 189 "settings.service.form.deleteButton" : "Service verwijderen",
179 "settings.service.form.editServiceHeadline" : "{name} aanpassen", 190 "settings.service.form.editServiceHeadline" : "{name} aanpassen",
180 "settings.service.form.enableAudio" : "Enable audio", 191 "settings.service.form.enableAudio" : "Audio inschakelen",
181 "settings.service.form.enableBadge" : "Show unread message badges", 192 "settings.service.form.enableBadge" : "Toon badges met ongelezen berichten",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Dark Mode aanzetten",
183 "settings.service.form.enableNotification" : "Notificaties aanzetten", 194 "settings.service.form.enableNotification" : "Notificaties aanzetten",
184 "settings.service.form.enableService" : "Service aanzetten", 195 "settings.service.form.enableService" : "Service aanzetten",
185 "settings.service.form.headlineBadges" : "Unread message badges", 196 "settings.service.form.headlineBadges" : "Ongelezen berichten badges",
186 "settings.service.form.headlineGeneral" : "Algemeen", 197 "settings.service.form.headlineGeneral" : "Algemeen",
187 "settings.service.form.headlineNotifications" : "Notifications", 198 "settings.service.form.headlineNotifications" : "Meldingen",
188 "settings.service.form.icon" : "Custom icon", 199 "settings.service.form.icon" : "Aangepast icoon",
189 "settings.service.form.iconDelete" : "Verwijderen", 200 "settings.service.form.iconDelete" : "Verwijderen",
190 "settings.service.form.iconUpload" : "Drop your image, or click here", 201 "settings.service.form.iconUpload" : "Sleep en drop je afbeelding, of klik hier",
191 "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...", 202 "settings.service.form.indirectMessageInfo" : "Je wordt verwittigd over alle nieuwe berichten in een kanaal, niet alleen @username, @channel, @here, ...",
192 "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten", 203 "settings.service.form.indirectMessages" : "Toon berichten-badge voor alle nieuwe berichten",
193 "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", 204 "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldingsgeluiden en afgespeelde audio uitgeschakeld zijn",
194 "settings.service.form.name" : "Naam", 205 "settings.service.form.name" : "Naam",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Instellingen",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Poort",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw op na het aanpassen van proxy Instellingen.",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Gebruiker (optioneel)",
203 "settings.service.form.saveButton" : "Service bewaren", 214 "settings.service.form.saveButton" : "Service opslaan",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Taal spellingscontrole",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Gebruik Systeemstandaard ({default})",
206 "settings.service.form.tabHosted" : "Gehost", 217 "settings.service.form.tabHosted" : "Gehost",
207 "settings.service.form.tabOnPremise" : "Intern gehost ⭐️", 218 "settings.service.form.tabOnPremise" : "Intern gehost ⭐️",
208 "settings.service.form.team" : "Team", 219 "settings.service.form.team" : "Team",
209 "settings.service.form.useHostedService" : "Use the hosted {name} service.", 220 "settings.service.form.useHostedService" : "Gebruik de gehoste {name} service.",
210 "settings.service.form.yourServices" : "Jouw services", 221 "settings.service.form.yourServices" : "Jouw services",
211 "settings.services.deletedInfo" : "Service werd verwijderd", 222 "settings.services.deletedInfo" : "Service werd verwijderd",
212 "settings.services.discoverServices" : "Services ontdekken", 223 "settings.services.discoverServices" : "Services ontdekken",
213 "settings.services.headline" : "Jouw services", 224 "settings.services.headline" : "Jouw services",
214 "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.", 225 "settings.services.noServicesAdded" : "Je hebt nog geen services toegevoegd.",
215 "settings.services.tooltip.isDisabled" : "Service staat uit", 226 "settings.services.tooltip.isDisabled" : "Service is uitgeschakeld",
216 "settings.services.tooltip.isMuted" : "All sounds are muted", 227 "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld",
217 "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", 228 "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit",
218 "settings.services.updatedInfo" : "Je wijzigingen werden bewaard", 229 "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen",
219 "settings.user.form.accountType.company" : "Bedrijf", 230 "settings.user.form.accountType.company" : "Bedrijf",
220 "settings.user.form.accountType.individual" : "Particulier", 231 "settings.user.form.accountType.individual" : "Particulier",
221 "settings.user.form.accountType.label" : "Account type", 232 "settings.user.form.accountType.label" : "Account type",
222 "settings.user.form.accountType.non-profit" : "Non-Profit", 233 "settings.user.form.accountType.non-profit" : "Non-Profit",
223 "settings.user.form.currentPassword" : "Huidig wachtwoord", 234 "settings.user.form.currentPassword" : "Huidig wachtwoord",
224 "settings.user.form.email" : "Email", 235 "settings.user.form.email" : "Email",
225 "settings.user.form.firstname" : "Naam", 236 "settings.user.form.firstname" : "Voornaam",
226 "settings.user.form.lastname" : "Achternaam", 237 "settings.user.form.lastname" : "Achternaam",
227 "settings.user.form.newPassword" : "Nieuw wachtwoord", 238 "settings.user.form.newPassword" : "Nieuw wachtwoord",
228 "sidebar.addNewService" : "!!!Add new service", 239 "sidebar.addNewService" : "Nieuw service toevoegen",
229 "sidebar.muteApp" : "Disable notifications & audio", 240 "sidebar.muteApp" : "Berichten & geluid uitschakelen",
230 "sidebar.settings" : "Instellingen", 241 "sidebar.settings" : "Instellingen",
231 "sidebar.unmuteApp" : "Enable notifications & audio", 242 "sidebar.unmuteApp" : "Berichten & geluid inschakelen",
232 "signup.company.label" : "Bedrijf", 243 "signup.company.label" : "Bedrijf",
233 "signup.email.label" : "E-mailadres", 244 "signup.email.label" : "E-mailadres",
234 "signup.emailDuplicate" : "Er bestaat reeds een gebruiker met dat e-mailadres", 245 "signup.emailDuplicate" : "Er bestaat al een gebruiker met dat e-mailadres",
235 "signup.firstname.label" : "Naam", 246 "signup.firstname.label" : "Voornaam",
236 "signup.headline" : "Registreren", 247 "signup.headline" : "Registreren",
237 "signup.lastname.label" : "Achternaam", 248 "signup.lastname.label" : "Achternaam",
238 "signup.legal.info" : "Door een account aan te maken aanvaard je de", 249 "signup.legal.info" : "Door een account aan te maken aanvaard je de",
@@ -241,15 +252,15 @@
241 "signup.link.login" : "Al een account, inloggen?", 252 "signup.link.login" : "Al een account, inloggen?",
242 "signup.password.label" : "Wachtwoord", 253 "signup.password.label" : "Wachtwoord",
243 "signup.submit.label" : "Account aanmaken", 254 "signup.submit.label" : "Account aanmaken",
244 "subscription.euTaxInfo" : "EU residents: local sales tax may apply", 255 "subscription.euTaxInfo" : "Bewoners binnen EU: lokale belasting kan van toepassing zijn",
245 "subscription.features.ads" : "Geen reclame, nooit!", 256 "subscription.features.ads" : "Geen reclame, nooit!",
246 "subscription.features.comingSoon" : "komt binnenkort", 257 "subscription.features.comingSoon" : "komt binnenkort",
247 "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies", 258 "subscription.features.encryptedSync" : "Synchronisatie van geëncrypteerde sessies",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades",
249 "subscription.features.onpremise" : "Intern gehoste services zoals HipChat", 260 "subscription.features.onpremise" : "Intern gehoste services zoals HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Proxy ondersteuning voor services",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck",
253 "subscription.includedFeatures" : "Een betalend account voor Franz omvat", 264 "subscription.includedFeatures" : "Een betalend account voor Franz omvat",
254 "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", 265 "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden",
255 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", 266 "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen",
@@ -259,19 +270,19 @@
259 "subscriptionPopup.buttonCancel" : "Annuleren", 270 "subscriptionPopup.buttonCancel" : "Annuleren",
260 "subscriptionPopup.buttonDone" : "Klaar", 271 "subscriptionPopup.buttonDone" : "Klaar",
261 "tabs.item.deleteService" : "Service verwijderen", 272 "tabs.item.deleteService" : "Service verwijderen",
262 "tabs.item.disableAudio" : "Disable audio", 273 "tabs.item.disableAudio" : "Audio uitschakelen",
263 "tabs.item.disableNotifications" : "Notificaties uitschakelen", 274 "tabs.item.disableNotifications" : "Notificaties uitschakelen",
264 "tabs.item.disableService" : "Service uitschakelen", 275 "tabs.item.disableService" : "Service uitschakelen",
265 "tabs.item.edit" : "Aanpassen", 276 "tabs.item.edit" : "Aanpassen",
266 "tabs.item.enableAudio" : "Enable audio", 277 "tabs.item.enableAudio" : "Audio inschakelen",
267 "tabs.item.enableNotification" : "Notificaties inschakelen", 278 "tabs.item.enableNotification" : "Notificaties inschakelen",
268 "tabs.item.enableService" : "Service aanzetten", 279 "tabs.item.enableService" : "Service inschakelen",
269 "tabs.item.reload" : "Herladen", 280 "tabs.item.reload" : "Herladen",
270 "validation.email" : "{field} is not valid", 281 "validation.email" : "{field} is niet geldig",
271 "validation.minLength" : "{field} should be at least {length} characters long", 282 "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn",
272 "validation.required" : "{field} is required", 283 "validation.required" : "{field} is vereist",
273 "validation.url" : "{field} is not a valid URL", 284 "validation.url" : "{field} is niet een geldige URL",
274 "welcome.loginButton" : "Inloggen op je account", 285 "welcome.loginButton" : "Inloggen op je account",
275 "welcome.signupButton" : "Maak een gratis account aan", 286 "welcome.signupButton" : "Maak een gratis account aan",
276 "welcome.slogan" : "Messaging that works for you" 287 "welcome.slogan" : "Messaging die voor jou werkt"
277} 288}
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json
index 940f24b0b..df0549a28 100644
--- a/src/i18n/locales/nl.json
+++ b/src/i18n/locales/nl.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Laad opnieuw", 2 "app.errorHandler.action" : "Herladen",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Er ging iets mis",
4 "feature.delayApp.action" : "Sponsor Franz", 4 "feature.delayApp.action" : "Sponsor Franz",
5 "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan", 5 "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan",
6 "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", 6 "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services", 14 "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services",
8 "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", 15 "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.",
16 "global.spellchecker.useDefault" : "Gebruik systeemstandaard ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spelling checken",
9 "import.headline" : "Importeer uw Franz 4-services", 20 "import.headline" : "Importeer uw Franz 4-services",
10 "import.notSupportedHeadline" : "Services die nog niet ondersteund worden in Franz 5", 21 "import.notSupportedHeadline" : "Services die nog niet ondersteund worden in Franz 5",
11 "import.skip.label" : "Ik wil services handmatig toevoegen", 22 "import.skip.label" : "Ik wil services handmatig toevoegen",
@@ -92,11 +103,11 @@
92 "service.crashHandler.text" : "{name} heeft een fout veroorzaakt.", 103 "service.crashHandler.text" : "{name} heeft een fout veroorzaakt.",
93 "service.disabledHandler.action" : "Activeer {name}", 104 "service.disabledHandler.action" : "Activeer {name}",
94 "service.disabledHandler.headline" : "{name} is uitgeschakeld", 105 "service.disabledHandler.headline" : "{name} is uitgeschakeld",
95 "service.errorHandler.action" : "Laad {name} opnieuw", 106 "service.errorHandler.action" : "{name} herladen",
96 "service.errorHandler.editAction" : "Bewerk {name}", 107 "service.errorHandler.editAction" : "Bewerk {name}",
97 "service.errorHandler.headline" : "Oh nee!", 108 "service.errorHandler.headline" : "Oh nee!",
98 "service.errorHandler.message" : "Fout", 109 "service.errorHandler.message" : "Fout",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} kon niet geladen worden.",
100 "services.getStarted" : "Begin", 111 "services.getStarted" : "Begin",
101 "services.welcome" : "Welkom bij Franz", 112 "services.welcome" : "Welkom bij Franz",
102 "settings.account.account.editButton" : "Bewerk account", 113 "settings.account.account.editButton" : "Bewerk account",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten", 203 "settings.service.form.indirectMessages" : "Toon berichtenbadge voor alle nieuwe berichten",
193 "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn", 204 "settings.service.form.isMutedInfo" : "Indien uitgeschakeld zullen alle meldinggeluiden en afgespeelde audio uitgeschakeld zijn",
194 "settings.service.form.name" : "Naam", 205 "settings.service.form.name" : "Naam",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy instellingen",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers", 208 "settings.service.form.proxy.info" : "Proxy instellingen worden niet gesynchroniseerd met de Franz servers",
198 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken", 209 "settings.service.form.proxy.isEnabled" : "Proxy gebruiken",
199 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)", 210 "settings.service.form.proxy.password" : "Wachtwoord (optioneel)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Poort",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Start Franz opnieuw na het aanpassen van proxy instellingen.",
202 "settings.service.form.proxy.user" : "Gebruiker (optioneel)", 213 "settings.service.form.proxy.user" : "Gebruiker (optioneel)",
203 "settings.service.form.saveButton" : "Service opslaan", 214 "settings.service.form.saveButton" : "Service opslaan",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Spellingcontrole taal",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Gebruik systeemstandaard ({default})",
206 "settings.service.form.tabHosted" : "Gehost", 217 "settings.service.form.tabHosted" : "Gehost",
207 "settings.service.form.tabOnPremise" : "Zelf-gehost ⭐️", 218 "settings.service.form.tabOnPremise" : "Zelf-gehost ⭐️",
208 "settings.service.form.team" : "Team", 219 "settings.service.form.team" : "Team",
@@ -247,7 +258,7 @@
247 "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie", 258 "subscription.features.encryptedSync" : "Beveiligde sessie synchronisatie",
248 "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades", 259 "subscription.features.noInterruptions" : "Geen haperingen & pop ups over upgrades",
249 "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat", 260 "subscription.features.onpremise" : "Add on-geschikt\/gehoste services zoals HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe",
251 "subscription.features.proxy" : "Proxy understeuning voor diensten", 262 "subscription.features.proxy" : "Proxy understeuning voor diensten",
252 "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", 263 "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck",
253 "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", 264 "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat",
@@ -266,7 +277,7 @@
266 "tabs.item.enableAudio" : "Audio inschakelen", 277 "tabs.item.enableAudio" : "Audio inschakelen",
267 "tabs.item.enableNotification" : "Meldingen inschakelen", 278 "tabs.item.enableNotification" : "Meldingen inschakelen",
268 "tabs.item.enableService" : "Service inschakelen", 279 "tabs.item.enableService" : "Service inschakelen",
269 "tabs.item.reload" : "Laad opnieuw", 280 "tabs.item.reload" : "Herladen",
270 "validation.email" : "{field} is niet geldig", 281 "validation.email" : "{field} is niet geldig",
271 "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn", 282 "validation.minLength" : "{field} moet minimaal {length} karakters lang zijn",
272 "validation.required" : "{field} is vereist", 283 "validation.required" : "{field} is vereist",
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json
index d45e5ce24..e1a1747b3 100644
--- a/src/i18n/locales/pl.json
+++ b/src/i18n/locales/pl.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Przeładuj", 2 "app.errorHandler.action" : "Przeładuj",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Coś poszło nie tak",
4 "feature.delayApp.action" : "Uzyskaj licencję Franz Supporter", 4 "feature.delayApp.action" : "Uzyskaj licencję Franz Supporter",
5 "feature.delayApp.headline" : "Kup licencję Franz Supporter , aby nie czekać", 5 "feature.delayApp.headline" : "Aby nie czekać kup licencję Franz Supporter",
6 "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.", 6 "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", 14 "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online",
8 "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", 15 "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.",
16 "global.spellchecker.useDefault" : "Użyj domyślnego dla systemu ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Język słownika",
9 "import.headline" : "Importuj usługi Franz 4", 20 "import.headline" : "Importuj usługi Franz 4",
10 "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5", 21 "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5",
11 "import.skip.label" : "Chcę dodać usługi samodzielnie", 22 "import.skip.label" : "Chcę dodać usługi samodzielnie",
@@ -25,7 +36,7 @@
25 "login.email.label" : "Adres email", 36 "login.email.label" : "Adres email",
26 "login.headline" : "Zaloguj się", 37 "login.headline" : "Zaloguj się",
27 "login.invalidCredentials" : "Adres email lub hasło są błędne", 38 "login.invalidCredentials" : "Adres email lub hasło są błędne",
28 "login.link.password" : "Wyzeruj hasło", 39 "login.link.password" : "Przypomnij hasło",
29 "login.link.signup" : "Załóż darmowe konto", 40 "login.link.signup" : "Załóż darmowe konto",
30 "login.password.label" : "Hasło", 41 "login.password.label" : "Hasło",
31 "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.", 42 "login.serverLogout" : "Twoja sesja wygasła, zaloguj się ponownie.",
@@ -36,7 +47,7 @@
36 "menu.app.hideOthers" : "Ukryj pozostałe", 47 "menu.app.hideOthers" : "Ukryj pozostałe",
37 "menu.app.quit" : "Zakończ", 48 "menu.app.quit" : "Zakończ",
38 "menu.app.settings" : "Ustawienia", 49 "menu.app.settings" : "Ustawienia",
39 "menu.app.unhide" : "Pokaż", 50 "menu.app.unhide" : "Pokaż więcej",
40 "menu.edit" : "Edytuj", 51 "menu.edit" : "Edytuj",
41 "menu.edit.copy" : "Skopiuj", 52 "menu.edit.copy" : "Skopiuj",
42 "menu.edit.cut" : "Wytnij", 53 "menu.edit.cut" : "Wytnij",
@@ -68,20 +79,20 @@
68 "menu.view.resetZoom" : "Domyślny rozmiar", 79 "menu.view.resetZoom" : "Domyślny rozmiar",
69 "menu.view.toggleDevTools" : "Pokaż narzędzia developerskie", 80 "menu.view.toggleDevTools" : "Pokaż narzędzia developerskie",
70 "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy", 81 "menu.view.toggleFullScreen" : "Przełącz tryb pełnoekranowy",
71 "menu.view.toggleServiceDevTools" : "Włącz narzędzia developerskie serwisu", 82 "menu.view.toggleServiceDevTools" : "Włącz narzędzia developerskie usługi",
72 "menu.view.zoomIn" : "Powiększ", 83 "menu.view.zoomIn" : "Powiększ",
73 "menu.view.zoomOut" : "Pomniejsz", 84 "menu.view.zoomOut" : "Pomniejsz",
74 "menu.window" : "Okno", 85 "menu.window" : "Okno",
75 "menu.window.close" : "Zamknij", 86 "menu.window.close" : "Zamknij",
76 "menu.window.minimize" : "Zminimalizuj", 87 "menu.window.minimize" : "Zminimalizuj",
77 "password.email.label" : "Adres email", 88 "password.email.label" : "Adres email",
78 "password.headline" : "Wyzeruj hasło", 89 "password.headline" : "Przypomnij hasło",
79 "password.link.login" : "Zaloguj się na swoje konto", 90 "password.link.login" : "Zaloguj się na swoje konto",
80 "password.link.signup" : "Stwórz darmowe konto", 91 "password.link.signup" : "Stwórz darmowe konto",
81 "password.noUser" : "Nie znaleziono użytkownika z takim adresem email", 92 "password.noUser" : "Nie znaleziono użytkownika z takim adresem email",
82 "password.submit.label" : "Wyślij", 93 "password.submit.label" : "Wyślij",
83 "password.successInfo" : "Proszę sprawdzić swój email", 94 "password.successInfo" : "Proszę sprawdzić swój email",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Ulepsz swoje konto",
85 "pricing.headline" : "Wspieraj Franz", 96 "pricing.headline" : "Wspieraj Franz",
86 "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.", 97 "pricing.link.skipPayment" : "Nie chcę wspierać rozwoju aplikacji Franz.",
87 "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz", 98 "pricing.submit.label" : "Chcę wspierać rozwój aplikacji Franz",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Edytuj {name}", 107 "service.errorHandler.editAction" : "Edytuj {name}",
97 "service.errorHandler.headline" : "O nie!", 108 "service.errorHandler.headline" : "O nie!",
98 "service.errorHandler.message" : "Błąd", 109 "service.errorHandler.message" : "Błąd",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "Nie udało s załadować {name}.",
100 "services.getStarted" : "Zacznij", 111 "services.getStarted" : "Zacznij",
101 "services.welcome" : "Witaj w programie Franz", 112 "services.welcome" : "Witaj w programie Franz",
102 "settings.account.account.editButton" : "Modyfikuj konta", 113 "settings.account.account.editButton" : "Modyfikuj konta",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości", 203 "settings.service.form.indirectMessages" : "Pokaż ikonę wiadomości dla wszystkich nowych wiadomości",
193 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone", 204 "settings.service.form.isMutedInfo" : "Kiedy nieaktywne, wszystkie dźwięki powiadomień są wyciszone",
194 "settings.service.form.name" : "Nazwa", 205 "settings.service.form.name" : "Nazwa",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Ustawienia Proxy HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Host Proxy\/IP", 207 "settings.service.form.proxy.host" : "Host Proxy\/IP",
197 "settings.service.form.proxy.info" : "Ustawienia proxy nie będą zsynchronizowane z serwerami Franza.", 208 "settings.service.form.proxy.info" : "Ustawienia proxy nie będą zsynchronizowane z serwerami Franza.",
198 "settings.service.form.proxy.isEnabled" : "Użyj Proxy", 209 "settings.service.form.proxy.isEnabled" : "Użyj Proxy",
199 "settings.service.form.proxy.password" : "Hasło (opcjonalnie)", 210 "settings.service.form.proxy.password" : "Hasło (opcjonalnie)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Uruchom ponownie Franz po zmianie ustawi proxy.",
202 "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)", 213 "settings.service.form.proxy.user" : "Użytkownik (opcjonalnie)",
203 "settings.service.form.saveButton" : "Zapisz usługę", 214 "settings.service.form.saveButton" : "Zapisz usługę",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Język sprawdzania pisowni",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Użyj domyślnego dla systemu ({default})",
206 "settings.service.form.tabHosted" : "Hostowane", 217 "settings.service.form.tabHosted" : "Hostowane",
207 "settings.service.form.tabOnPremise" : "Hostowane lokalnie ⭐️", 218 "settings.service.form.tabOnPremise" : "Hostowane lokalnie ⭐️",
208 "settings.service.form.team" : "Zespół", 219 "settings.service.form.team" : "Zespół",
@@ -245,11 +256,11 @@
245 "subscription.features.ads" : "Brak reklam, na zawsze!", 256 "subscription.features.ads" : "Brak reklam, na zawsze!",
246 "subscription.features.comingSoon" : "wkrótce dostępne", 257 "subscription.features.comingSoon" : "wkrótce dostępne",
247 "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji", 258 "subscription.features.encryptedSync" : "Szyfrowana synchronizacja sesji",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Bez opóźnień i przypominania o ulepszeniu licencji",
249 "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat", 260 "subscription.features.onpremise" : "Dodawanie lokalnych\/hostowanych usług takich jak HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost",
251 "subscription.features.proxy" : "Obsługa proxy dla usług", 262 "subscription.features.proxy" : "Obsługa proxy dla usług",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni",
253 "subscription.includedFeatures" : "Płatne konto Franz Premium obejmuje", 264 "subscription.includedFeatures" : "Płatne konto Franz Premium obejmuje",
254 "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", 265 "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"",
255 "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", 266 "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz",
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json
index c0cf0039f..0ab5bdd21 100644
--- a/src/i18n/locales/pt-BR.json
+++ b/src/i18n/locales/pt-BR.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Recarregar", 2 "app.errorHandler.action" : "Recarregar",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Alguma coisa deu errado",
4 "feature.delayApp.action" : "Adquira uma licença Franz Supporter", 4 "feature.delayApp.action" : "Adquira uma licença Franz Supporter",
5 "feature.delayApp.headline" : "Por favor, adquira uma licença Franz Supporter para pular o tempo de espera", 5 "feature.delayApp.headline" : "Por favor, adquira uma licença Franz Supporter para pular o tempo de espera",
6 "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", 6 "feature.delayApp.text" : "Franz continuará em {seconds} segundos.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.", 14 "global.api.unhealthy" : "Não foi possível conectar-se aos serviços on-line do Franz.",
8 "global.notConnectedToTheInternet" : "Você não está conectado à internet", 15 "global.notConnectedToTheInternet" : "Você não está conectado à internet",
16 "global.spellchecker.useDefault" : "Use o padrão do sistema ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Idioma de verificação ortográfica",
9 "import.headline" : "Importe seus serviços do Franz 4 ", 20 "import.headline" : "Importe seus serviços do Franz 4 ",
10 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5 ", 21 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5 ",
11 "import.skip.label" : "Quero adicionar serviços manualmente", 22 "import.skip.label" : "Quero adicionar serviços manualmente",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Editar {name}", 107 "service.errorHandler.editAction" : "Editar {name}",
97 "service.errorHandler.headline" : "Ah, não!", 108 "service.errorHandler.headline" : "Ah, não!",
98 "service.errorHandler.message" : "Erro", 109 "service.errorHandler.message" : "Erro",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} não de ser carregado.",
100 "services.getStarted" : "Iniciar", 111 "services.getStarted" : "Iniciar",
101 "services.welcome" : "Bem-vindo ao Franz!", 112 "services.welcome" : "Bem-vindo ao Franz!",
102 "settings.account.account.editButton" : "Editar conta", 113 "settings.account.account.editButton" : "Editar conta",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens", 203 "settings.service.form.indirectMessages" : "Mostrar avisos para todas as mensagens",
193 "settings.service.form.isMutedInfo" : "Quando desativado, as notificações sonoras e áudios ficarão em silêncio", 204 "settings.service.form.isMutedInfo" : "Quando desativado, as notificações sonoras e áudios ficarão em silêncio",
194 "settings.service.form.name" : "Nome", 205 "settings.service.form.name" : "Nome",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Configurações de HTTP\/HTTPS Proxy",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Host\/IP",
197 "settings.service.form.proxy.info" : "As configurações de proxy não serão sincronizadas com os servidores do Franz.", 208 "settings.service.form.proxy.info" : "As configurações de proxy não serão sincronizadas com os servidores do Franz.",
198 "settings.service.form.proxy.isEnabled" : "Usar o Proxy", 209 "settings.service.form.proxy.isEnabled" : "Usar o Proxy",
199 "settings.service.form.proxy.password" : "Senha (opcional)", 210 "settings.service.form.proxy.password" : "Senha (opcional)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Porta",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Por favor, reinicie o Franz após alterar as configurações de proxy.",
202 "settings.service.form.proxy.user" : "Usuário (opcional)", 213 "settings.service.form.proxy.user" : "Usuário (opcional)",
203 "settings.service.form.saveButton" : "Salvar serviço", 214 "settings.service.form.saveButton" : "Salvar serviço",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Língua do corretor ortográfico",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Use o padrão do sistema ({default})",
206 "settings.service.form.tabHosted" : "Hospedado", 217 "settings.service.form.tabHosted" : "Hospedado",
207 "settings.service.form.tabOnPremise" : "Auto-hospedado ⭐️", 218 "settings.service.form.tabOnPremise" : "Auto-hospedado ⭐️",
208 "settings.service.form.team" : "Equipe", 219 "settings.service.form.team" : "Equipe",
@@ -245,9 +256,9 @@
245 "subscription.features.ads" : "Sem anúncios, pra sempre!", 256 "subscription.features.ads" : "Sem anúncios, pra sempre!",
246 "subscription.features.comingSoon" : "em breve", 257 "subscription.features.comingSoon" : "em breve",
247 "subscription.features.encryptedSync" : "Sincronização encriptada das sessões", 258 "subscription.features.encryptedSync" : "Sincronização encriptada das sessões",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Sem demora e sem chateação para comprar uma licença. ",
249 "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat", 260 "subscription.features.onpremise" : "Adicionar serviços locais\/hospedados como o HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost",
251 "subscription.features.proxy" : "Suporte de proxy para serviços", 262 "subscription.features.proxy" : "Suporte de proxy para serviços",
252 "subscription.features.spellchecker" : "Suporte para corretor ortográfico", 263 "subscription.features.spellchecker" : "Suporte para corretor ortográfico",
253 "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui", 264 "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui",
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json
index 80e8094f5..9e7455bdf 100644
--- a/src/i18n/locales/pt.json
+++ b/src/i18n/locales/pt.json
@@ -1,14 +1,25 @@
1{ 1{
2 "app.errorHandler.action" : "Recarregar", 2 "app.errorHandler.action" : "Recarregar",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Alguma coisa correu mal",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Faz parte do grupo de apoio do Franz",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Por favor compre uma licença Franz Supporter para saltar a fila de espera",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz irá continuar em {seconds} segundos.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Não foi possível estabelecer ligação aos serviços do Franz", 14 "global.api.unhealthy" : "Não foi possível estabelecer ligação aos serviços do Franz",
8 "global.notConnectedToTheInternet" : "Não existe ligação à Internet", 15 "global.notConnectedToTheInternet" : "Não estás ligado à Internet",
9 "import.headline" : "Importe os seus serviços do Franz 4", 16 "global.spellchecker.useDefault" : "Utilizar o Sistema por Omissão ({default})",
10 "import.notSupportedHeadline" : "Serviços ainda não suportados pelo Franz 5", 17 "global.spellchecking.autodetect" : "Detect language automatically",
11 "import.skip.label" : "Pretendo adicionar serviços manualmente", 18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Linguagem para correção ortográfica",
20 "import.headline" : "Importa os teus serviços do Franz",
21 "import.notSupportedHeadline" : "Estes serviços ainda não são suportados pelo Franz 5",
22 "import.skip.label" : "Eu quero adicionar serviços manualmente",
12 "import.submit.label" : "Importar serviços", 23 "import.submit.label" : "Importar serviços",
13 "infobar.buttonChangelog" : "O que há de novo?", 24 "infobar.buttonChangelog" : "O que há de novo?",
14 "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações", 25 "infobar.buttonInstallUpdate" : "Reiniciar e instalar atualizações",
@@ -66,7 +77,7 @@
66 "menu.view.reloadFranz" : "Recarregar Franz", 77 "menu.view.reloadFranz" : "Recarregar Franz",
67 "menu.view.reloadService" : "Recarregar serviço", 78 "menu.view.reloadService" : "Recarregar serviço",
68 "menu.view.resetZoom" : "Tamanho Real", 79 "menu.view.resetZoom" : "Tamanho Real",
69 "menu.view.toggleDevTools" : "Activar\/Desativar Ferramentas de Desenvolvimento", 80 "menu.view.toggleDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento",
70 "menu.view.toggleFullScreen" : "Ativar\/Desativar Ecrã Completo", 81 "menu.view.toggleFullScreen" : "Ativar\/Desativar Ecrã Completo",
71 "menu.view.toggleServiceDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento de Serviços", 82 "menu.view.toggleServiceDevTools" : "Ativar\/Desativar Ferramentas de Desenvolvimento de Serviços",
72 "menu.view.zoomIn" : "Aumentar", 83 "menu.view.zoomIn" : "Aumentar",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Não existe nenhuma conta associada a esse endereço de e-mail", 92 "password.noUser" : "Não existe nenhuma conta associada a esse endereço de e-mail",
82 "password.submit.label" : "Submeter", 93 "password.submit.label" : "Submeter",
83 "password.successInfo" : "Por favor verifique o seu endereço de e-mail", 94 "password.successInfo" : "Por favor verifique o seu endereço de e-mail",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Atualiza a tua conta",
85 "pricing.headline" : "Apoie o Franz", 96 "pricing.headline" : "Apoie o Franz",
86 "pricing.link.skipPayment" : "Não pretendo patrocinar o desenvolvimento do Franz", 97 "pricing.link.skipPayment" : "Não pretendo patrocinar o desenvolvimento do Franz",
87 "pricing.submit.label" : "Pretendo patrocinar o desenvolvimento do Franz", 98 "pricing.submit.label" : "Pretendo patrocinar o desenvolvimento do Franz",
@@ -96,11 +107,11 @@
96 "service.errorHandler.editAction" : "Editar {name}", 107 "service.errorHandler.editAction" : "Editar {name}",
97 "service.errorHandler.headline" : "Oh não!", 108 "service.errorHandler.headline" : "Oh não!",
98 "service.errorHandler.message" : "Erro", 109 "service.errorHandler.message" : "Erro",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} falhou o carregamento",
100 "services.getStarted" : "Vamos começar", 111 "services.getStarted" : "Vamos começar",
101 "services.welcome" : "Bem-vindo ao Franz", 112 "services.welcome" : "Bem-vindo ao Franz",
102 "settings.account.account.editButton" : "Editar conta", 113 "settings.account.account.editButton" : "Editar conta",
103 "settings.account.accountType.basic" : "Conta básica", 114 "settings.account.accountType.basic" : "Conta Básica",
104 "settings.account.accountType.premium" : "Conta Premium", 115 "settings.account.accountType.premium" : "Conta Premium",
105 "settings.account.buttonSave" : "Atualizar o perfil", 116 "settings.account.buttonSave" : "Atualizar o perfil",
106 "settings.account.deleteAccount" : "Apagar conta", 117 "settings.account.deleteAccount" : "Apagar conta",
@@ -127,7 +138,7 @@
127 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano", 138 "settings.app.form.autoLaunchInBackground" : "Abrir em segundo plano",
128 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz após iniciar o computador", 139 "settings.app.form.autoLaunchOnStart" : "Iniciar o Franz após iniciar o computador",
129 "settings.app.form.beta" : "Incluir versões instáveis (beta)", 140 "settings.app.form.beta" : "Incluir versões instáveis (beta)",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Junta-te ao Lado Negro",
131 "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU", 142 "settings.app.form.enableGPUAcceleration" : "Activar Aceleração de GPU",
132 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu", 143 "settings.app.form.enableMenuBar" : "Mostrar Franz na Barra de Menu",
133 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica", 144 "settings.app.form.enableSpellchecking" : "Ativar verificação ortográfica",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela", 149 "settings.app.form.runInBackground" : "Manter o Franz em segundo plano ao fechar a janela",
139 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados", 150 "settings.app.form.showDisabledServices" : "Apresentar separadores de serviços desativados",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Apresentar emblema com o número de mensagens não lidas quando as notificações estão desativadas",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Linguagem para correção ortográfica",
142 "settings.app.headline" : "Definições", 153 "settings.app.headline" : "Definições",
143 "settings.app.headlineAdvanced" : "Avançado", 154 "settings.app.headlineAdvanced" : "Avançado",
144 "settings.app.headlineAppearance" : "Aparência", 155 "settings.app.headlineAppearance" : "Aparência",
@@ -151,10 +162,10 @@
151 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...", 162 "settings.app.updateStatusAvailable" : "Atualização disponivel, a transferir...",
152 "settings.app.updateStatusSearching" : "A procurar atualizações", 163 "settings.app.updateStatusSearching" : "A procurar atualizações",
153 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz", 164 "settings.app.updateStatusUpToDate" : "Está a usar a versão mais recente do Franz",
154 "settings.invite.headline" : "Convide amigos", 165 "settings.invite.headline" : "Convide Amigos",
155 "settings.navigation.account" : "Conta", 166 "settings.navigation.account" : "Conta",
156 "settings.navigation.availableServices" : "Serviços disponíveis", 167 "settings.navigation.availableServices" : "Serviços disponíveis",
157 "settings.navigation.inviteFriends" : "Convide amigos", 168 "settings.navigation.inviteFriends" : "Convide Amigos",
158 "settings.navigation.logout" : "Terminar sessão", 169 "settings.navigation.logout" : "Terminar sessão",
159 "settings.navigation.settings" : "Definições", 170 "settings.navigation.settings" : "Definições",
160 "settings.navigation.yourServices" : "Os seus serviços", 171 "settings.navigation.yourServices" : "Os seus serviços",
@@ -163,9 +174,9 @@
163 "settings.recipes.headline" : "Serviços disponíveis", 174 "settings.recipes.headline" : "Serviços disponíveis",
164 "settings.recipes.missingService" : "Falta um serviço?", 175 "settings.recipes.missingService" : "Falta um serviço?",
165 "settings.recipes.mostPopular" : "Os mais populares", 176 "settings.recipes.mostPopular" : "Os mais populares",
166 "settings.recipes.nothingFound" : "Lamentamos, nenhum serviço corresponde ao pesquisado.", 177 "settings.recipes.nothingFound" : "Lamentamos, nenhum serviço corresponde ao termo pesquisado.",
167 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado", 178 "settings.recipes.servicesSuccessfulAddedInfo" : "Serviço adicionado com sucesso",
168 "settings.searchService" : "Pesquisa de serviço", 179 "settings.searchService" : "Pesquisar erviço",
169 "settings.service.error.goBack" : "Voltar aos serviços", 180 "settings.service.error.goBack" : "Voltar aos serviços",
170 "settings.service.error.headline" : "Erro", 181 "settings.service.error.headline" : "Erro",
171 "settings.service.error.message" : "Não foi possível carregar a receita do serviço.", 182 "settings.service.error.message" : "Não foi possível carregar a receita do serviço.",
@@ -179,30 +190,30 @@
179 "settings.service.form.editServiceHeadline" : "Editar {name}", 190 "settings.service.form.editServiceHeadline" : "Editar {name}",
180 "settings.service.form.enableAudio" : "Ativar áudio", 191 "settings.service.form.enableAudio" : "Ativar áudio",
181 "settings.service.form.enableBadge" : "Mostrar emblemas de mensagens não lidas", 192 "settings.service.form.enableBadge" : "Mostrar emblemas de mensagens não lidas",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Ativar o Tema Escuro",
183 "settings.service.form.enableNotification" : "Ativar notificações", 194 "settings.service.form.enableNotification" : "Ativar notificações",
184 "settings.service.form.enableService" : "Ativar serviço", 195 "settings.service.form.enableService" : "Ativar serviço",
185 "settings.service.form.headlineBadges" : "Emblema de mensagem não lida", 196 "settings.service.form.headlineBadges" : "Emblema de mensagem não lida",
186 "settings.service.form.headlineGeneral" : "Geral", 197 "settings.service.form.headlineGeneral" : "Geral",
187 "settings.service.form.headlineNotifications" : "Notificações", 198 "settings.service.form.headlineNotifications" : "Notificações",
188 "settings.service.form.icon" : "Personalizar ícone", 199 "settings.service.form.icon" : "Ícone personalizado",
189 "settings.service.form.iconDelete" : "Apagar", 200 "settings.service.form.iconDelete" : "Apagar",
190 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui", 201 "settings.service.form.iconUpload" : "Arraste a sua imagem, ou clique aqui",
191 "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...", 202 "settings.service.form.indirectMessageInfo" : "Será notificado sobre todas as novas mensagens num canal, não apenas @username, @channel, @here, ...",
192 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens", 203 "settings.service.form.indirectMessages" : "Mostrar o emblema da mensagem para todas as novas mensagens",
193 "settings.service.form.isMutedInfo" : "Quando desativado, todos sons e reproduções de áudio serão silenciados", 204 "settings.service.form.isMutedInfo" : "Quando desativado, todos sons e reproduções de áudio serão silenciados",
194 "settings.service.form.name" : "Nome", 205 "settings.service.form.name" : "Nome",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Definições HTTP\/HTTPS Proxy",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Host\/IP proxy",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "As definições do proxy não serão guardadas nos servidores do Franz.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Usar Proxy",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Palavra-chave (opcional)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Porta",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Reinicie, por favor, após atualizar as definições do Franz",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Utilizador (opcional)",
203 "settings.service.form.saveButton" : "Guardar serviço", 214 "settings.service.form.saveButton" : "Guardar serviço",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Linguagem de correção ortográfica",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Utilizar o Sistema por Omissão ({default})",
206 "settings.service.form.tabHosted" : "Com domínio", 217 "settings.service.form.tabHosted" : "Com domínio",
207 "settings.service.form.tabOnPremise" : "Com domínio próprio ⭐️", 218 "settings.service.form.tabOnPremise" : "Com domínio próprio ⭐️",
208 "settings.service.form.team" : "Equipa", 219 "settings.service.form.team" : "Equipa",
@@ -211,7 +222,7 @@
211 "settings.services.deletedInfo" : "O serviço foi apagado", 222 "settings.services.deletedInfo" : "O serviço foi apagado",
212 "settings.services.discoverServices" : "Descobrir serviços", 223 "settings.services.discoverServices" : "Descobrir serviços",
213 "settings.services.headline" : "Os seus serviços", 224 "settings.services.headline" : "Os seus serviços",
214 "settings.services.noServicesAdded" : "Ainda não adicionou um serviço.", 225 "settings.services.noServicesAdded" : "Ainda não adicionou nenhum serviço.",
215 "settings.services.tooltip.isDisabled" : "O serviço está desativado", 226 "settings.services.tooltip.isDisabled" : "O serviço está desativado",
216 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", 227 "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados",
217 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", 228 "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas",
@@ -245,11 +256,11 @@
245 "subscription.features.ads" : "Sem anúncios, para sempre!", 256 "subscription.features.ads" : "Sem anúncios, para sempre!",
246 "subscription.features.comingSoon" : "em breve", 257 "subscription.features.comingSoon" : "em breve",
247 "subscription.features.encryptedSync" : "Sincronização encriptada de sessão", 258 "subscription.features.encryptedSync" : "Sincronização encriptada de sessão",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Sem atrasos na aplicação nem mensagens para comprar uma licença",
249 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat", 260 "subscription.features.onpremise" : "Adicionar serviços 'on-premise'\/hosted como o HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Adicione serviços como Mattermost no local ou online",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Suporte Proxy para os serviços",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Suporte para correção ortográfica",
253 "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a", 264 "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a",
254 "subscription.paymentSessionError" : "Erro no serviço de pagamento", 265 "subscription.paymentSessionError" : "Erro no serviço de pagamento",
255 "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz", 266 "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz",
@@ -268,7 +279,7 @@
268 "tabs.item.enableService" : "Ativar serviço", 279 "tabs.item.enableService" : "Ativar serviço",
269 "tabs.item.reload" : "Recarregar", 280 "tabs.item.reload" : "Recarregar",
270 "validation.email" : "{field} não é válido", 281 "validation.email" : "{field} não é válido",
271 "validation.minLength" : "{field} deveria ter pelo menos {comprimento} caracteres", 282 "validation.minLength" : "{field} deveria ter pelo menos {length} caracteres",
272 "validation.required" : "{field} é obrigatório", 283 "validation.required" : "{field} é obrigatório",
273 "validation.url" : "{field} não é uma hiperligação válida", 284 "validation.url" : "{field} não é uma hiperligação válida",
274 "welcome.loginButton" : "Iniciar sessão", 285 "welcome.loginButton" : "Iniciar sessão",
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json
index b605afc4d..6098c8ad9 100644
--- a/src/i18n/locales/ru.json
+++ b/src/i18n/locales/ru.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "Перезагрузить", 2 "app.errorHandler.action" : "Перезагрузить",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Что-то пошло не так",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Получите лицензию Franz Supporter",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Пожалуйста приобретите лицензию Franz Supporter чтобы отменить ожидание",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz продолжит работу через {seconds} секунд.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Невозможно подключиться к онлайн-сервисам Franz", 14 "global.api.unhealthy" : "Невозможно подключиться к онлайн-сервисам Franz",
8 "global.notConnectedToTheInternet" : "Вы не подключены к сети Интернет", 15 "global.notConnectedToTheInternet" : "Вы не подключены к сети Интернет",
16 "global.spellchecker.useDefault" : "Использовать системные параметры по умолчанию ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Проверка правописания",
9 "import.headline" : "Импортировать ваши сервисы из Franz 4", 20 "import.headline" : "Импортировать ваши сервисы из Franz 4",
10 "import.notSupportedHeadline" : "Сервисы пока ещё не поддерживаются в Franz 5", 21 "import.notSupportedHeadline" : "Сервисы пока ещё не поддерживаются в Franz 5",
11 "import.skip.label" : "Я хочу добавить сервисы вручную", 22 "import.skip.label" : "Я хочу добавить сервисы вручную",
@@ -58,7 +69,7 @@
58 "menu.help.privacy" : "Политика конфиденциальности", 69 "menu.help.privacy" : "Политика конфиденциальности",
59 "menu.help.support" : "Поддержка", 70 "menu.help.support" : "Поддержка",
60 "menu.help.tos" : "Условия использования", 71 "menu.help.tos" : "Условия использования",
61 "menu.services" : "Сы", 72 "menu.services" : "С",
62 "menu.services.addNewService" : "Добавить новый сервис...", 73 "menu.services.addNewService" : "Добавить новый сервис...",
63 "menu.view" : "Вид", 74 "menu.view" : "Вид",
64 "menu.view.enterFullScreen" : "На весь экран", 75 "menu.view.enterFullScreen" : "На весь экран",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Не найдено пользователя с таким адресом электронной почты", 92 "password.noUser" : "Не найдено пользователя с таким адресом электронной почты",
82 "password.submit.label" : "Принять", 93 "password.submit.label" : "Принять",
83 "password.successInfo" : "Проверьте вашу электронную почту", 94 "password.successInfo" : "Проверьте вашу электронную почту",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Перейти на платную подписку",
85 "pricing.headline" : "Поддержать Franz", 96 "pricing.headline" : "Поддержать Franz",
86 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.", 97 "pricing.link.skipPayment" : "Я не хочу поддерживать разработку Franz.",
87 "pricing.submit.label" : "Я хочу поддержать разработку Franz", 98 "pricing.submit.label" : "Я хочу поддержать разработку Franz",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Редактирование {name}", 107 "service.errorHandler.editAction" : "Редактирование {name}",
97 "service.errorHandler.headline" : "О, нет!", 108 "service.errorHandler.headline" : "О, нет!",
98 "service.errorHandler.message" : "Ошибка", 109 "service.errorHandler.message" : "Ошибка",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} не смог загрузиться.",
100 "services.getStarted" : "Начать работу", 111 "services.getStarted" : "Начать работу",
101 "services.welcome" : "Добро пожаловать во Franz", 112 "services.welcome" : "Добро пожаловать во Franz",
102 "settings.account.account.editButton" : "Редактировать аккаунт", 113 "settings.account.account.editButton" : "Редактировать аккаунт",
@@ -127,7 +138,7 @@
127 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне", 138 "settings.app.form.autoLaunchInBackground" : "Открывать в фоне",
128 "settings.app.form.autoLaunchOnStart" : "Запускать Franz при старте", 139 "settings.app.form.autoLaunchOnStart" : "Запускать Franz при старте",
129 "settings.app.form.beta" : "Включая бета версии", 140 "settings.app.form.beta" : "Включая бета версии",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Перейти на Тёмную сторону",
131 "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU", 142 "settings.app.form.enableGPUAcceleration" : "Включить ускорение GPU",
132 "settings.app.form.enableMenuBar" : "Показывать Franz на панели меню", 143 "settings.app.form.enableMenuBar" : "Показывать Franz на панели меню",
133 "settings.app.form.enableSpellchecking" : "Включить проверку правописания", 144 "settings.app.form.enableSpellchecking" : "Включить проверку правописания",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна", 149 "settings.app.form.runInBackground" : "Оставлять Franz в фоне при закрытии окна",
139 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб", 150 "settings.app.form.showDisabledServices" : "Показывать вкладки отключённых служб",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Показывать значок непрочитанного сообщения при отключённых уведомлениях",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Проверка правописания",
142 "settings.app.headline" : "Настройки", 153 "settings.app.headline" : "Настройки",
143 "settings.app.headlineAdvanced" : "Дополнительно", 154 "settings.app.headlineAdvanced" : "Дополнительно",
144 "settings.app.headlineAppearance" : "Внешний вид", 155 "settings.app.headlineAppearance" : "Внешний вид",
@@ -176,10 +187,10 @@
176 "settings.service.form.customUrlUpgradeAccount" : "Улучшить ваш аккаунт", 187 "settings.service.form.customUrlUpgradeAccount" : "Улучшить ваш аккаунт",
177 "settings.service.form.customUrlValidationError" : "Невозможно проверить сервер {name}.", 188 "settings.service.form.customUrlValidationError" : "Невозможно проверить сервер {name}.",
178 "settings.service.form.deleteButton" : "Удалить сервис", 189 "settings.service.form.deleteButton" : "Удалить сервис",
179 "settings.service.form.editServiceHeadline" : "Редактирование {name}", 190 "settings.service.form.editServiceHeadline" : "Редактировать {name}",
180 "settings.service.form.enableAudio" : "Включить звук", 191 "settings.service.form.enableAudio" : "Включить звук",
181 "settings.service.form.enableBadge" : "Показывать иконку непрочитанных сообщений", 192 "settings.service.form.enableBadge" : "Показывать иконку непрочитанных сообщений",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Включить Тёмный режим",
183 "settings.service.form.enableNotification" : "Включить уведомления", 194 "settings.service.form.enableNotification" : "Включить уведомления",
184 "settings.service.form.enableService" : "Включить сервис", 195 "settings.service.form.enableService" : "Включить сервис",
185 "settings.service.form.headlineBadges" : "Значки непрочитанных сообщений", 196 "settings.service.form.headlineBadges" : "Значки непрочитанных сообщений",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Показывать значок уведомлений для всех новых сообщений", 203 "settings.service.form.indirectMessages" : "Показывать значок уведомлений для всех новых сообщений",
193 "settings.service.form.isMutedInfo" : "Когда выключено, все звуковые уведомления будут отключены", 204 "settings.service.form.isMutedInfo" : "Когда выключено, все звуковые уведомления будут отключены",
194 "settings.service.form.name" : "Название", 205 "settings.service.form.name" : "Название",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Настройки Прокси HTTP\/HTTPS",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Прокси Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Настройки прокси не будут синхронизированны с серверами Franz",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Использовать прокси",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Пароль (опционально)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Порт",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Пожалуйста перезапустите Franz после изменения настроек прокси.",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Пользователь (опционально)",
203 "settings.service.form.saveButton" : "Сохранить сервис", 214 "settings.service.form.saveButton" : "Сохранить сервис",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Проверка правописания",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Использовать системные параметры по умолчанию ({default})",
206 "settings.service.form.tabHosted" : "Размещено", 217 "settings.service.form.tabHosted" : "Размещено",
207 "settings.service.form.tabOnPremise" : "Свой хостинг ⭐️", 218 "settings.service.form.tabOnPremise" : "Свой хостинг ⭐️",
208 "settings.service.form.team" : "Команда", 219 "settings.service.form.team" : "Команда",
@@ -245,11 +256,11 @@
245 "subscription.features.ads" : "Без рекламы, навсегда!", 256 "subscription.features.ads" : "Без рекламы, навсегда!",
246 "subscription.features.comingSoon" : "скоро", 257 "subscription.features.comingSoon" : "скоро",
247 "subscription.features.encryptedSync" : "Зашифрованные сессии синхронизации", 258 "subscription.features.encryptedSync" : "Зашифрованные сессии синхронизации",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Никаких задержек и предложений перейти на платную версию",
249 "subscription.features.onpremise" : "Добавление облачных служб или служб на своём хостинге типа HipChat", 260 "subscription.features.onpremise" : "Добавление облачных служб или служб на своём хостинге типа HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хостинге сервисы, такие как Mattermost",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Подержка прокси для сервисов",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Поддержка проверки правописания",
253 "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает", 264 "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает",
254 "subscription.paymentSessionError" : "Невозможно загрузить форму оплаты", 265 "subscription.paymentSessionError" : "Невозможно загрузить форму оплаты",
255 "subscription.submit.label" : "Я хочу поддержать разработку Franz", 266 "subscription.submit.label" : "Я хочу поддержать разработку Franz",
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json
index ca7335fe9..35c699322 100644
--- a/src/i18n/locales/sk.json
+++ b/src/i18n/locales/sk.json
@@ -4,8 +4,19 @@
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz", 14 "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz",
8 "global.notConnectedToTheInternet" : "Nie ste pripojení k internetu.", 15 "global.notConnectedToTheInternet" : "Nie ste pripojení k internetu.",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "Importovať vaše služby z Franz 4", 20 "import.headline" : "Importovať vaše služby z Franz 4",
10 "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5", 21 "import.notSupportedHeadline" : "Služby zatiaľ nie sú podporované vo verzii Franz 5",
11 "import.skip.label" : "Chcem pridať služby ručne", 22 "import.skip.label" : "Chcem pridať služby ručne",
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json
index df0b849c4..8ffc0c007 100644
--- a/src/i18n/locales/sr.json
+++ b/src/i18n/locales/sr.json
@@ -4,8 +4,19 @@
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Get a Franz Supporter License",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.",
7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
7 "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ", 14 "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ",
8 "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", 15 "global.notConnectedToTheInternet" : "Niste povezani sa serverom.",
16 "global.spellchecker.useDefault" : "Use System Default ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Spell checking language",
9 "import.headline" : "Uvezite svoje Franz 4 servise", 20 "import.headline" : "Uvezite svoje Franz 4 servise",
10 "import.notSupportedHeadline" : "Servis trenutno nije podržan u Franz 5", 21 "import.notSupportedHeadline" : "Servis trenutno nije podržan u Franz 5",
11 "import.skip.label" : "Желим да додам услуге ручно", 22 "import.skip.label" : "Желим да додам услуге ручно",
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json
index 9e7619454..70632b966 100644
--- a/src/i18n/locales/tr.json
+++ b/src/i18n/locales/tr.json
@@ -1,13 +1,24 @@
1{ 1{
2 "app.errorHandler.action" : "Yeniden Yükle", 2 "app.errorHandler.action" : "Tekrar Yükle",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Bir terslik çıktı",
4 "feature.delayApp.action" : "Franz Destek Lisansı'nı alın.", 4 "feature.delayApp.action" : "Franz Destek Lisansı'nı alın",
5 "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın.", 5 "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın",
6 "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", 6 "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.",
7 "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor.", 7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
14 "global.api.unhealthy" : "Franz hizmetlerine şu anda erişilemiyor",
8 "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", 15 "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.",
9 "import.headline" : "Franz 4 servislerinizi ekleyin.", 16 "global.spellchecker.useDefault" : "Sistem Dilini Kullan ({default})",
10 "import.notSupportedHeadline" : "Servisler henüz Franz 5'te desteklenmiyor.", 17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "İmla kontrol dili",
20 "import.headline" : "Franz 4 servislerinizi içeri aktarın",
21 "import.notSupportedHeadline" : "Henüz Franz 5'te desteklenmeyen servisler",
11 "import.skip.label" : "Servisleri kendim eklemek istiyorum", 22 "import.skip.label" : "Servisleri kendim eklemek istiyorum",
12 "import.submit.label" : "Servisleri içe aktar", 23 "import.submit.label" : "Servisleri içe aktar",
13 "infobar.buttonChangelog" : "Yeni ne var?", 24 "infobar.buttonChangelog" : "Yeni ne var?",
@@ -15,7 +26,7 @@
15 "infobar.buttonReloadServices" : "Hizmetleri yeniden yükle", 26 "infobar.buttonReloadServices" : "Hizmetleri yeniden yükle",
16 "infobar.requiredRequestsFailed" : "Hizmetler ve kullanıcı bilgileri yüklenemedi", 27 "infobar.requiredRequestsFailed" : "Hizmetler ve kullanıcı bilgileri yüklenemedi",
17 "infobar.servicesUpdated" : "Hizmetleriniz güncellendi.", 28 "infobar.servicesUpdated" : "Hizmetleriniz güncellendi.",
18 "infobar.updateAvailable" : "Yeni Franz güncellemesi mevcut", 29 "infobar.updateAvailable" : "Yeni Franz güncellemesi mevcut.",
19 "invite.email.label" : "E-posta adresi", 30 "invite.email.label" : "E-posta adresi",
20 "invite.headline.friends" : "3 arkadaşını ya da çalışma arkadaşını davet et", 31 "invite.headline.friends" : "3 arkadaşını ya da çalışma arkadaşını davet et",
21 "invite.name.label" : "Ad", 32 "invite.name.label" : "Ad",
@@ -59,7 +70,7 @@
59 "menu.help.support" : "Destek", 70 "menu.help.support" : "Destek",
60 "menu.help.tos" : "Kullanım Şartları", 71 "menu.help.tos" : "Kullanım Şartları",
61 "menu.services" : "Hizmetler", 72 "menu.services" : "Hizmetler",
62 "menu.services.addNewService" : "Yeni Servis Ekle", 73 "menu.services.addNewService" : "Yeni servis ekle...",
63 "menu.view" : "Görünüm", 74 "menu.view" : "Görünüm",
64 "menu.view.enterFullScreen" : "Tam Ekrana Geç", 75 "menu.view.enterFullScreen" : "Tam Ekrana Geç",
65 "menu.view.exitFullScreen" : "Tam Ekrandan Çık", 76 "menu.view.exitFullScreen" : "Tam Ekrandan Çık",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Bu e-posta adresinde bir kullanıcı bulunamadı", 92 "password.noUser" : "Bu e-posta adresinde bir kullanıcı bulunamadı",
82 "password.submit.label" : "Gönder", 93 "password.submit.label" : "Gönder",
83 "password.successInfo" : "E-postanızı kontrol ediniz", 94 "password.successInfo" : "E-postanızı kontrol ediniz",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Hesabı Yükselt",
85 "pricing.headline" : "Franz'ı Destekle", 96 "pricing.headline" : "Franz'ı Destekle",
86 "pricing.link.skipPayment" : "Franz'ın gelişimini desteklemek istemiyorum.", 97 "pricing.link.skipPayment" : "Franz'ın gelişimini desteklemek istemiyorum.",
87 "pricing.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", 98 "pricing.submit.label" : "Franz'ın gelişimini desteklemek istiyorum",
@@ -92,11 +103,11 @@
92 "service.crashHandler.text" : "{name} bir hataya neden oldu.", 103 "service.crashHandler.text" : "{name} bir hataya neden oldu.",
93 "service.disabledHandler.action" : "{name} aktif", 104 "service.disabledHandler.action" : "{name} aktif",
94 "service.disabledHandler.headline" : "{name} devredışı", 105 "service.disabledHandler.headline" : "{name} devredışı",
95 "service.errorHandler.action" : "{name} yeniden yükle", 106 "service.errorHandler.action" : "{İsim} Yeniden Yükle",
96 "service.errorHandler.editAction" : "{name} düzenle", 107 "service.errorHandler.editAction" : "{name} düzenle",
97 "service.errorHandler.headline" : "Aman Tanrım hayır!", 108 "service.errorHandler.headline" : "Hayııırrr!",
98 "service.errorHandler.message" : "Hata", 109 "service.errorHandler.message" : "Hata",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} yüklenemedi.",
100 "services.getStarted" : "Haydi başlayalım", 111 "services.getStarted" : "Haydi başlayalım",
101 "services.welcome" : "Franz'a Hoşgeldiniz", 112 "services.welcome" : "Franz'a Hoşgeldiniz",
102 "settings.account.account.editButton" : "Hesabı düzenle", 113 "settings.account.account.editButton" : "Hesabı düzenle",
@@ -118,7 +129,7 @@
118 "settings.account.manageSubscription.label" : "Aboneliğini yönet", 129 "settings.account.manageSubscription.label" : "Aboneliğini yönet",
119 "settings.account.successInfo" : "Değişikliklerin kaydedildi", 130 "settings.account.successInfo" : "Değişikliklerin kaydedildi",
120 "settings.account.tryReloadUserInfoRequest" : "Tekrar deneyin", 131 "settings.account.tryReloadUserInfoRequest" : "Tekrar deneyin",
121 "settings.account.userInfoRequestFailed" : "Kullanıcı bilgisi yüklenemedi.", 132 "settings.account.userInfoRequestFailed" : "Kullanıcı bilgisi yüklenemedi",
122 "settings.app.buttonClearAllCache" : "Önbelleği temizle", 133 "settings.app.buttonClearAllCache" : "Önbelleği temizle",
123 "settings.app.buttonInstallUpdate" : "Yeniden Başlat ve Güncelleştirmeleri Kur", 134 "settings.app.buttonInstallUpdate" : "Yeniden Başlat ve Güncelleştirmeleri Kur",
124 "settings.app.buttonSearchForUpdate" : "Güncellemeleri kontrol et", 135 "settings.app.buttonSearchForUpdate" : "Güncellemeleri kontrol et",
@@ -127,7 +138,7 @@
127 "settings.app.form.autoLaunchInBackground" : "Arka planda aç", 138 "settings.app.form.autoLaunchInBackground" : "Arka planda aç",
128 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç", 139 "settings.app.form.autoLaunchOnStart" : "Franz'ı başlangıçta aç",
129 "settings.app.form.beta" : "Beta versiyonları dahil et", 140 "settings.app.form.beta" : "Beta versiyonları dahil et",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Karanlık tarafa katıl",
131 "settings.app.form.enableGPUAcceleration" : "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et", 142 "settings.app.form.enableGPUAcceleration" : "Grafik İşlemci Ünitesi (GPU) Hızlandırıcısını Aktif et",
132 "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster", 143 "settings.app.form.enableMenuBar" : "Menü çubuğunda Franz'ı göster",
133 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir", 144 "settings.app.form.enableSpellchecking" : "Yazım denetimini etkinleştir",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut", 149 "settings.app.form.runInBackground" : "Pencereyi kapatırken Franz'ı arka planda tut",
139 "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster", 150 "settings.app.form.showDisabledServices" : "Devre dışı bırakılan servis sekmelerini göster",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Bildirimler kapalı iken okunmamış mesaj sayısını göster",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "İmla kontrol dili",
142 "settings.app.headline" : "Ayarlar", 153 "settings.app.headline" : "Ayarlar",
143 "settings.app.headlineAdvanced" : "Gelişmiş", 154 "settings.app.headlineAdvanced" : "Gelişmiş",
144 "settings.app.headlineAppearance" : "Görünüm", 155 "settings.app.headlineAppearance" : "Görünüm",
@@ -168,7 +179,7 @@
168 "settings.searchService" : "Hizmeti ara", 179 "settings.searchService" : "Hizmeti ara",
169 "settings.service.error.goBack" : "Servislere geri dön", 180 "settings.service.error.goBack" : "Servislere geri dön",
170 "settings.service.error.headline" : "Hata", 181 "settings.service.error.headline" : "Hata",
171 "settings.service.error.message" : "Servis tarifi yüklenemedi", 182 "settings.service.error.message" : "Servis tarifi yüklenemedi.",
172 "settings.service.form.addServiceHeadline" : "{name} Ekle", 183 "settings.service.form.addServiceHeadline" : "{name} Ekle",
173 "settings.service.form.availableServices" : "Mevcut servisler", 184 "settings.service.form.availableServices" : "Mevcut servisler",
174 "settings.service.form.customUrl" : "Özel sunucu", 185 "settings.service.form.customUrl" : "Özel sunucu",
@@ -176,10 +187,10 @@
176 "settings.service.form.customUrlUpgradeAccount" : "Hesabını yükselt", 187 "settings.service.form.customUrlUpgradeAccount" : "Hesabını yükselt",
177 "settings.service.form.customUrlValidationError" : "{name} özel sunucu doğrulanamadı.", 188 "settings.service.form.customUrlValidationError" : "{name} özel sunucu doğrulanamadı.",
178 "settings.service.form.deleteButton" : "Servisi sil", 189 "settings.service.form.deleteButton" : "Servisi sil",
179 "settings.service.form.editServiceHeadline" : "{name} düzenle", 190 "settings.service.form.editServiceHeadline" : "{İsim} Düzenle",
180 "settings.service.form.enableAudio" : "Sesi etkinleştirin", 191 "settings.service.form.enableAudio" : "Sesi etkinleştirin",
181 "settings.service.form.enableBadge" : "Okunmamış mesajları göster", 192 "settings.service.form.enableBadge" : "Okunmamış mesajları göster",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Karanlık modu aç",
183 "settings.service.form.enableNotification" : "Bildirimleri etkinleştir", 194 "settings.service.form.enableNotification" : "Bildirimleri etkinleştir",
184 "settings.service.form.enableService" : "Servisi etkinleştir", 195 "settings.service.form.enableService" : "Servisi etkinleştir",
185 "settings.service.form.headlineBadges" : "Okunmamış mesajlar", 196 "settings.service.form.headlineBadges" : "Okunmamış mesajlar",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Mesaj rozetini tüm yeni mesajlar için göster", 203 "settings.service.form.indirectMessages" : "Mesaj rozetini tüm yeni mesajlar için göster",
193 "settings.service.form.isMutedInfo" : "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır", 204 "settings.service.form.isMutedInfo" : "Devre dışı bırakıldığında, tüm bildirim sesleri sessize alınır",
194 "settings.service.form.name" : "İsim", 205 "settings.service.form.name" : "İsim",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Ayarları",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Proxy Sunucusu\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Proxy ayarları Franz serverlarına yüklenmeyecektir.",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Proxy Kullan",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Parola (opsiyonel)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Port",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Proxy ayarlarını değiştirdikten sonra Franz yeniden başlatınız.",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Kullanıcı (opsiyonel)",
203 "settings.service.form.saveButton" : "Servisi kaydet", 214 "settings.service.form.saveButton" : "Servisi kaydet",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "İmla kontrol dili",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Sistem Dilini Kullan ({default})",
206 "settings.service.form.tabHosted" : "Barındırılan", 217 "settings.service.form.tabHosted" : "Barındırılan",
207 "settings.service.form.tabOnPremise" : "Kendi barındırılan", 218 "settings.service.form.tabOnPremise" : "Kendi barındırılan",
208 "settings.service.form.team" : "Takım", 219 "settings.service.form.team" : "Takım",
@@ -238,7 +249,7 @@
238 "signup.legal.info" : "Franz'ı hesabı oluşturark kabul ediyorsun", 249 "signup.legal.info" : "Franz'ı hesabı oluşturark kabul ediyorsun",
239 "signup.legal.privacy" : "Gizlilik Sözleşmesi", 250 "signup.legal.privacy" : "Gizlilik Sözleşmesi",
240 "signup.legal.terms" : "Kullanım Koşulları", 251 "signup.legal.terms" : "Kullanım Koşulları",
241 "signup.link.login" : "Mevcut hesabınla giriş yap.", 252 "signup.link.login" : "Hali hazırda hesabınız varsa giriş yapmak ister misiniz?",
242 "signup.password.label" : "Şifre", 253 "signup.password.label" : "Şifre",
243 "signup.submit.label" : "Hesap oluştur", 254 "signup.submit.label" : "Hesap oluştur",
244 "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir", 255 "subscription.euTaxInfo" : "AB vatandaşları: yerel satış vergileri uygulanabilir",
@@ -249,7 +260,7 @@
249 "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle", 260 "subscription.features.onpremise" : "HipChat gibi kurum içi\/barındırılan hizmetler ekle",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Proxy support for services",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Yazım denetleyicisi desteği",
253 "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", 264 "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil",
254 "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", 265 "subscription.paymentSessionError" : "Ödeme formu başlatılamadı",
255 "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", 266 "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum",
@@ -266,7 +277,7 @@
266 "tabs.item.enableAudio" : "Sesi etkinleştir", 277 "tabs.item.enableAudio" : "Sesi etkinleştir",
267 "tabs.item.enableNotification" : "Bildirimleri etkinleştir", 278 "tabs.item.enableNotification" : "Bildirimleri etkinleştir",
268 "tabs.item.enableService" : "Servisi etkinleştir", 279 "tabs.item.enableService" : "Servisi etkinleştir",
269 "tabs.item.reload" : "Yeniden Yükle", 280 "tabs.item.reload" : "Tekrar yükle",
270 "validation.email" : "{alan} geçerli değil", 281 "validation.email" : "{alan} geçerli değil",
271 "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı", 282 "validation.minLength" : "{field} en az {length} karakter uzunluğunda olmalı",
272 "validation.required" : "{field} gereklidir", 283 "validation.required" : "{field} gereklidir",
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json
index 7d51b380e..db3145b36 100644
--- a/src/i18n/locales/uk.json
+++ b/src/i18n/locales/uk.json
@@ -1,13 +1,24 @@
1{ 1{
2 "app.errorHandler.action" : "Перезавантажити", 2 "app.errorHandler.action" : "Перезавантажити",
3 "app.errorHandler.headline" : "Something went wrong", 3 "app.errorHandler.headline" : "Щось пішло не так",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "Отримати ліцензію Franz Supporter ",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "Будь ласка, придбайте ліцензію Franz Supporter аби пропустити очікування",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz відновить роботу за {seconds} секунд",
7 "global.api.unhealthy" : "Не можна підключитись до онлайн сервісів Franz", 7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
14 "global.api.unhealthy" : "Не можливо підключитись до онлайн сервісів Franz",
8 "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", 15 "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.",
16 "global.spellchecker.useDefault" : "Використовувати системні параметри за змовчуванням ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "Мова перевірки правопису",
9 "import.headline" : "Імпортувати ваші сервіси з Franz 4", 20 "import.headline" : "Імпортувати ваші сервіси з Franz 4",
10 "import.notSupportedHeadline" : "ервіси щ е підтримуються в Franz 5", 21 "import.notSupportedHeadline" : "разі срвіси не підтримуються у Franz 5",
11 "import.skip.label" : "Я бажаю додати сервіс вручну", 22 "import.skip.label" : "Я бажаю додати сервіс вручну",
12 "import.submit.label" : "Імпортувати сервіси", 23 "import.submit.label" : "Імпортувати сервіси",
13 "infobar.buttonChangelog" : "Що нового?", 24 "infobar.buttonChangelog" : "Що нового?",
@@ -17,20 +28,20 @@
17 "infobar.servicesUpdated" : "Ваші сервіси було оновлено.", 28 "infobar.servicesUpdated" : "Ваші сервіси було оновлено.",
18 "infobar.updateAvailable" : "Нове оновлення для Franz доступне.", 29 "infobar.updateAvailable" : "Нове оновлення для Franz доступне.",
19 "invite.email.label" : "Email адреса", 30 "invite.email.label" : "Email адреса",
20 "invite.headline.friends" : "Запросіть 3 ваших друзів або колег", 31 "invite.headline.friends" : "Запросіть 3 ваших друзів або колег",
21 "invite.name.label" : "Ім'я", 32 "invite.name.label" : "Ім'я",
22 "invite.skip.label" : "Я хочу зробити це пізніше", 33 "invite.skip.label" : "Я хочу зробити це пізніше",
23 "invite.submit.label" : "Відправити запрошення", 34 "invite.submit.label" : "Відправити запрошення",
24 "invite.successInfo" : "Запрошення успішно іслані", 35 "invite.successInfo" : "Запрошення успішно лані",
25 "login.email.label" : "Email адреса", 36 "login.email.label" : "Email адреса",
26 "login.headline" : "Увійти", 37 "login.headline" : "Увійти",
27 "login.invalidCredentials" : "Email або пароль некоректні", 38 "login.invalidCredentials" : "Email або пароль некоректні",
28 "login.link.password" : "Скинути пароль", 39 "login.link.password" : "Скинути пароль",
29 "login.link.signup" : "Створити безплатний акаунт", 40 "login.link.signup" : "Створити безплатний акаунт",
30 "login.password.label" : "Пароль", 41 "login.password.label" : "Пароль",
31 "login.serverLogout" : "Ваша сесія закінчилась, будь ласка, діть знову.", 42 "login.serverLogout" : "Ваша сесія закінчилась, будь ласка, уійдіть знову.",
32 "login.submit.label" : "Увійти", 43 "login.submit.label" : "Увійти",
33 "login.tokenExpired" : "Ваша сесія закінчилась, будь ласка, діть знову.", 44 "login.tokenExpired" : "Ваша сесія закінчилась, будь ласка, уійдіть знову.",
34 "menu.app.about" : "Про Franz", 45 "menu.app.about" : "Про Franz",
35 "menu.app.hide" : "Приховати", 46 "menu.app.hide" : "Приховати",
36 "menu.app.hideOthers" : "Приховати інші", 47 "menu.app.hideOthers" : "Приховати інші",
@@ -81,7 +92,7 @@
81 "password.noUser" : "Не знайдено жодного користувача з цією email адресою", 92 "password.noUser" : "Не знайдено жодного користувача з цією email адресою",
82 "password.submit.label" : "Подати", 93 "password.submit.label" : "Подати",
83 "password.successInfo" : "Будь ласка, перевірте ваш email", 94 "password.successInfo" : "Будь ласка, перевірте ваш email",
84 "premiumFeature.button.upgradeAccount" : "Upgrade account", 95 "premiumFeature.button.upgradeAccount" : "Преміум акаунт",
85 "pricing.headline" : "Підтримайте Franz", 96 "pricing.headline" : "Підтримайте Franz",
86 "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.", 97 "pricing.link.skipPayment" : "Я не хочу підтримувати розробку Franz.",
87 "pricing.submit.label" : "Я хочу підтримати розробку Franz", 98 "pricing.submit.label" : "Я хочу підтримати розробку Franz",
@@ -96,7 +107,7 @@
96 "service.errorHandler.editAction" : "Редагувати {name}", 107 "service.errorHandler.editAction" : "Редагувати {name}",
97 "service.errorHandler.headline" : "О, ні!", 108 "service.errorHandler.headline" : "О, ні!",
98 "service.errorHandler.message" : "Помилка", 109 "service.errorHandler.message" : "Помилка",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} не завантажено",
100 "services.getStarted" : "Почати", 111 "services.getStarted" : "Почати",
101 "services.welcome" : "Ласкаво просимо в Franz", 112 "services.welcome" : "Ласкаво просимо в Franz",
102 "settings.account.account.editButton" : "Редагувати акаунт", 113 "settings.account.account.editButton" : "Редагувати акаунт",
@@ -127,7 +138,7 @@
127 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі", 138 "settings.app.form.autoLaunchInBackground" : "Відкрити у фоновому режимі",
128 "settings.app.form.autoLaunchOnStart" : "Запускати Franz на початку", 139 "settings.app.form.autoLaunchOnStart" : "Запускати Franz на початку",
129 "settings.app.form.beta" : "Включити бета-версії", 140 "settings.app.form.beta" : "Включити бета-версії",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "Переходь на Темну Сторону",
131 "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU", 142 "settings.app.form.enableGPUAcceleration" : "Ввімкнути прискорення GPU",
132 "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню", 143 "settings.app.form.enableMenuBar" : "Відображати Franz в панелі головного меню",
133 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії", 144 "settings.app.form.enableSpellchecking" : "Увімкнути перевірку орфографії",
@@ -138,7 +149,7 @@
138 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна", 149 "settings.app.form.runInBackground" : "Тримати Franz в фоні при закритті вікна",
139 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів", 150 "settings.app.form.showDisabledServices" : "Показати вкладку вимкнених сервісів",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "Показувати значок непрочитаних повідомлень коли сповіщення вимкнені",
141 "settings.app.form.spellcheckerLanguage" : "Spell checking language", 152 "settings.app.form.spellcheckerLanguage" : "Мова перевірки правопису",
142 "settings.app.headline" : "Налаштування", 153 "settings.app.headline" : "Налаштування",
143 "settings.app.headlineAdvanced" : "Додаткові налаштування", 154 "settings.app.headlineAdvanced" : "Додаткові налаштування",
144 "settings.app.headlineAppearance" : "Вигляд", 155 "settings.app.headlineAppearance" : "Вигляд",
@@ -179,7 +190,7 @@
179 "settings.service.form.editServiceHeadline" : "Редагувати {name}", 190 "settings.service.form.editServiceHeadline" : "Редагувати {name}",
180 "settings.service.form.enableAudio" : "Увімкнути звук", 191 "settings.service.form.enableAudio" : "Увімкнути звук",
181 "settings.service.form.enableBadge" : "Показувати непрочитані повідомлення", 192 "settings.service.form.enableBadge" : "Показувати непрочитані повідомлення",
182 "settings.service.form.enableDarkMode" : "Enable Dark Mode", 193 "settings.service.form.enableDarkMode" : "Переходь на Темну Сторону",
183 "settings.service.form.enableNotification" : "Увімкнути сповіщення", 194 "settings.service.form.enableNotification" : "Увімкнути сповіщення",
184 "settings.service.form.enableService" : "Увімкнути сервіс", 195 "settings.service.form.enableService" : "Увімкнути сервіс",
185 "settings.service.form.headlineBadges" : "Значки непрочитаних повідомлень", 196 "settings.service.form.headlineBadges" : "Значки непрочитаних повідомлень",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "Показувати значок повідомлення для всіх нових повідомлень", 203 "settings.service.form.indirectMessages" : "Показувати значок повідомлення для всіх нових повідомлень",
193 "settings.service.form.isMutedInfo" : "Коли вимкнено, всі сповищення та відтворення ігноруються", 204 "settings.service.form.isMutedInfo" : "Коли вимкнено, всі сповищення та відтворення ігноруються",
194 "settings.service.form.name" : "Ім'я", 205 "settings.service.form.name" : "Ім'я",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "Налаштування HTTP\/HTTPS проксі ",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "Проксі Host\/IP",
197 "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", 208 "settings.service.form.proxy.info" : "Налаштування проксі не будуть синхронізовані із серверами Franz",
198 "settings.service.form.proxy.isEnabled" : "Use Proxy", 209 "settings.service.form.proxy.isEnabled" : "Використовувати проксі",
199 "settings.service.form.proxy.password" : "Password (optional)", 210 "settings.service.form.proxy.password" : "Пароль (опційно)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "Порт",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "Будь ласка, перезапустіть Franz після зміни налуштувань проксі",
202 "settings.service.form.proxy.user" : "User (optional)", 213 "settings.service.form.proxy.user" : "Користувач (опційно)",
203 "settings.service.form.saveButton" : "Зберегти сервіс", 214 "settings.service.form.saveButton" : "Зберегти сервіс",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "Мова перевірки правопису",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "Використовувати системні параметри за змовчуванням ({default})",
206 "settings.service.form.tabHosted" : "Розміщений", 217 "settings.service.form.tabHosted" : "Розміщений",
207 "settings.service.form.tabOnPremise" : "Самостійно розміщений ⭐️", 218 "settings.service.form.tabOnPremise" : "Самостійно розміщений ⭐️",
208 "settings.service.form.team" : "Команда", 219 "settings.service.form.team" : "Команда",
@@ -245,11 +256,11 @@
245 "subscription.features.ads" : "Жодної реклами!", 256 "subscription.features.ads" : "Жодної реклами!",
246 "subscription.features.comingSoon" : "очікуйте незабаром", 257 "subscription.features.comingSoon" : "очікуйте незабаром",
247 "subscription.features.encryptedSync" : "Шифрована синхронізація сеансу", 258 "subscription.features.encryptedSync" : "Шифрована синхронізація сеансу",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "Ніяких затримок та набридливих пропозицій з платних підписок",
249 "subscription.features.onpremise" : "Додайте on-premise \/ hosted сервіси, такі як Hipchat", 260 "subscription.features.onpremise" : "Додайте on-premise \/ hosted сервіси, такі як Hipchat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "Сервіси, що виконуються локально\/вимагають хостингу, приміром Mattermost",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "Підтримка проксі ",
252 "subscription.features.spellchecker" : "Support for spellchecker", 263 "subscription.features.spellchecker" : "Підтримка перевірки правопису",
253 "subscription.includedFeatures" : "Платний Преміальний Акаунт Прихильника Franz включає", 264 "subscription.includedFeatures" : "Платний Преміальний Акаунт Прихильника Franz включає",
254 "subscription.paymentSessionError" : "Не вдалося ініціалізувати форму платежу", 265 "subscription.paymentSessionError" : "Не вдалося ініціалізувати форму платежу",
255 "subscription.submit.label" : "Я хочу підтримати розробку Franz", 266 "subscription.submit.label" : "Я хочу підтримати розробку Franz",
diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json
new file mode 100644
index 000000000..32960f8ce
--- /dev/null
+++ b/src/i18n/locales/whitelist_en-US.json
@@ -0,0 +1,2 @@
1[
2] \ No newline at end of file
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json
index cfb1d3dce..3ae08c9ef 100644
--- a/src/i18n/locales/zh-TW.json
+++ b/src/i18n/locales/zh-TW.json
@@ -1,11 +1,22 @@
1{ 1{
2 "app.errorHandler.action" : "重新載入", 2 "app.errorHandler.action" : "重新載入",
3 "app.errorHandler.headline" : "有些東西出錯了", 3 "app.errorHandler.headline" : "有些東西出錯了",
4 "feature.delayApp.action" : "Get a Franz Supporter License", 4 "feature.delayApp.action" : "取得 Franz 支援授權",
5 "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", 5 "feature.delayApp.headline" : "請購買 Franz 支援授權以跳過等候",
6 "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", 6 "feature.delayApp.text" : "Franz 會在 {seconds} 秒後繼續。",
7 "global.api.unhealthy" : "無法連線至Franz的伺服器。", 7 "feature.shareFranz.action.email" : "Send as email",
8 "feature.shareFranz.action.facebook" : "Share on Facebook",
9 "feature.shareFranz.action.twitter" : "Share on Twitter",
10 "feature.shareFranz.headline" : "Franz is better together!",
11 "feature.shareFranz.shareText.email" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
12 "feature.shareFranz.shareText.twitter" : "I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com \/cc @MeetFranz",
13 "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
14 "global.api.unhealthy" : "無法連線至 Franz 的伺服器",
8 "global.notConnectedToTheInternet" : "你沒有連上網路。", 15 "global.notConnectedToTheInternet" : "你沒有連上網路。",
16 "global.spellchecker.useDefault" : "使用系統預設 ({default})",
17 "global.spellchecking.autodetect" : "Detect language automatically",
18 "global.spellchecking.autodetect.short" : "Automatic",
19 "global.spellchecking.language" : "拼字檢查語言",
9 "import.headline" : "匯入 Franz 4 的服務", 20 "import.headline" : "匯入 Franz 4 的服務",
10 "import.notSupportedHeadline" : "Franz 5 尚未支援此服務", 21 "import.notSupportedHeadline" : "Franz 5 尚未支援此服務",
11 "import.skip.label" : "手動添加服務", 22 "import.skip.label" : "手動添加服務",
@@ -14,10 +25,10 @@
14 "infobar.buttonInstallUpdate" : "重新啟動並安裝更新", 25 "infobar.buttonInstallUpdate" : "重新啟動並安裝更新",
15 "infobar.buttonReloadServices" : "重新載入服務", 26 "infobar.buttonReloadServices" : "重新載入服務",
16 "infobar.requiredRequestsFailed" : "無法載入服務和使用者資訊", 27 "infobar.requiredRequestsFailed" : "無法載入服務和使用者資訊",
17 "infobar.servicesUpdated" : "你的服更新", 28 "infobar.servicesUpdated" : "已經更新你的服務",
18 "infobar.updateAvailable" : "Franz有可用的更新", 29 "infobar.updateAvailable" : "Franz 有可用的更新",
19 "invite.email.label" : "電子郵件地址", 30 "invite.email.label" : "電子郵件地址",
20 "invite.headline.friends" : "邀請3位你的朋友或同事", 31 "invite.headline.friends" : "邀請 3 位朋友或同事",
21 "invite.name.label" : "名稱", 32 "invite.name.label" : "名稱",
22 "invite.skip.label" : "我想稍後再做", 33 "invite.skip.label" : "我想稍後再做",
23 "invite.submit.label" : "送出邀請", 34 "invite.submit.label" : "送出邀請",
@@ -31,7 +42,7 @@
31 "login.serverLogout" : "您的登入期間已過期,請重新登錄", 42 "login.serverLogout" : "您的登入期間已過期,請重新登錄",
32 "login.submit.label" : "登入", 43 "login.submit.label" : "登入",
33 "login.tokenExpired" : "您的登入已過期,請重新登入。", 44 "login.tokenExpired" : "您的登入已過期,請重新登入。",
34 "menu.app.about" : "關於Franz", 45 "menu.app.about" : "關於 Franz",
35 "menu.app.hide" : "隱藏", 46 "menu.app.hide" : "隱藏",
36 "menu.app.hideOthers" : "隱藏其他", 47 "menu.app.hideOthers" : "隱藏其他",
37 "menu.app.quit" : "結束", 48 "menu.app.quit" : "結束",
@@ -63,7 +74,7 @@
63 "menu.view" : "檢視", 74 "menu.view" : "檢視",
64 "menu.view.enterFullScreen" : "進入全螢幕模式", 75 "menu.view.enterFullScreen" : "進入全螢幕模式",
65 "menu.view.exitFullScreen" : "離開全螢幕模式", 76 "menu.view.exitFullScreen" : "離開全螢幕模式",
66 "menu.view.reloadFranz" : "重新載入Franz", 77 "menu.view.reloadFranz" : "重新載入 Franz",
67 "menu.view.reloadService" : "重新載入服務", 78 "menu.view.reloadService" : "重新載入服務",
68 "menu.view.resetZoom" : "實際大小", 79 "menu.view.resetZoom" : "實際大小",
69 "menu.view.toggleDevTools" : "切換開發者工具", 80 "menu.view.toggleDevTools" : "切換開發者工具",
@@ -82,9 +93,9 @@
82 "password.submit.label" : "送出", 93 "password.submit.label" : "送出",
83 "password.successInfo" : "請檢查您的電子郵件", 94 "password.successInfo" : "請檢查您的電子郵件",
84 "premiumFeature.button.upgradeAccount" : "升級帳號", 95 "premiumFeature.button.upgradeAccount" : "升級帳號",
85 "pricing.headline" : "支持Franz", 96 "pricing.headline" : "支持 Franz",
86 "pricing.link.skipPayment" : "我不想支持Franz的開發。", 97 "pricing.link.skipPayment" : "我不想支持 Franz 的開發。",
87 "pricing.submit.label" : "我想支持Franz的開發。", 98 "pricing.submit.label" : "我想支持 Franz 的開發。",
88 "pricing.support.label" : "選擇您支持的計畫", 99 "pricing.support.label" : "選擇您支持的計畫",
89 "service.crashHandler.action" : "重新載入{name}", 100 "service.crashHandler.action" : "重新載入{name}",
90 "service.crashHandler.autoReload" : "嘗試在{seconds}秒內自動恢復{name}", 101 "service.crashHandler.autoReload" : "嘗試在{seconds}秒內自動恢復{name}",
@@ -92,20 +103,20 @@
92 "service.crashHandler.text" : "{name}導致了一個錯誤。", 103 "service.crashHandler.text" : "{name}導致了一個錯誤。",
93 "service.disabledHandler.action" : "啟用{name}", 104 "service.disabledHandler.action" : "啟用{name}",
94 "service.disabledHandler.headline" : "{name}已停用", 105 "service.disabledHandler.headline" : "{name}已停用",
95 "service.errorHandler.action" : "重新載入{name}", 106 "service.errorHandler.action" : "重新載入 {name}",
96 "service.errorHandler.editAction" : "編輯{名稱}", 107 "service.errorHandler.editAction" : "編輯{名稱}",
97 "service.errorHandler.headline" : "噢不!", 108 "service.errorHandler.headline" : "噢不",
98 "service.errorHandler.message" : "錯誤", 109 "service.errorHandler.message" : "錯誤",
99 "service.errorHandler.text" : "{name} has failed to load.", 110 "service.errorHandler.text" : "{name} 載入失敗。",
100 "services.getStarted" : "開始", 111 "services.getStarted" : "開始",
101 "services.welcome" : "歡迎使用Franz", 112 "services.welcome" : "歡迎使用 Franz",
102 "settings.account.account.editButton" : "編輯帳號", 113 "settings.account.account.editButton" : "編輯帳號",
103 "settings.account.accountType.basic" : "基礎帳號", 114 "settings.account.accountType.basic" : "基礎帳號",
104 "settings.account.accountType.premium" : "高級支帳戶", 115 "settings.account.accountType.premium" : "高級支帳戶",
105 "settings.account.buttonSave" : "更新簡介", 116 "settings.account.buttonSave" : "更新簡介",
106 "settings.account.deleteAccount" : "移除帳號", 117 "settings.account.deleteAccount" : "移除帳號",
107 "settings.account.deleteEmailSent" : "移除帳號之確認電郵已送出。你的帳號及相關資料將無法恢復!", 118 "settings.account.deleteEmailSent" : "移除帳號之確認電郵已送出。你的帳號及相關資料將無法恢復!",
108 "settings.account.deleteInfo" : "如果不再需要你的帳號,你可以在這裡刪除帳號和相關資料", 119 "settings.account.deleteInfo" : "如果不再需要你的帳號,你可以在這裡刪除帳號和所有相關資料",
109 "settings.account.headline" : "帳號", 120 "settings.account.headline" : "帳號",
110 "settings.account.headlineAccount" : "帳戶資訊", 121 "settings.account.headlineAccount" : "帳戶資訊",
111 "settings.account.headlineDangerZone" : "危險地帶", 122 "settings.account.headlineDangerZone" : "危險地帶",
@@ -113,7 +124,7 @@
113 "settings.account.headlinePassword" : "變更密碼", 124 "settings.account.headlinePassword" : "變更密碼",
114 "settings.account.headlineProfile" : "更新簡介", 125 "settings.account.headlineProfile" : "更新簡介",
115 "settings.account.headlineSubscription" : "您的訂閱", 126 "settings.account.headlineSubscription" : "您的訂閱",
116 "settings.account.headlineUpgrade" : "升級您的帳戶&支持Franz", 127 "settings.account.headlineUpgrade" : "升級您的帳戶支持 Franz",
117 "settings.account.invoiceDownload" : "下載", 128 "settings.account.invoiceDownload" : "下載",
118 "settings.account.manageSubscription.label" : "管理您的訂閱", 129 "settings.account.manageSubscription.label" : "管理您的訂閱",
119 "settings.account.successInfo" : "您的更變已經被儲存", 130 "settings.account.successInfo" : "您的更變已經被儲存",
@@ -122,20 +133,20 @@
122 "settings.app.buttonClearAllCache" : "清除快取", 133 "settings.app.buttonClearAllCache" : "清除快取",
123 "settings.app.buttonInstallUpdate" : "重新啟動並安裝更新", 134 "settings.app.buttonInstallUpdate" : "重新啟動並安裝更新",
124 "settings.app.buttonSearchForUpdate" : "檢查更新", 135 "settings.app.buttonSearchForUpdate" : "檢查更新",
125 "settings.app.cacheInfo" : "Franz快取目前占用磁碟空間{大小}。", 136 "settings.app.cacheInfo" : "Franz 快取目前占用 {size} 碟空間。",
126 "settings.app.currentVersion" : "目前的版本", 137 "settings.app.currentVersion" : "目前的版本",
127 "settings.app.form.autoLaunchInBackground" : "在背景開啟", 138 "settings.app.form.autoLaunchInBackground" : "在背景開啟",
128 "settings.app.form.autoLaunchOnStart" : "開機時啟動Franz", 139 "settings.app.form.autoLaunchOnStart" : "開機時啟動 Franz",
129 "settings.app.form.beta" : "包含測試版", 140 "settings.app.form.beta" : "包含測試版",
130 "settings.app.form.darkMode" : "Join the Dark Side", 141 "settings.app.form.darkMode" : "加入黑暗面",
131 "settings.app.form.enableGPUAcceleration" : "啟用GPU加速", 142 "settings.app.form.enableGPUAcceleration" : "啟用 GPU 加速",
132 "settings.app.form.enableMenuBar" : "顯示Franz在選單列", 143 "settings.app.form.enableMenuBar" : "在選單列顯示 Franz",
133 "settings.app.form.enableSpellchecking" : "啟用拼字檢查", 144 "settings.app.form.enableSpellchecking" : "啟用拼字檢查",
134 "settings.app.form.enableSystemTray" : "顯示Franz在系統列", 145 "settings.app.form.enableSystemTray" : "在系統列顯示 Franz",
135 "settings.app.form.hideDockIcon" : "在工作列中隱藏Franz圖示", 146 "settings.app.form.hideDockIcon" : "隱藏 Dock 中的 Franz 圖示",
136 "settings.app.form.language" : "語言", 147 "settings.app.form.language" : "語言",
137 "settings.app.form.minimizeToSystemTray" : "最小化Franz到系統列", 148 "settings.app.form.minimizeToSystemTray" : "最小化 Franz 到系統列",
138 "settings.app.form.runInBackground" : "當關閉視窗時保持Franz在背景運作", 149 "settings.app.form.runInBackground" : "當關閉視窗時保持 Franz 在背景運作",
139 "settings.app.form.showDisabledServices" : "顯示停用的服務標籤", 150 "settings.app.form.showDisabledServices" : "顯示停用的服務標籤",
140 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息", 151 "settings.app.form.showMessagesBadgesWhenMuted" : "當通知關閉時,標記未讀的訊息",
141 "settings.app.form.spellcheckerLanguage" : "拼字檢查語言", 152 "settings.app.form.spellcheckerLanguage" : "拼字檢查語言",
@@ -147,10 +158,10 @@
147 "settings.app.headlineUpdates" : "更新", 158 "settings.app.headlineUpdates" : "更新",
148 "settings.app.restartRequired" : "需要重啟以更變", 159 "settings.app.restartRequired" : "需要重啟以更變",
149 "settings.app.subheadlineCache" : "快取", 160 "settings.app.subheadlineCache" : "快取",
150 "settings.app.translationHelp" : "幫助我們將Franz翻譯成您的語言。", 161 "settings.app.translationHelp" : "幫助我們將 Franz 翻譯成您的語言。",
151 "settings.app.updateStatusAvailable" : "有可用更新,下載中...", 162 "settings.app.updateStatusAvailable" : "有可用更新,下載中...",
152 "settings.app.updateStatusSearching" : "正在搜尋更新", 163 "settings.app.updateStatusSearching" : "正在搜尋更新",
153 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的Franz", 164 "settings.app.updateStatusUpToDate" : "您正在使用最新版本的 Franz",
154 "settings.invite.headline" : "邀請朋友", 165 "settings.invite.headline" : "邀請朋友",
155 "settings.navigation.account" : "帳號", 166 "settings.navigation.account" : "帳號",
156 "settings.navigation.availableServices" : "可使用的服務", 167 "settings.navigation.availableServices" : "可使用的服務",
@@ -172,11 +183,11 @@
172 "settings.service.form.addServiceHeadline" : "新增{name}", 183 "settings.service.form.addServiceHeadline" : "新增{name}",
173 "settings.service.form.availableServices" : "可使用的服務", 184 "settings.service.form.availableServices" : "可使用的服務",
174 "settings.service.form.customUrl" : "自訂伺服器", 185 "settings.service.form.customUrl" : "自訂伺服器",
175 "settings.service.form.customUrlPremiumInfo" : "要添加自己託管的服務,您需要一個Franz 額外支持者帳戶。", 186 "settings.service.form.customUrlPremiumInfo" : "要添加自行託管的服務,您需要擁有 Franz 高級支援帳戶。",
176 "settings.service.form.customUrlUpgradeAccount" : "升級您的帳戶", 187 "settings.service.form.customUrlUpgradeAccount" : "升級您的帳戶",
177 "settings.service.form.customUrlValidationError" : "無法驗證自定義{name}服務器。", 188 "settings.service.form.customUrlValidationError" : "無法驗證自定義{name}服務器。",
178 "settings.service.form.deleteButton" : "刪除服務", 189 "settings.service.form.deleteButton" : "刪除服務",
179 "settings.service.form.editServiceHeadline" : "編輯{名稱}", 190 "settings.service.form.editServiceHeadline" : "編輯 {名稱}",
180 "settings.service.form.enableAudio" : "啟用音訊", 191 "settings.service.form.enableAudio" : "啟用音訊",
181 "settings.service.form.enableBadge" : "顯示未讀訊息圖示", 192 "settings.service.form.enableBadge" : "顯示未讀訊息圖示",
182 "settings.service.form.enableDarkMode" : "開啟深色模式", 193 "settings.service.form.enableDarkMode" : "開啟深色模式",
@@ -192,17 +203,17 @@
192 "settings.service.form.indirectMessages" : "顯示所有新消息的消息標誌", 203 "settings.service.form.indirectMessages" : "顯示所有新消息的消息標誌",
193 "settings.service.form.isMutedInfo" : "停用時,所有通知聲和聲音播放都將靜音", 204 "settings.service.form.isMutedInfo" : "停用時,所有通知聲和聲音播放都將靜音",
194 "settings.service.form.name" : "名稱", 205 "settings.service.form.name" : "名稱",
195 "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", 206 "settings.service.form.proxy.headline" : "HTTP\/HTTPS 代理伺服器設定",
196 "settings.service.form.proxy.host" : "Proxy Host\/IP", 207 "settings.service.form.proxy.host" : "代理伺服器網域 \/ IP",
197 "settings.service.form.proxy.info" : "Proxy 設定不會與 Franz 伺服器同步", 208 "settings.service.form.proxy.info" : "Proxy 設定不會與 Franz 伺服器同步",
198 "settings.service.form.proxy.isEnabled" : "使用 Proxy", 209 "settings.service.form.proxy.isEnabled" : "使用 Proxy",
199 "settings.service.form.proxy.password" : "密碼 (選填)", 210 "settings.service.form.proxy.password" : "密碼 (選填)",
200 "settings.service.form.proxy.port" : "Port", 211 "settings.service.form.proxy.port" : "通訊阜",
201 "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", 212 "settings.service.form.proxy.restartInfo" : "在變更 Proxy 設定後,請重新啟動 Franz",
202 "settings.service.form.proxy.user" : "使用者 (選填)", 213 "settings.service.form.proxy.user" : "使用者 (選填)",
203 "settings.service.form.saveButton" : "保存服務", 214 "settings.service.form.saveButton" : "保存服務",
204 "settings.service.form.spellcheckerLanguage" : "Spell checking Language", 215 "settings.service.form.spellcheckerLanguage" : "拼字檢查語言",
205 "settings.service.form.spellcheckerLanguage.default" : "Use System Default ({default})", 216 "settings.service.form.spellcheckerLanguage.default" : "使用系統預設 ({default})",
206 "settings.service.form.tabHosted" : "託管", 217 "settings.service.form.tabHosted" : "託管",
207 "settings.service.form.tabOnPremise" : "自我託管⭐️", 218 "settings.service.form.tabOnPremise" : "自我託管⭐️",
208 "settings.service.form.team" : "團隊", 219 "settings.service.form.team" : "團隊",
@@ -215,7 +226,7 @@
215 "settings.services.tooltip.isDisabled" : "服務已停用", 226 "settings.services.tooltip.isDisabled" : "服務已停用",
216 "settings.services.tooltip.isMuted" : "所有的聲音都是靜音", 227 "settings.services.tooltip.isMuted" : "所有的聲音都是靜音",
217 "settings.services.tooltip.notificationsDisabled" : "通知已停用", 228 "settings.services.tooltip.notificationsDisabled" : "通知已停用",
218 "settings.services.updatedInfo" : "你的更變儲存", 229 "settings.services.updatedInfo" : "已儲存你的變更",
219 "settings.user.form.accountType.company" : "公司", 230 "settings.user.form.accountType.company" : "公司",
220 "settings.user.form.accountType.individual" : "個人", 231 "settings.user.form.accountType.individual" : "個人",
221 "settings.user.form.accountType.label" : "帳戶類型", 232 "settings.user.form.accountType.label" : "帳戶類型",
@@ -235,7 +246,7 @@
235 "signup.firstname.label" : "名", 246 "signup.firstname.label" : "名",
236 "signup.headline" : "註冊", 247 "signup.headline" : "註冊",
237 "signup.lastname.label" : "姓", 248 "signup.lastname.label" : "姓",
238 "signup.legal.info" : "你接受透過創建一個Franz帳戶", 249 "signup.legal.info" : "透過創建一個 Franz 帳戶,你同意",
239 "signup.legal.privacy" : "隱私聲明", 250 "signup.legal.privacy" : "隱私聲明",
240 "signup.legal.terms" : "服務條款", 251 "signup.legal.terms" : "服務條款",
241 "signup.link.login" : "已經有一個帳戶,登入?", 252 "signup.link.login" : "已經有一個帳戶,登入?",
@@ -245,14 +256,14 @@
245 "subscription.features.ads" : "無廣告,永遠!", 256 "subscription.features.ads" : "無廣告,永遠!",
246 "subscription.features.comingSoon" : "即將推出", 257 "subscription.features.comingSoon" : "即將推出",
247 "subscription.features.encryptedSync" : "加密的會話同步", 258 "subscription.features.encryptedSync" : "加密的會話同步",
248 "subscription.features.noInterruptions" : "No app delays & nagging to upgrade license", 259 "subscription.features.noInterruptions" : "升級授權沒有延遲與打盹",
249 "subscription.features.onpremise" : "添加本地\/託管服務如HipChat", 260 "subscription.features.onpremise" : "添加本地\/託管服務如HipChat",
250 "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", 261 "subscription.features.onpremise.mattermost" : "加入如 Mattermost 等已預定 \/ 託管的服務",
251 "subscription.features.proxy" : "Proxy support for services", 262 "subscription.features.proxy" : "服務的代理伺服器支援",
252 "subscription.features.spellchecker" : "支援拼字檢查", 263 "subscription.features.spellchecker" : "支援拼字檢查",
253 "subscription.includedFeatures" : "包含高級Franz帳戶", 264 "subscription.includedFeatures" : "Franz 級支援帳戶包含",
254 "subscription.paymentSessionError" : "無法初始化付款表單", 265 "subscription.paymentSessionError" : "無法初始化付款表單",
255 "subscription.submit.label" : "我想支持Franz開發", 266 "subscription.submit.label" : "我想支持 Franz 開發",
256 "subscription.type.free" : "自由", 267 "subscription.type.free" : "自由",
257 "subscription.type.month" : "月", 268 "subscription.type.month" : "月",
258 "subscription.type.year" : "年", 269 "subscription.type.year" : "年",
diff --git a/src/i18n/manage-translations.js b/src/i18n/manage-translations.js
new file mode 100644
index 000000000..ee64c9c09
--- /dev/null
+++ b/src/i18n/manage-translations.js
@@ -0,0 +1,9 @@
1require('@babel/register');
2const manageTranslations = require('react-intl-translations-manager').default;
3
4manageTranslations({
5 messagesDirectory: 'src/i18n/messages',
6 translationsDirectory: 'src/i18n/locales',
7 singleMessagesFile: true,
8 languages: ['en-US'],
9});
diff --git a/src/i18n/messages/src/components/auth/Import.json b/src/i18n/messages/src/components/auth/Import.json
new file mode 100644
index 000000000..264fc729b
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Import.json
@@ -0,0 +1,54 @@
1[
2 {
3 "id": "import.headline",
4 "defaultMessage": "!!!Import your Franz 4 services",
5 "file": "src/components/auth/Import.js",
6 "start": {
7 "line": 13,
8 "column": 12
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "import.notSupportedHeadline",
17 "defaultMessage": "!!!Services not yet supported in Franz 5",
18 "file": "src/components/auth/Import.js",
19 "start": {
20 "line": 17,
21 "column": 24
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "import.submit.label",
30 "defaultMessage": "!!!Import {count} services",
31 "file": "src/components/auth/Import.js",
32 "start": {
33 "line": 21,
34 "column": 21
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "import.skip.label",
43 "defaultMessage": "!!!I want to add services manually",
44 "file": "src/components/auth/Import.js",
45 "start": {
46 "line": 25,
47 "column": 19
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 }
54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Invite.json b/src/i18n/messages/src/components/auth/Invite.json
new file mode 100644
index 000000000..57c9bddcf
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Invite.json
@@ -0,0 +1,93 @@
1[
2 {
3 "id": "settings.invite.headline",
4 "defaultMessage": "!!!Invite Friends",
5 "file": "src/components/auth/Invite.js",
6 "start": {
7 "line": 16,
8 "column": 20
9 },
10 "end": {
11 "line": 19,
12 "column": 3
13 }
14 },
15 {
16 "id": "invite.headline.friends",
17 "defaultMessage": "!!!Invite 3 of your friends or colleagues",
18 "file": "src/components/auth/Invite.js",
19 "start": {
20 "line": 20,
21 "column": 12
22 },
23 "end": {
24 "line": 23,
25 "column": 3
26 }
27 },
28 {
29 "id": "invite.name.label",
30 "defaultMessage": "!!!Name",
31 "file": "src/components/auth/Invite.js",
32 "start": {
33 "line": 24,
34 "column": 13
35 },
36 "end": {
37 "line": 27,
38 "column": 3
39 }
40 },
41 {
42 "id": "invite.email.label",
43 "defaultMessage": "!!!Email address",
44 "file": "src/components/auth/Invite.js",
45 "start": {
46 "line": 28,
47 "column": 14
48 },
49 "end": {
50 "line": 31,
51 "column": 3
52 }
53 },
54 {
55 "id": "invite.submit.label",
56 "defaultMessage": "!!!Send invites",
57 "file": "src/components/auth/Invite.js",
58 "start": {
59 "line": 32,
60 "column": 21
61 },
62 "end": {
63 "line": 35,
64 "column": 3
65 }
66 },
67 {
68 "id": "invite.skip.label",
69 "defaultMessage": "!!!I want to do this later",
70 "file": "src/components/auth/Invite.js",
71 "start": {
72 "line": 36,
73 "column": 19
74 },
75 "end": {
76 "line": 39,
77 "column": 3
78 }
79 },
80 {
81 "id": "invite.successInfo",
82 "defaultMessage": "!!!Invitations sent successfully",
83 "file": "src/components/auth/Invite.js",
84 "start": {
85 "line": 40,
86 "column": 21
87 },
88 "end": {
89 "line": 43,
90 "column": 3
91 }
92 }
93] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Login.json b/src/i18n/messages/src/components/auth/Login.json
new file mode 100644
index 000000000..177f6000b
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Login.json
@@ -0,0 +1,119 @@
1[
2 {
3 "id": "login.headline",
4 "defaultMessage": "!!!Sign in",
5 "file": "src/components/auth/Login.js",
6 "start": {
7 "line": 17,
8 "column": 12
9 },
10 "end": {
11 "line": 20,
12 "column": 3
13 }
14 },
15 {
16 "id": "login.email.label",
17 "defaultMessage": "!!!Email address",
18 "file": "src/components/auth/Login.js",
19 "start": {
20 "line": 21,
21 "column": 14
22 },
23 "end": {
24 "line": 24,
25 "column": 3
26 }
27 },
28 {
29 "id": "login.password.label",
30 "defaultMessage": "!!!Password",
31 "file": "src/components/auth/Login.js",
32 "start": {
33 "line": 25,
34 "column": 17
35 },
36 "end": {
37 "line": 28,
38 "column": 3
39 }
40 },
41 {
42 "id": "login.submit.label",
43 "defaultMessage": "!!!Sign in",
44 "file": "src/components/auth/Login.js",
45 "start": {
46 "line": 29,
47 "column": 21
48 },
49 "end": {
50 "line": 32,
51 "column": 3
52 }
53 },
54 {
55 "id": "login.invalidCredentials",
56 "defaultMessage": "!!!Email or password not valid",
57 "file": "src/components/auth/Login.js",
58 "start": {
59 "line": 33,
60 "column": 22
61 },
62 "end": {
63 "line": 36,
64 "column": 3
65 }
66 },
67 {
68 "id": "login.tokenExpired",
69 "defaultMessage": "!!!Your session expired, please login again.",
70 "file": "src/components/auth/Login.js",
71 "start": {
72 "line": 37,
73 "column": 16
74 },
75 "end": {
76 "line": 40,
77 "column": 3
78 }
79 },
80 {
81 "id": "login.serverLogout",
82 "defaultMessage": "!!!Your session expired, please login again.",
83 "file": "src/components/auth/Login.js",
84 "start": {
85 "line": 41,
86 "column": 16
87 },
88 "end": {
89 "line": 44,
90 "column": 3
91 }
92 },
93 {
94 "id": "login.link.signup",
95 "defaultMessage": "!!!Create a free account",
96 "file": "src/components/auth/Login.js",
97 "start": {
98 "line": 45,
99 "column": 14
100 },
101 "end": {
102 "line": 48,
103 "column": 3
104 }
105 },
106 {
107 "id": "login.link.password",
108 "defaultMessage": "!!!Forgot password",
109 "file": "src/components/auth/Login.js",
110 "start": {
111 "line": 49,
112 "column": 16
113 },
114 "end": {
115 "line": 52,
116 "column": 3
117 }
118 }
119] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Password.json b/src/i18n/messages/src/components/auth/Password.json
new file mode 100644
index 000000000..f335b3acb
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Password.json
@@ -0,0 +1,93 @@
1[
2 {
3 "id": "password.headline",
4 "defaultMessage": "!!!Forgot password",
5 "file": "src/components/auth/Password.js",
6 "start": {
7 "line": 14,
8 "column": 12
9 },
10 "end": {
11 "line": 17,
12 "column": 3
13 }
14 },
15 {
16 "id": "password.email.label",
17 "defaultMessage": "!!!Email address",
18 "file": "src/components/auth/Password.js",
19 "start": {
20 "line": 18,
21 "column": 14
22 },
23 "end": {
24 "line": 21,
25 "column": 3
26 }
27 },
28 {
29 "id": "password.submit.label",
30 "defaultMessage": "!!!Submit",
31 "file": "src/components/auth/Password.js",
32 "start": {
33 "line": 22,
34 "column": 21
35 },
36 "end": {
37 "line": 25,
38 "column": 3
39 }
40 },
41 {
42 "id": "password.successInfo",
43 "defaultMessage": "!!!Your new password was sent to your email address",
44 "file": "src/components/auth/Password.js",
45 "start": {
46 "line": 26,
47 "column": 15
48 },
49 "end": {
50 "line": 29,
51 "column": 3
52 }
53 },
54 {
55 "id": "password.noUser",
56 "defaultMessage": "!!!No user affiliated with that email address",
57 "file": "src/components/auth/Password.js",
58 "start": {
59 "line": 30,
60 "column": 10
61 },
62 "end": {
63 "line": 33,
64 "column": 3
65 }
66 },
67 {
68 "id": "password.link.signup",
69 "defaultMessage": "!!!Create a free account",
70 "file": "src/components/auth/Password.js",
71 "start": {
72 "line": 34,
73 "column": 14
74 },
75 "end": {
76 "line": 37,
77 "column": 3
78 }
79 },
80 {
81 "id": "password.link.login",
82 "defaultMessage": "!!!Sign in to your account",
83 "file": "src/components/auth/Password.js",
84 "start": {
85 "line": 38,
86 "column": 13
87 },
88 "end": {
89 "line": 41,
90 "column": 3
91 }
92 }
93] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Pricing.json b/src/i18n/messages/src/components/auth/Pricing.json
new file mode 100644
index 000000000..f711a55b4
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Pricing.json
@@ -0,0 +1,54 @@
1[
2 {
3 "id": "pricing.headline",
4 "defaultMessage": "!!!Support Franz",
5 "file": "src/components/auth/Pricing.js",
6 "start": {
7 "line": 13,
8 "column": 12
9 },
10 "end": {
11 "line": 16,
12 "column": 3
13 }
14 },
15 {
16 "id": "pricing.support.label",
17 "defaultMessage": "!!!Select your support plan",
18 "file": "src/components/auth/Pricing.js",
19 "start": {
20 "line": 17,
21 "column": 23
22 },
23 "end": {
24 "line": 20,
25 "column": 3
26 }
27 },
28 {
29 "id": "pricing.submit.label",
30 "defaultMessage": "!!!Support the development of Franz",
31 "file": "src/components/auth/Pricing.js",
32 "start": {
33 "line": 21,
34 "column": 21
35 },
36 "end": {
37 "line": 24,
38 "column": 3
39 }
40 },
41 {
42 "id": "pricing.link.skipPayment",
43 "defaultMessage": "!!!I don't want to support the development of Franz.",
44 "file": "src/components/auth/Pricing.js",
45 "start": {
46 "line": 25,
47 "column": 15
48 },
49 "end": {
50 "line": 28,
51 "column": 3
52 }
53 }
54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Signup.json b/src/i18n/messages/src/components/auth/Signup.json
new file mode 100644
index 000000000..a09745048
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Signup.json
@@ -0,0 +1,158 @@
1[
2 {
3 "id": "signup.headline",
4 "defaultMessage": "!!!Sign up",
5 "file": "src/components/auth/Signup.js",
6 "start": {
7 "line": 18,
8 "column": 12
9 },
10 "end": {
11 "line": 21,
12 "column": 3
13 }
14 },
15 {
16 "id": "signup.firstname.label",
17 "defaultMessage": "!!!Firstname",
18 "file": "src/components/auth/Signup.js",
19 "start": {
20 "line": 22,
21 "column": 18
22 },
23 "end": {
24 "line": 25,
25 "column": 3
26 }
27 },
28 {
29 "id": "signup.lastname.label",
30 "defaultMessage": "!!!Lastname",
31 "file": "src/components/auth/Signup.js",
32 "start": {
33 "line": 26,
34 "column": 17
35 },
36 "end": {
37 "line": 29,
38 "column": 3
39 }
40 },
41 {
42 "id": "signup.email.label",
43 "defaultMessage": "!!!Email address",
44 "file": "src/components/auth/Signup.js",
45 "start": {
46 "line": 30,
47 "column": 14
48 },
49 "end": {
50 "line": 33,
51 "column": 3
52 }
53 },
54 {
55 "id": "signup.company.label",
56 "defaultMessage": "!!!Company",
57 "file": "src/components/auth/Signup.js",
58 "start": {
59 "line": 34,
60 "column": 16
61 },
62 "end": {
63 "line": 37,
64 "column": 3
65 }
66 },
67 {
68 "id": "signup.password.label",
69 "defaultMessage": "!!!Password",
70 "file": "src/components/auth/Signup.js",
71 "start": {
72 "line": 38,
73 "column": 17
74 },
75 "end": {
76 "line": 41,
77 "column": 3
78 }
79 },
80 {
81 "id": "signup.legal.info",
82 "defaultMessage": "!!!By creating a Franz account you accept the",
83 "file": "src/components/auth/Signup.js",
84 "start": {
85 "line": 42,
86 "column": 13
87 },
88 "end": {
89 "line": 45,
90 "column": 3
91 }
92 },
93 {
94 "id": "signup.legal.terms",
95 "defaultMessage": "!!!Terms of service",
96 "file": "src/components/auth/Signup.js",
97 "start": {
98 "line": 46,
99 "column": 9
100 },
101 "end": {
102 "line": 49,
103 "column": 3
104 }
105 },
106 {
107 "id": "signup.legal.privacy",
108 "defaultMessage": "!!!Privacy Statement",
109 "file": "src/components/auth/Signup.js",
110 "start": {
111 "line": 50,
112 "column": 11
113 },
114 "end": {
115 "line": 53,
116 "column": 3
117 }
118 },
119 {
120 "id": "signup.submit.label",
121 "defaultMessage": "!!!Create account",
122 "file": "src/components/auth/Signup.js",
123 "start": {
124 "line": 54,
125 "column": 21
126 },
127 "end": {
128 "line": 57,
129 "column": 3
130 }
131 },
132 {
133 "id": "signup.link.login",
134 "defaultMessage": "!!!Already have an account, sign in?",
135 "file": "src/components/auth/Signup.js",
136 "start": {
137 "line": 58,
138 "column": 13
139 },
140 "end": {
141 "line": 61,
142 "column": 3
143 }
144 },
145 {
146 "id": "signup.emailDuplicate",
147 "defaultMessage": "!!!A user with that email address already exists",
148 "file": "src/components/auth/Signup.js",
149 "start": {
150 "line": 62,
151 "column": 18
152 },
153 "end": {
154 "line": 65,
155 "column": 3
156 }
157 }
158] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/auth/Welcome.json b/src/i18n/messages/src/components/auth/Welcome.json
new file mode 100644
index 000000000..b4d2ce689
--- /dev/null
+++ b/src/i18n/messages/src/components/auth/Welcome.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "welcome.signupButton",
4 "defaultMessage": "!!!Create a free account",
5 "file": "src/components/auth/Welcome.js",
6 "start": {
7 "line": 9,
8 "column": 16
9 },
10 "end": {
11 "line": 12,
12 "column": 3
13 }
14 },
15 {
16 "id": "welcome.loginButton",
17 "defaultMessage": "!!!Login to your account",
18 "file": "src/components/auth/Welcome.js",
19 "start": {
20 "line": 13,
21 "column": 15
22 },
23 "end": {
24 "line": 16,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json
new file mode 100644
index 000000000..07603d062
--- /dev/null
+++ b/src/i18n/messages/src/components/layout/AppLayout.json
@@ -0,0 +1,80 @@
1[
2 {
3 "id": "infobar.servicesUpdated",
4 "defaultMessage": "!!!Your services have been updated.",
5 "file": "src/components/layout/AppLayout.js",
6 "start": {
7 "line": 22,
8 "column": 19
9 },
10 "end": {
11 "line": 25,
12 "column": 3
13 }
14 },
15 {
16 "id": "infobar.updateAvailable",
17 "defaultMessage": "!!!A new update for Franz is available.",
18 "file": "src/components/layout/AppLayout.js",
19 "start": {
20 "line": 26,
21 "column": 19
22 },
23 "end": {
24 "line": 29,
25 "column": 3
26 }
27 },
28 {
29 "id": "infobar.buttonReloadServices",
30 "defaultMessage": "!!!Reload services",
31 "file": "src/components/layout/AppLayout.js",
32 "start": {
33 "line": 30,
34 "column": 24
35 },
36 "end": {
37 "line": 33,
38 "column": 3
39 }
40 },
41 {
42 "id": "infobar.buttonChangelog",
43 "defaultMessage": "!!!Changelog",
44 "file": "src/components/layout/AppLayout.js",
45 "start": {
46 "line": 34,
47 "column": 13
48 },
49 "end": {
50 "line": 37,
51 "column": 3
52 }
53 },
54 {
55 "id": "infobar.buttonInstallUpdate",
56 "defaultMessage": "!!!Restart & install update",
57 "file": "src/components/layout/AppLayout.js",
58 "start": {
59 "line": 38,
60 "column": 23
61 },
62 "end": {
63 "line": 41,
64 "column": 3
65 }
66 },
67 {
68 "id": "infobar.requiredRequestsFailed",
69 "defaultMessage": "!!!Could not load services and user information",
70 "file": "src/components/layout/AppLayout.js",
71 "start": {
72 "line": 42,
73 "column": 26
74 },
75 "end": {
76 "line": 45,
77 "column": 3
78 }
79 }
80] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/layout/Sidebar.json b/src/i18n/messages/src/components/layout/Sidebar.json
new file mode 100644
index 000000000..7aa00a186
--- /dev/null
+++ b/src/i18n/messages/src/components/layout/Sidebar.json
@@ -0,0 +1,54 @@
1[
2 {
3 "id": "sidebar.settings",
4 "defaultMessage": "!!!Settings",
5 "file": "src/components/layout/Sidebar.js",
6 "start": {
7 "line": 11,
8 "column": 12
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "sidebar.addNewService",
17 "defaultMessage": "!!!Add new service",
18 "file": "src/components/layout/Sidebar.js",
19 "start": {
20 "line": 15,
21 "column": 17
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 },
28 {
29 "id": "sidebar.muteApp",
30 "defaultMessage": "!!!Disable notifications & audio",
31 "file": "src/components/layout/Sidebar.js",
32 "start": {
33 "line": 19,
34 "column": 8
35 },
36 "end": {
37 "line": 22,
38 "column": 3
39 }
40 },
41 {
42 "id": "sidebar.unmuteApp",
43 "defaultMessage": "!!!Enable notifications & audio",
44 "file": "src/components/layout/Sidebar.js",
45 "start": {
46 "line": 23,
47 "column": 10
48 },
49 "end": {
50 "line": 26,
51 "column": 3
52 }
53 }
54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json b/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json
new file mode 100644
index 000000000..c8fe802df
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/ErrorHandlers/WebviewErrorHandler.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "service.errorHandler.headline",
4 "defaultMessage": "!!!Oh no!",
5 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
6 "start": {
7 "line": 12,
8 "column": 12
9 },
10 "end": {
11 "line": 15,
12 "column": 3
13 }
14 },
15 {
16 "id": "service.errorHandler.text",
17 "defaultMessage": "!!!{name} has failed to load.",
18 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
19 "start": {
20 "line": 16,
21 "column": 8
22 },
23 "end": {
24 "line": 19,
25 "column": 3
26 }
27 },
28 {
29 "id": "service.errorHandler.action",
30 "defaultMessage": "!!!Reload {name}",
31 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
32 "start": {
33 "line": 20,
34 "column": 10
35 },
36 "end": {
37 "line": 23,
38 "column": 3
39 }
40 },
41 {
42 "id": "service.errorHandler.editAction",
43 "defaultMessage": "!!!Edit {name}",
44 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
45 "start": {
46 "line": 24,
47 "column": 14
48 },
49 "end": {
50 "line": 27,
51 "column": 3
52 }
53 },
54 {
55 "id": "service.errorHandler.message",
56 "defaultMessage": "!!!Error:",
57 "file": "src/components/services/content/ErrorHandlers/WebviewErrorHandler.js",
58 "start": {
59 "line": 28,
60 "column": 16
61 },
62 "end": {
63 "line": 31,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/ServiceDisabled.json b/src/i18n/messages/src/components/services/content/ServiceDisabled.json
new file mode 100644
index 000000000..8bfad28c7
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/ServiceDisabled.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "service.disabledHandler.headline",
4 "defaultMessage": "!!!{name} is disabled",
5 "file": "src/components/services/content/ServiceDisabled.js",
6 "start": {
7 "line": 9,
8 "column": 12
9 },
10 "end": {
11 "line": 12,
12 "column": 3
13 }
14 },
15 {
16 "id": "service.disabledHandler.action",
17 "defaultMessage": "!!!Enable {name}",
18 "file": "src/components/services/content/ServiceDisabled.js",
19 "start": {
20 "line": 13,
21 "column": 10
22 },
23 "end": {
24 "line": 16,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json
new file mode 100644
index 000000000..884ab0c90
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/Services.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "services.welcome",
4 "defaultMessage": "!!!Welcome to Franz",
5 "file": "src/components/services/content/Services.js",
6 "start": {
7 "line": 11,
8 "column": 11
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "services.getStarted",
17 "defaultMessage": "!!!Get started",
18 "file": "src/components/services/content/Services.js",
19 "start": {
20 "line": 15,
21 "column": 14
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json b/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json
new file mode 100644
index 000000000..c3d6c41a5
--- /dev/null
+++ b/src/i18n/messages/src/components/services/content/WebviewCrashHandler.json
@@ -0,0 +1,54 @@
1[
2 {
3 "id": "service.crashHandler.headline",
4 "defaultMessage": "!!!Oh no!",
5 "file": "src/components/services/content/WebviewCrashHandler.js",
6 "start": {
7 "line": 10,
8 "column": 12
9 },
10 "end": {
11 "line": 13,
12 "column": 3
13 }
14 },
15 {
16 "id": "service.crashHandler.text",
17 "defaultMessage": "!!!{name} has caused an error.",
18 "file": "src/components/services/content/WebviewCrashHandler.js",
19 "start": {
20 "line": 14,
21 "column": 8
22 },
23 "end": {
24 "line": 17,
25 "column": 3
26 }
27 },
28 {
29 "id": "service.crashHandler.action",
30 "defaultMessage": "!!!Reload {name}",
31 "file": "src/components/services/content/WebviewCrashHandler.js",
32 "start": {
33 "line": 18,
34 "column": 10
35 },
36 "end": {
37 "line": 21,
38 "column": 3
39 }
40 },
41 {
42 "id": "service.crashHandler.autoReload",
43 "defaultMessage": "!!!Trying to automatically restore {name} in {seconds} seconds",
44 "file": "src/components/services/content/WebviewCrashHandler.js",
45 "start": {
46 "line": 22,
47 "column": 14
48 },
49 "end": {
50 "line": 25,
51 "column": 3
52 }
53 }
54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/services/tabs/TabItem.json b/src/i18n/messages/src/components/services/tabs/TabItem.json
new file mode 100644
index 000000000..08a07845c
--- /dev/null
+++ b/src/i18n/messages/src/components/services/tabs/TabItem.json
@@ -0,0 +1,119 @@
1[
2 {
3 "id": "tabs.item.reload",
4 "defaultMessage": "!!!Reload",
5 "file": "src/components/services/tabs/TabItem.js",
6 "start": {
7 "line": 15,
8 "column": 10
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "tabs.item.edit",
17 "defaultMessage": "!!!Edit",
18 "file": "src/components/services/tabs/TabItem.js",
19 "start": {
20 "line": 19,
21 "column": 8
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "tabs.item.disableNotifications",
30 "defaultMessage": "!!!Disable notifications",
31 "file": "src/components/services/tabs/TabItem.js",
32 "start": {
33 "line": 23,
34 "column": 24
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 },
41 {
42 "id": "tabs.item.enableNotification",
43 "defaultMessage": "!!!Enable notifications",
44 "file": "src/components/services/tabs/TabItem.js",
45 "start": {
46 "line": 27,
47 "column": 23
48 },
49 "end": {
50 "line": 30,
51 "column": 3
52 }
53 },
54 {
55 "id": "tabs.item.disableAudio",
56 "defaultMessage": "!!!Disable audio",
57 "file": "src/components/services/tabs/TabItem.js",
58 "start": {
59 "line": 31,
60 "column": 16
61 },
62 "end": {
63 "line": 34,
64 "column": 3
65 }
66 },
67 {
68 "id": "tabs.item.enableAudio",
69 "defaultMessage": "!!!Enable audio",
70 "file": "src/components/services/tabs/TabItem.js",
71 "start": {
72 "line": 35,
73 "column": 15
74 },
75 "end": {
76 "line": 38,
77 "column": 3
78 }
79 },
80 {
81 "id": "tabs.item.disableService",
82 "defaultMessage": "!!!Disable Service",
83 "file": "src/components/services/tabs/TabItem.js",
84 "start": {
85 "line": 39,
86 "column": 18
87 },
88 "end": {
89 "line": 42,
90 "column": 3
91 }
92 },
93 {
94 "id": "tabs.item.enableService",
95 "defaultMessage": "!!!Enable Service",
96 "file": "src/components/services/tabs/TabItem.js",
97 "start": {
98 "line": 43,
99 "column": 17
100 },
101 "end": {
102 "line": 46,
103 "column": 3
104 }
105 },
106 {
107 "id": "tabs.item.deleteService",
108 "defaultMessage": "!!!Delete Service",
109 "file": "src/components/services/tabs/TabItem.js",
110 "start": {
111 "line": 47,
112 "column": 17
113 },
114 "end": {
115 "line": 50,
116 "column": 3
117 }
118 }
119] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/account/AccountDashboard.json b/src/i18n/messages/src/components/settings/account/AccountDashboard.json
new file mode 100644
index 000000000..603950395
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/account/AccountDashboard.json
@@ -0,0 +1,197 @@
1[
2 {
3 "id": "settings.account.headline",
4 "defaultMessage": "!!!Account",
5 "file": "src/components/settings/account/AccountDashboard.js",
6 "start": {
7 "line": 15,
8 "column": 12
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.account.headlineSubscription",
17 "defaultMessage": "!!!Your Subscription",
18 "file": "src/components/settings/account/AccountDashboard.js",
19 "start": {
20 "line": 19,
21 "column": 24
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.account.headlineUpgrade",
30 "defaultMessage": "!!!Upgrade your Account",
31 "file": "src/components/settings/account/AccountDashboard.js",
32 "start": {
33 "line": 23,
34 "column": 19
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.account.headlineInvoices",
43 "defaultMessage": "!!Invoices",
44 "file": "src/components/settings/account/AccountDashboard.js",
45 "start": {
46 "line": 27,
47 "column": 20
48 },
49 "end": {
50 "line": 30,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.account.headlineDangerZone",
56 "defaultMessage": "!!Danger Zone",
57 "file": "src/components/settings/account/AccountDashboard.js",
58 "start": {
59 "line": 31,
60 "column": 22
61 },
62 "end": {
63 "line": 34,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.account.manageSubscription.label",
69 "defaultMessage": "!!!Manage your subscription",
70 "file": "src/components/settings/account/AccountDashboard.js",
71 "start": {
72 "line": 35,
73 "column": 33
74 },
75 "end": {
76 "line": 38,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.account.accountType.basic",
82 "defaultMessage": "!!!Basic Account",
83 "file": "src/components/settings/account/AccountDashboard.js",
84 "start": {
85 "line": 39,
86 "column": 20
87 },
88 "end": {
89 "line": 42,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.account.accountType.premium",
95 "defaultMessage": "!!!Premium Supporter Account",
96 "file": "src/components/settings/account/AccountDashboard.js",
97 "start": {
98 "line": 43,
99 "column": 22
100 },
101 "end": {
102 "line": 46,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.account.account.editButton",
108 "defaultMessage": "!!!Edit Account",
109 "file": "src/components/settings/account/AccountDashboard.js",
110 "start": {
111 "line": 47,
112 "column": 21
113 },
114 "end": {
115 "line": 50,
116 "column": 3
117 }
118 },
119 {
120 "id": "settings.account.invoiceDownload",
121 "defaultMessage": "!!!Download",
122 "file": "src/components/settings/account/AccountDashboard.js",
123 "start": {
124 "line": 51,
125 "column": 19
126 },
127 "end": {
128 "line": 54,
129 "column": 3
130 }
131 },
132 {
133 "id": "settings.account.userInfoRequestFailed",
134 "defaultMessage": "!!!Could not load user information",
135 "file": "src/components/settings/account/AccountDashboard.js",
136 "start": {
137 "line": 55,
138 "column": 25
139 },
140 "end": {
141 "line": 58,
142 "column": 3
143 }
144 },
145 {
146 "id": "settings.account.tryReloadUserInfoRequest",
147 "defaultMessage": "!!!Try again",
148 "file": "src/components/settings/account/AccountDashboard.js",
149 "start": {
150 "line": 59,
151 "column": 28
152 },
153 "end": {
154 "line": 62,
155 "column": 3
156 }
157 },
158 {
159 "id": "settings.account.deleteAccount",
160 "defaultMessage": "!!!Delete account",
161 "file": "src/components/settings/account/AccountDashboard.js",
162 "start": {
163 "line": 63,
164 "column": 17
165 },
166 "end": {
167 "line": 66,
168 "column": 3
169 }
170 },
171 {
172 "id": "settings.account.deleteInfo",
173 "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.",
174 "file": "src/components/settings/account/AccountDashboard.js",
175 "start": {
176 "line": 67,
177 "column": 14
178 },
179 "end": {
180 "line": 70,
181 "column": 3
182 }
183 },
184 {
185 "id": "settings.account.deleteEmailSent",
186 "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!",
187 "file": "src/components/settings/account/AccountDashboard.js",
188 "start": {
189 "line": 71,
190 "column": 19
191 },
192 "end": {
193 "line": 74,
194 "column": 3
195 }
196 }
197] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json
new file mode 100644
index 000000000..4d8443b02
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json
@@ -0,0 +1,93 @@
1[
2 {
3 "id": "settings.navigation.availableServices",
4 "defaultMessage": "!!!Available services",
5 "file": "src/components/settings/navigation/SettingsNavigation.js",
6 "start": {
7 "line": 9,
8 "column": 21
9 },
10 "end": {
11 "line": 12,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.navigation.yourServices",
17 "defaultMessage": "!!!Your services",
18 "file": "src/components/settings/navigation/SettingsNavigation.js",
19 "start": {
20 "line": 13,
21 "column": 16
22 },
23 "end": {
24 "line": 16,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.navigation.yourWorkspaces",
30 "defaultMessage": "!!!Your workspaces",
31 "file": "src/components/settings/navigation/SettingsNavigation.js",
32 "start": {
33 "line": 17,
34 "column": 18
35 },
36 "end": {
37 "line": 20,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.navigation.account",
43 "defaultMessage": "!!!Account",
44 "file": "src/components/settings/navigation/SettingsNavigation.js",
45 "start": {
46 "line": 21,
47 "column": 11
48 },
49 "end": {
50 "line": 24,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.navigation.settings",
56 "defaultMessage": "!!!Settings",
57 "file": "src/components/settings/navigation/SettingsNavigation.js",
58 "start": {
59 "line": 25,
60 "column": 12
61 },
62 "end": {
63 "line": 28,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.navigation.inviteFriends",
69 "defaultMessage": "!!!Invite Friends",
70 "file": "src/components/settings/navigation/SettingsNavigation.js",
71 "start": {
72 "line": 29,
73 "column": 17
74 },
75 "end": {
76 "line": 32,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.navigation.logout",
82 "defaultMessage": "!!!Logout",
83 "file": "src/components/settings/navigation/SettingsNavigation.js",
84 "start": {
85 "line": 33,
86 "column": 10
87 },
88 "end": {
89 "line": 36,
90 "column": 3
91 }
92 }
93] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json
new file mode 100644
index 000000000..7d9ed3283
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/recipes/RecipesDashboard.json
@@ -0,0 +1,106 @@
1[
2 {
3 "id": "settings.recipes.headline",
4 "defaultMessage": "!!!Available Services",
5 "file": "src/components/settings/recipes/RecipesDashboard.js",
6 "start": {
7 "line": 15,
8 "column": 12
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.searchService",
17 "defaultMessage": "!!!Search service",
18 "file": "src/components/settings/recipes/RecipesDashboard.js",
19 "start": {
20 "line": 19,
21 "column": 17
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.recipes.mostPopular",
30 "defaultMessage": "!!!Most popular",
31 "file": "src/components/settings/recipes/RecipesDashboard.js",
32 "start": {
33 "line": 23,
34 "column": 22
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.recipes.all",
43 "defaultMessage": "!!!All services",
44 "file": "src/components/settings/recipes/RecipesDashboard.js",
45 "start": {
46 "line": 27,
47 "column": 14
48 },
49 "end": {
50 "line": 30,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.recipes.dev",
56 "defaultMessage": "!!!Development",
57 "file": "src/components/settings/recipes/RecipesDashboard.js",
58 "start": {
59 "line": 31,
60 "column": 14
61 },
62 "end": {
63 "line": 34,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.recipes.nothingFound",
69 "defaultMessage": "!!!Sorry, but no service matched your search term.",
70 "file": "src/components/settings/recipes/RecipesDashboard.js",
71 "start": {
72 "line": 35,
73 "column": 16
74 },
75 "end": {
76 "line": 38,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.recipes.servicesSuccessfulAddedInfo",
82 "defaultMessage": "!!!Service successfully added",
83 "file": "src/components/settings/recipes/RecipesDashboard.js",
84 "start": {
85 "line": 39,
86 "column": 31
87 },
88 "end": {
89 "line": 42,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.recipes.missingService",
95 "defaultMessage": "!!!Missing a service?",
96 "file": "src/components/settings/recipes/RecipesDashboard.js",
97 "start": {
98 "line": 43,
99 "column": 18
100 },
101 "end": {
102 "line": 46,
103 "column": 3
104 }
105 }
106] \ 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
new file mode 100644
index 000000000..42b741b7a
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json
@@ -0,0 +1,288 @@
1[
2 {
3 "id": "settings.service.form.saveButton",
4 "defaultMessage": "!!!Save service",
5 "file": "src/components/settings/services/EditServiceForm.js",
6 "start": {
7 "line": 22,
8 "column": 15
9 },
10 "end": {
11 "line": 25,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.service.form.deleteButton",
17 "defaultMessage": "!!!Delete Service",
18 "file": "src/components/settings/services/EditServiceForm.js",
19 "start": {
20 "line": 26,
21 "column": 17
22 },
23 "end": {
24 "line": 29,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.service.form.availableServices",
30 "defaultMessage": "!!!Available services",
31 "file": "src/components/settings/services/EditServiceForm.js",
32 "start": {
33 "line": 30,
34 "column": 21
35 },
36 "end": {
37 "line": 33,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.service.form.yourServices",
43 "defaultMessage": "!!!Your services",
44 "file": "src/components/settings/services/EditServiceForm.js",
45 "start": {
46 "line": 34,
47 "column": 16
48 },
49 "end": {
50 "line": 37,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.service.form.addServiceHeadline",
56 "defaultMessage": "!!!Add {name}",
57 "file": "src/components/settings/services/EditServiceForm.js",
58 "start": {
59 "line": 38,
60 "column": 22
61 },
62 "end": {
63 "line": 41,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.service.form.editServiceHeadline",
69 "defaultMessage": "!!!Edit {name}",
70 "file": "src/components/settings/services/EditServiceForm.js",
71 "start": {
72 "line": 42,
73 "column": 23
74 },
75 "end": {
76 "line": 45,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.service.form.tabHosted",
82 "defaultMessage": "!!!Hosted",
83 "file": "src/components/settings/services/EditServiceForm.js",
84 "start": {
85 "line": 46,
86 "column": 13
87 },
88 "end": {
89 "line": 49,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.service.form.tabOnPremise",
95 "defaultMessage": "!!!Self hosted ⭐️",
96 "file": "src/components/settings/services/EditServiceForm.js",
97 "start": {
98 "line": 50,
99 "column": 16
100 },
101 "end": {
102 "line": 53,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.service.form.useHostedService",
108 "defaultMessage": "!!!Use the hosted {name} service.",
109 "file": "src/components/settings/services/EditServiceForm.js",
110 "start": {
111 "line": 54,
112 "column": 20
113 },
114 "end": {
115 "line": 57,
116 "column": 3
117 }
118 },
119 {
120 "id": "settings.service.form.customUrlValidationError",
121 "defaultMessage": "!!!Could not validate custom {name} server.",
122 "file": "src/components/settings/services/EditServiceForm.js",
123 "start": {
124 "line": 58,
125 "column": 28
126 },
127 "end": {
128 "line": 61,
129 "column": 3
130 }
131 },
132 {
133 "id": "settings.service.form.customUrlPremiumInfo",
134 "defaultMessage": "!!!To add self hosted services, you need a Franz Premium Supporter Account.",
135 "file": "src/components/settings/services/EditServiceForm.js",
136 "start": {
137 "line": 62,
138 "column": 24
139 },
140 "end": {
141 "line": 65,
142 "column": 3
143 }
144 },
145 {
146 "id": "settings.service.form.customUrlUpgradeAccount",
147 "defaultMessage": "!!!Upgrade your account",
148 "file": "src/components/settings/services/EditServiceForm.js",
149 "start": {
150 "line": 66,
151 "column": 27
152 },
153 "end": {
154 "line": 69,
155 "column": 3
156 }
157 },
158 {
159 "id": "settings.service.form.indirectMessageInfo",
160 "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...",
161 "file": "src/components/settings/services/EditServiceForm.js",
162 "start": {
163 "line": 70,
164 "column": 23
165 },
166 "end": {
167 "line": 73,
168 "column": 3
169 }
170 },
171 {
172 "id": "settings.service.form.isMutedInfo",
173 "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted",
174 "file": "src/components/settings/services/EditServiceForm.js",
175 "start": {
176 "line": 74,
177 "column": 15
178 },
179 "end": {
180 "line": 77,
181 "column": 3
182 }
183 },
184 {
185 "id": "settings.service.form.headlineNotifications",
186 "defaultMessage": "!!!Notifications",
187 "file": "src/components/settings/services/EditServiceForm.js",
188 "start": {
189 "line": 78,
190 "column": 25
191 },
192 "end": {
193 "line": 81,
194 "column": 3
195 }
196 },
197 {
198 "id": "settings.service.form.headlineBadges",
199 "defaultMessage": "!!!Unread message badges",
200 "file": "src/components/settings/services/EditServiceForm.js",
201 "start": {
202 "line": 82,
203 "column": 18
204 },
205 "end": {
206 "line": 85,
207 "column": 3
208 }
209 },
210 {
211 "id": "settings.service.form.headlineGeneral",
212 "defaultMessage": "!!!General",
213 "file": "src/components/settings/services/EditServiceForm.js",
214 "start": {
215 "line": 86,
216 "column": 19
217 },
218 "end": {
219 "line": 89,
220 "column": 3
221 }
222 },
223 {
224 "id": "settings.service.form.iconDelete",
225 "defaultMessage": "!!!Delete",
226 "file": "src/components/settings/services/EditServiceForm.js",
227 "start": {
228 "line": 90,
229 "column": 14
230 },
231 "end": {
232 "line": 93,
233 "column": 3
234 }
235 },
236 {
237 "id": "settings.service.form.iconUpload",
238 "defaultMessage": "!!!Drop your image, or click here",
239 "file": "src/components/settings/services/EditServiceForm.js",
240 "start": {
241 "line": 94,
242 "column": 14
243 },
244 "end": {
245 "line": 97,
246 "column": 3
247 }
248 },
249 {
250 "id": "settings.service.form.proxy.headline",
251 "defaultMessage": "!!!HTTP/HTTPS Proxy Settings",
252 "file": "src/components/settings/services/EditServiceForm.js",
253 "start": {
254 "line": 98,
255 "column": 17
256 },
257 "end": {
258 "line": 101,
259 "column": 3
260 }
261 },
262 {
263 "id": "settings.service.form.proxy.restartInfo",
264 "defaultMessage": "!!!Please restart Franz after changing proxy Settings.",
265 "file": "src/components/settings/services/EditServiceForm.js",
266 "start": {
267 "line": 102,
268 "column": 20
269 },
270 "end": {
271 "line": 105,
272 "column": 3
273 }
274 },
275 {
276 "id": "settings.service.form.proxy.info",
277 "defaultMessage": "!!!Proxy settings will not be synchronized with the Franz servers.",
278 "file": "src/components/settings/services/EditServiceForm.js",
279 "start": {
280 "line": 106,
281 "column": 13
282 },
283 "end": {
284 "line": 109,
285 "column": 3
286 }
287 }
288] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/services/ServiceError.json b/src/i18n/messages/src/components/settings/services/ServiceError.json
new file mode 100644
index 000000000..648fc5b3e
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/services/ServiceError.json
@@ -0,0 +1,54 @@
1[
2 {
3 "id": "settings.service.error.headline",
4 "defaultMessage": "!!!Error",
5 "file": "src/components/settings/services/ServiceError.js",
6 "start": {
7 "line": 10,
8 "column": 12
9 },
10 "end": {
11 "line": 13,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.service.error.goBack",
17 "defaultMessage": "!!!Back to services",
18 "file": "src/components/settings/services/ServiceError.js",
19 "start": {
20 "line": 14,
21 "column": 10
22 },
23 "end": {
24 "line": 17,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.service.form.availableServices",
30 "defaultMessage": "!!!Available services",
31 "file": "src/components/settings/services/ServiceError.js",
32 "start": {
33 "line": 18,
34 "column": 21
35 },
36 "end": {
37 "line": 21,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.service.error.message",
43 "defaultMessage": "!!!Could not load service recipe.",
44 "file": "src/components/settings/services/ServiceError.js",
45 "start": {
46 "line": 22,
47 "column": 16
48 },
49 "end": {
50 "line": 25,
51 "column": 3
52 }
53 }
54] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/services/ServiceItem.json b/src/i18n/messages/src/components/settings/services/ServiceItem.json
new file mode 100644
index 000000000..ffea8b9e1
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/services/ServiceItem.json
@@ -0,0 +1,41 @@
1[
2 {
3 "id": "settings.services.tooltip.isDisabled",
4 "defaultMessage": "!!!Service is disabled",
5 "file": "src/components/settings/services/ServiceItem.js",
6 "start": {
7 "line": 11,
8 "column": 21
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.services.tooltip.notificationsDisabled",
17 "defaultMessage": "!!!Notifications are disabled",
18 "file": "src/components/settings/services/ServiceItem.js",
19 "start": {
20 "line": 15,
21 "column": 32
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.services.tooltip.isMuted",
30 "defaultMessage": "!!!All sounds are muted",
31 "file": "src/components/settings/services/ServiceItem.js",
32 "start": {
33 "line": 19,
34 "column": 18
35 },
36 "end": {
37 "line": 22,
38 "column": 3
39 }
40 }
41] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/services/ServicesDashboard.json b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json
new file mode 100644
index 000000000..3803c6512
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/services/ServicesDashboard.json
@@ -0,0 +1,119 @@
1[
2 {
3 "id": "settings.services.headline",
4 "defaultMessage": "!!!Your services",
5 "file": "src/components/settings/services/ServicesDashboard.js",
6 "start": {
7 "line": 14,
8 "column": 12
9 },
10 "end": {
11 "line": 17,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.searchService",
17 "defaultMessage": "!!!Search service",
18 "file": "src/components/settings/services/ServicesDashboard.js",
19 "start": {
20 "line": 18,
21 "column": 17
22 },
23 "end": {
24 "line": 21,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.services.noServicesAdded",
30 "defaultMessage": "!!!You haven't added any services yet.",
31 "file": "src/components/settings/services/ServicesDashboard.js",
32 "start": {
33 "line": 22,
34 "column": 19
35 },
36 "end": {
37 "line": 25,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.recipes.nothingFound",
43 "defaultMessage": "!!!Sorry, but no service matched your search term.",
44 "file": "src/components/settings/services/ServicesDashboard.js",
45 "start": {
46 "line": 26,
47 "column": 18
48 },
49 "end": {
50 "line": 29,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.services.discoverServices",
56 "defaultMessage": "!!!Discover services",
57 "file": "src/components/settings/services/ServicesDashboard.js",
58 "start": {
59 "line": 30,
60 "column": 20
61 },
62 "end": {
63 "line": 33,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.services.servicesRequestFailed",
69 "defaultMessage": "!!!Could not load your services",
70 "file": "src/components/settings/services/ServicesDashboard.js",
71 "start": {
72 "line": 34,
73 "column": 25
74 },
75 "end": {
76 "line": 37,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.account.tryReloadServices",
82 "defaultMessage": "!!!Try again",
83 "file": "src/components/settings/services/ServicesDashboard.js",
84 "start": {
85 "line": 38,
86 "column": 21
87 },
88 "end": {
89 "line": 41,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.services.updatedInfo",
95 "defaultMessage": "!!!Your changes have been saved",
96 "file": "src/components/settings/services/ServicesDashboard.js",
97 "start": {
98 "line": 42,
99 "column": 15
100 },
101 "end": {
102 "line": 45,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.services.deletedInfo",
108 "defaultMessage": "!!!Service has been deleted",
109 "file": "src/components/settings/services/ServicesDashboard.js",
110 "start": {
111 "line": 46,
112 "column": 15
113 },
114 "end": {
115 "line": 49,
116 "column": 3
117 }
118 }
119] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
new file mode 100644
index 000000000..c64f477be
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json
@@ -0,0 +1,223 @@
1[
2 {
3 "id": "settings.app.headline",
4 "defaultMessage": "!!!Settings",
5 "file": "src/components/settings/settings/EditSettingsForm.js",
6 "start": {
7 "line": 16,
8 "column": 12
9 },
10 "end": {
11 "line": 19,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.app.headlineGeneral",
17 "defaultMessage": "!!!General",
18 "file": "src/components/settings/settings/EditSettingsForm.js",
19 "start": {
20 "line": 20,
21 "column": 19
22 },
23 "end": {
24 "line": 23,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.app.headlineLanguage",
30 "defaultMessage": "!!!Language",
31 "file": "src/components/settings/settings/EditSettingsForm.js",
32 "start": {
33 "line": 24,
34 "column": 20
35 },
36 "end": {
37 "line": 27,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.app.headlineUpdates",
43 "defaultMessage": "!!!Updates",
44 "file": "src/components/settings/settings/EditSettingsForm.js",
45 "start": {
46 "line": 28,
47 "column": 19
48 },
49 "end": {
50 "line": 31,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.app.headlineAppearance",
56 "defaultMessage": "!!!Appearance",
57 "file": "src/components/settings/settings/EditSettingsForm.js",
58 "start": {
59 "line": 32,
60 "column": 22
61 },
62 "end": {
63 "line": 35,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.app.headlineAdvanced",
69 "defaultMessage": "!!!Advanced",
70 "file": "src/components/settings/settings/EditSettingsForm.js",
71 "start": {
72 "line": 36,
73 "column": 20
74 },
75 "end": {
76 "line": 39,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.app.translationHelp",
82 "defaultMessage": "!!!Help us to translate Franz into your language.",
83 "file": "src/components/settings/settings/EditSettingsForm.js",
84 "start": {
85 "line": 40,
86 "column": 19
87 },
88 "end": {
89 "line": 43,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.app.subheadlineCache",
95 "defaultMessage": "!!!Cache",
96 "file": "src/components/settings/settings/EditSettingsForm.js",
97 "start": {
98 "line": 44,
99 "column": 20
100 },
101 "end": {
102 "line": 47,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.app.cacheInfo",
108 "defaultMessage": "!!!Franz cache is currently using {size} of disk space.",
109 "file": "src/components/settings/settings/EditSettingsForm.js",
110 "start": {
111 "line": 48,
112 "column": 13
113 },
114 "end": {
115 "line": 51,
116 "column": 3
117 }
118 },
119 {
120 "id": "settings.app.buttonClearAllCache",
121 "defaultMessage": "!!!Clear cache",
122 "file": "src/components/settings/settings/EditSettingsForm.js",
123 "start": {
124 "line": 52,
125 "column": 23
126 },
127 "end": {
128 "line": 55,
129 "column": 3
130 }
131 },
132 {
133 "id": "settings.app.buttonSearchForUpdate",
134 "defaultMessage": "!!!Check for updates",
135 "file": "src/components/settings/settings/EditSettingsForm.js",
136 "start": {
137 "line": 56,
138 "column": 25
139 },
140 "end": {
141 "line": 59,
142 "column": 3
143 }
144 },
145 {
146 "id": "settings.app.buttonInstallUpdate",
147 "defaultMessage": "!!!Restart & install update",
148 "file": "src/components/settings/settings/EditSettingsForm.js",
149 "start": {
150 "line": 60,
151 "column": 23
152 },
153 "end": {
154 "line": 63,
155 "column": 3
156 }
157 },
158 {
159 "id": "settings.app.updateStatusSearching",
160 "defaultMessage": "!!!Is searching for update",
161 "file": "src/components/settings/settings/EditSettingsForm.js",
162 "start": {
163 "line": 64,
164 "column": 25
165 },
166 "end": {
167 "line": 67,
168 "column": 3
169 }
170 },
171 {
172 "id": "settings.app.updateStatusAvailable",
173 "defaultMessage": "!!!Update available, downloading...",
174 "file": "src/components/settings/settings/EditSettingsForm.js",
175 "start": {
176 "line": 68,
177 "column": 25
178 },
179 "end": {
180 "line": 71,
181 "column": 3
182 }
183 },
184 {
185 "id": "settings.app.updateStatusUpToDate",
186 "defaultMessage": "!!!You are using the latest version of Franz",
187 "file": "src/components/settings/settings/EditSettingsForm.js",
188 "start": {
189 "line": 72,
190 "column": 24
191 },
192 "end": {
193 "line": 75,
194 "column": 3
195 }
196 },
197 {
198 "id": "settings.app.currentVersion",
199 "defaultMessage": "!!!Current version:",
200 "file": "src/components/settings/settings/EditSettingsForm.js",
201 "start": {
202 "line": 76,
203 "column": 18
204 },
205 "end": {
206 "line": 79,
207 "column": 3
208 }
209 },
210 {
211 "id": "settings.app.restartRequired",
212 "defaultMessage": "!!!Changes require restart",
213 "file": "src/components/settings/settings/EditSettingsForm.js",
214 "start": {
215 "line": 80,
216 "column": 29
217 },
218 "end": {
219 "line": 83,
220 "column": 3
221 }
222 }
223] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/settings/user/EditUserForm.json b/src/i18n/messages/src/components/settings/user/EditUserForm.json
new file mode 100644
index 000000000..3a59f8681
--- /dev/null
+++ b/src/i18n/messages/src/components/settings/user/EditUserForm.json
@@ -0,0 +1,80 @@
1[
2 {
3 "id": "settings.account.headline",
4 "defaultMessage": "!!!Account",
5 "file": "src/components/settings/user/EditUserForm.js",
6 "start": {
7 "line": 15,
8 "column": 12
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.account.headlineProfile",
17 "defaultMessage": "!!!Update Profile",
18 "file": "src/components/settings/user/EditUserForm.js",
19 "start": {
20 "line": 19,
21 "column": 19
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.account.headlineAccount",
30 "defaultMessage": "!!!Account Information",
31 "file": "src/components/settings/user/EditUserForm.js",
32 "start": {
33 "line": 23,
34 "column": 19
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.account.headlinePassword",
43 "defaultMessage": "!!!Change Password",
44 "file": "src/components/settings/user/EditUserForm.js",
45 "start": {
46 "line": 27,
47 "column": 20
48 },
49 "end": {
50 "line": 30,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.account.successInfo",
56 "defaultMessage": "!!!Your changes have been saved",
57 "file": "src/components/settings/user/EditUserForm.js",
58 "start": {
59 "line": 31,
60 "column": 15
61 },
62 "end": {
63 "line": 34,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.account.buttonSave",
69 "defaultMessage": "!!!Update profile",
70 "file": "src/components/settings/user/EditUserForm.js",
71 "start": {
72 "line": 35,
73 "column": 14
74 },
75 "end": {
76 "line": 38,
77 "column": 3
78 }
79 }
80] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/subscription/SubscriptionForm.json b/src/i18n/messages/src/components/subscription/SubscriptionForm.json
new file mode 100644
index 000000000..cc7470358
--- /dev/null
+++ b/src/i18n/messages/src/components/subscription/SubscriptionForm.json
@@ -0,0 +1,171 @@
1[
2 {
3 "id": "subscription.submit.label",
4 "defaultMessage": "!!!Support the development of Franz",
5 "file": "src/components/subscription/SubscriptionForm.js",
6 "start": {
7 "line": 14,
8 "column": 21
9 },
10 "end": {
11 "line": 17,
12 "column": 3
13 }
14 },
15 {
16 "id": "subscription.paymentSessionError",
17 "defaultMessage": "!!!Could not initialize payment form",
18 "file": "src/components/subscription/SubscriptionForm.js",
19 "start": {
20 "line": 18,
21 "column": 23
22 },
23 "end": {
24 "line": 21,
25 "column": 3
26 }
27 },
28 {
29 "id": "subscription.type.free",
30 "defaultMessage": "!!!free",
31 "file": "src/components/subscription/SubscriptionForm.js",
32 "start": {
33 "line": 22,
34 "column": 12
35 },
36 "end": {
37 "line": 25,
38 "column": 3
39 }
40 },
41 {
42 "id": "subscription.type.month",
43 "defaultMessage": "!!!month",
44 "file": "src/components/subscription/SubscriptionForm.js",
45 "start": {
46 "line": 26,
47 "column": 15
48 },
49 "end": {
50 "line": 29,
51 "column": 3
52 }
53 },
54 {
55 "id": "subscription.type.year",
56 "defaultMessage": "!!!year",
57 "file": "src/components/subscription/SubscriptionForm.js",
58 "start": {
59 "line": 30,
60 "column": 14
61 },
62 "end": {
63 "line": 33,
64 "column": 3
65 }
66 },
67 {
68 "id": "subscription.includedFeatures",
69 "defaultMessage": "!!!The Franz Premium Supporter Account includes",
70 "file": "src/components/subscription/SubscriptionForm.js",
71 "start": {
72 "line": 34,
73 "column": 20
74 },
75 "end": {
76 "line": 37,
77 "column": 3
78 }
79 },
80 {
81 "id": "subscription.features.onpremise.mattermost",
82 "defaultMessage": "!!!Add on-premise/hosted services like Mattermost",
83 "file": "src/components/subscription/SubscriptionForm.js",
84 "start": {
85 "line": 38,
86 "column": 13
87 },
88 "end": {
89 "line": 41,
90 "column": 3
91 }
92 },
93 {
94 "id": "subscription.features.noInterruptions",
95 "defaultMessage": "!!!No app delays & nagging to upgrade license",
96 "file": "src/components/subscription/SubscriptionForm.js",
97 "start": {
98 "line": 42,
99 "column": 19
100 },
101 "end": {
102 "line": 45,
103 "column": 3
104 }
105 },
106 {
107 "id": "subscription.features.proxy",
108 "defaultMessage": "!!!Proxy support for services",
109 "file": "src/components/subscription/SubscriptionForm.js",
110 "start": {
111 "line": 46,
112 "column": 9
113 },
114 "end": {
115 "line": 49,
116 "column": 3
117 }
118 },
119 {
120 "id": "subscription.features.spellchecker",
121 "defaultMessage": "!!!Support for Spellchecker",
122 "file": "src/components/subscription/SubscriptionForm.js",
123 "start": {
124 "line": 50,
125 "column": 16
126 },
127 "end": {
128 "line": 53,
129 "column": 3
130 }
131 },
132 {
133 "id": "subscription.features.ads",
134 "defaultMessage": "!!!No ads, ever!",
135 "file": "src/components/subscription/SubscriptionForm.js",
136 "start": {
137 "line": 54,
138 "column": 7
139 },
140 "end": {
141 "line": 57,
142 "column": 3
143 }
144 },
145 {
146 "id": "subscription.features.comingSoon",
147 "defaultMessage": "!!!coming soon",
148 "file": "src/components/subscription/SubscriptionForm.js",
149 "start": {
150 "line": 58,
151 "column": 14
152 },
153 "end": {
154 "line": 61,
155 "column": 3
156 }
157 },
158 {
159 "id": "subscription.euTaxInfo",
160 "defaultMessage": "!!!EU residents: local sales tax may apply",
161 "file": "src/components/subscription/SubscriptionForm.js",
162 "start": {
163 "line": 62,
164 "column": 13
165 },
166 "end": {
167 "line": 65,
168 "column": 3
169 }
170 }
171] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/subscription/SubscriptionPopup.json b/src/i18n/messages/src/components/subscription/SubscriptionPopup.json
new file mode 100644
index 000000000..c06da7531
--- /dev/null
+++ b/src/i18n/messages/src/components/subscription/SubscriptionPopup.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "subscriptionPopup.buttonCancel",
4 "defaultMessage": "!!!Cancel",
5 "file": "src/components/subscription/SubscriptionPopup.js",
6 "start": {
7 "line": 11,
8 "column": 16
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "subscriptionPopup.buttonDone",
17 "defaultMessage": "!!!Done",
18 "file": "src/components/subscription/SubscriptionPopup.js",
19 "start": {
20 "line": 15,
21 "column": 14
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json
new file mode 100644
index 000000000..582d546fa
--- /dev/null
+++ b/src/i18n/messages/src/components/ui/PremiumFeatureContainer/index.json
@@ -0,0 +1,15 @@
1[
2 {
3 "id": "premiumFeature.button.upgradeAccount",
4 "defaultMessage": "!!!Upgrade account",
5 "file": "src/components/ui/PremiumFeatureContainer/index.js",
6 "start": {
7 "line": 14,
8 "column": 10
9 },
10 "end": {
11 "line": 17,
12 "column": 3
13 }
14 }
15] \ No newline at end of file
diff --git a/src/i18n/messages/src/components/util/ErrorBoundary/index.json b/src/i18n/messages/src/components/util/ErrorBoundary/index.json
new file mode 100644
index 000000000..43c323031
--- /dev/null
+++ b/src/i18n/messages/src/components/util/ErrorBoundary/index.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "app.errorHandler.headline",
4 "defaultMessage": "!!!Something went wrong.",
5 "file": "src/components/util/ErrorBoundary/index.js",
6 "start": {
7 "line": 11,
8 "column": 12
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "app.errorHandler.action",
17 "defaultMessage": "!!!Reload",
18 "file": "src/components/util/ErrorBoundary/index.js",
19 "start": {
20 "line": 15,
21 "column": 10
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 }
28] \ 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
new file mode 100644
index 000000000..42ca42125
--- /dev/null
+++ b/src/i18n/messages/src/containers/settings/EditServiceScreen.json
@@ -0,0 +1,197 @@
1[
2 {
3 "id": "settings.service.form.name",
4 "defaultMessage": "!!!Name",
5 "file": "src/containers/settings/EditServiceScreen.js",
6 "start": {
7 "line": 28,
8 "column": 8
9 },
10 "end": {
11 "line": 31,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.service.form.enableService",
17 "defaultMessage": "!!!Enable service",
18 "file": "src/containers/settings/EditServiceScreen.js",
19 "start": {
20 "line": 32,
21 "column": 17
22 },
23 "end": {
24 "line": 35,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.service.form.enableNotification",
30 "defaultMessage": "!!!Enable Notifications",
31 "file": "src/containers/settings/EditServiceScreen.js",
32 "start": {
33 "line": 36,
34 "column": 22
35 },
36 "end": {
37 "line": 39,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.service.form.enableBadge",
43 "defaultMessage": "!!!Show unread message badges",
44 "file": "src/containers/settings/EditServiceScreen.js",
45 "start": {
46 "line": 40,
47 "column": 15
48 },
49 "end": {
50 "line": 43,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.service.form.enableAudio",
56 "defaultMessage": "!!!Enable audio",
57 "file": "src/containers/settings/EditServiceScreen.js",
58 "start": {
59 "line": 44,
60 "column": 15
61 },
62 "end": {
63 "line": 47,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.service.form.team",
69 "defaultMessage": "!!!Team",
70 "file": "src/containers/settings/EditServiceScreen.js",
71 "start": {
72 "line": 48,
73 "column": 8
74 },
75 "end": {
76 "line": 51,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.service.form.customUrl",
82 "defaultMessage": "!!!Custom server",
83 "file": "src/containers/settings/EditServiceScreen.js",
84 "start": {
85 "line": 52,
86 "column": 13
87 },
88 "end": {
89 "line": 55,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.service.form.indirectMessages",
95 "defaultMessage": "!!!Show message badge for all new messages",
96 "file": "src/containers/settings/EditServiceScreen.js",
97 "start": {
98 "line": 56,
99 "column": 20
100 },
101 "end": {
102 "line": 59,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.service.form.icon",
108 "defaultMessage": "!!!Custom icon",
109 "file": "src/containers/settings/EditServiceScreen.js",
110 "start": {
111 "line": 60,
112 "column": 8
113 },
114 "end": {
115 "line": 63,
116 "column": 3
117 }
118 },
119 {
120 "id": "settings.service.form.enableDarkMode",
121 "defaultMessage": "!!!Enable Dark Mode",
122 "file": "src/containers/settings/EditServiceScreen.js",
123 "start": {
124 "line": 64,
125 "column": 18
126 },
127 "end": {
128 "line": 67,
129 "column": 3
130 }
131 },
132 {
133 "id": "settings.service.form.proxy.isEnabled",
134 "defaultMessage": "!!!Use Proxy",
135 "file": "src/containers/settings/EditServiceScreen.js",
136 "start": {
137 "line": 68,
138 "column": 15
139 },
140 "end": {
141 "line": 71,
142 "column": 3
143 }
144 },
145 {
146 "id": "settings.service.form.proxy.host",
147 "defaultMessage": "!!!Proxy Host/IP",
148 "file": "src/containers/settings/EditServiceScreen.js",
149 "start": {
150 "line": 72,
151 "column": 13
152 },
153 "end": {
154 "line": 75,
155 "column": 3
156 }
157 },
158 {
159 "id": "settings.service.form.proxy.port",
160 "defaultMessage": "!!!Port",
161 "file": "src/containers/settings/EditServiceScreen.js",
162 "start": {
163 "line": 76,
164 "column": 13
165 },
166 "end": {
167 "line": 79,
168 "column": 3
169 }
170 },
171 {
172 "id": "settings.service.form.proxy.user",
173 "defaultMessage": "!!!User",
174 "file": "src/containers/settings/EditServiceScreen.js",
175 "start": {
176 "line": 80,
177 "column": 13
178 },
179 "end": {
180 "line": 83,
181 "column": 3
182 }
183 },
184 {
185 "id": "settings.service.form.proxy.password",
186 "defaultMessage": "!!!Password",
187 "file": "src/containers/settings/EditServiceScreen.js",
188 "start": {
189 "line": 84,
190 "column": 17
191 },
192 "end": {
193 "line": 87,
194 "column": 3
195 }
196 }
197] \ 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
new file mode 100644
index 000000000..d3b413540
--- /dev/null
+++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json
@@ -0,0 +1,158 @@
1[
2 {
3 "id": "settings.app.form.autoLaunchOnStart",
4 "defaultMessage": "!!!Launch Franz on start",
5 "file": "src/containers/settings/EditSettingsScreen.js",
6 "start": {
7 "line": 22,
8 "column": 21
9 },
10 "end": {
11 "line": 25,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.app.form.autoLaunchInBackground",
17 "defaultMessage": "!!!Open in background",
18 "file": "src/containers/settings/EditSettingsScreen.js",
19 "start": {
20 "line": 26,
21 "column": 26
22 },
23 "end": {
24 "line": 29,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.app.form.runInBackground",
30 "defaultMessage": "!!!Keep Franz in background when closing the window",
31 "file": "src/containers/settings/EditSettingsScreen.js",
32 "start": {
33 "line": 30,
34 "column": 19
35 },
36 "end": {
37 "line": 33,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.app.form.enableSystemTray",
43 "defaultMessage": "!!!Show Franz in system tray",
44 "file": "src/containers/settings/EditSettingsScreen.js",
45 "start": {
46 "line": 34,
47 "column": 20
48 },
49 "end": {
50 "line": 37,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.app.form.minimizeToSystemTray",
56 "defaultMessage": "!!!Minimize Franz to system tray",
57 "file": "src/containers/settings/EditSettingsScreen.js",
58 "start": {
59 "line": 38,
60 "column": 24
61 },
62 "end": {
63 "line": 41,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.app.form.language",
69 "defaultMessage": "!!!Language",
70 "file": "src/containers/settings/EditSettingsScreen.js",
71 "start": {
72 "line": 42,
73 "column": 12
74 },
75 "end": {
76 "line": 45,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.app.form.darkMode",
82 "defaultMessage": "!!!Dark Mode",
83 "file": "src/containers/settings/EditSettingsScreen.js",
84 "start": {
85 "line": 46,
86 "column": 12
87 },
88 "end": {
89 "line": 49,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.app.form.showDisabledServices",
95 "defaultMessage": "!!!Display disabled services tabs",
96 "file": "src/containers/settings/EditSettingsScreen.js",
97 "start": {
98 "line": 50,
99 "column": 24
100 },
101 "end": {
102 "line": 53,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.app.form.showMessagesBadgesWhenMuted",
108 "defaultMessage": "!!!Show unread message badge when notifications are disabled",
109 "file": "src/containers/settings/EditSettingsScreen.js",
110 "start": {
111 "line": 54,
112 "column": 29
113 },
114 "end": {
115 "line": 57,
116 "column": 3
117 }
118 },
119 {
120 "id": "settings.app.form.enableSpellchecking",
121 "defaultMessage": "!!!Enable spell checking",
122 "file": "src/containers/settings/EditSettingsScreen.js",
123 "start": {
124 "line": 58,
125 "column": 23
126 },
127 "end": {
128 "line": 61,
129 "column": 3
130 }
131 },
132 {
133 "id": "settings.app.form.enableGPUAcceleration",
134 "defaultMessage": "!!!Enable GPU Acceleration",
135 "file": "src/containers/settings/EditSettingsScreen.js",
136 "start": {
137 "line": 62,
138 "column": 25
139 },
140 "end": {
141 "line": 65,
142 "column": 3
143 }
144 },
145 {
146 "id": "settings.app.form.beta",
147 "defaultMessage": "!!!Include beta versions",
148 "file": "src/containers/settings/EditSettingsScreen.js",
149 "start": {
150 "line": 66,
151 "column": 8
152 },
153 "end": {
154 "line": 69,
155 "column": 3
156 }
157 }
158] \ No newline at end of file
diff --git a/src/i18n/messages/src/containers/settings/EditUserScreen.json b/src/i18n/messages/src/containers/settings/EditUserScreen.json
new file mode 100644
index 000000000..70ff29945
--- /dev/null
+++ b/src/i18n/messages/src/containers/settings/EditUserScreen.json
@@ -0,0 +1,119 @@
1[
2 {
3 "id": "settings.user.form.firstname",
4 "defaultMessage": "!!!Firstname",
5 "file": "src/containers/settings/EditUserScreen.js",
6 "start": {
7 "line": 14,
8 "column": 13
9 },
10 "end": {
11 "line": 17,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.user.form.lastname",
17 "defaultMessage": "!!!Lastname",
18 "file": "src/containers/settings/EditUserScreen.js",
19 "start": {
20 "line": 18,
21 "column": 12
22 },
23 "end": {
24 "line": 21,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.user.form.email",
30 "defaultMessage": "!!!Email",
31 "file": "src/containers/settings/EditUserScreen.js",
32 "start": {
33 "line": 22,
34 "column": 9
35 },
36 "end": {
37 "line": 25,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.user.form.accountType.label",
43 "defaultMessage": "!!!Account type",
44 "file": "src/containers/settings/EditUserScreen.js",
45 "start": {
46 "line": 26,
47 "column": 20
48 },
49 "end": {
50 "line": 29,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.user.form.accountType.individual",
56 "defaultMessage": "!!!Individual",
57 "file": "src/containers/settings/EditUserScreen.js",
58 "start": {
59 "line": 30,
60 "column": 25
61 },
62 "end": {
63 "line": 33,
64 "column": 3
65 }
66 },
67 {
68 "id": "settings.user.form.accountType.non-profit",
69 "defaultMessage": "!!!Non-Profit",
70 "file": "src/containers/settings/EditUserScreen.js",
71 "start": {
72 "line": 34,
73 "column": 24
74 },
75 "end": {
76 "line": 37,
77 "column": 3
78 }
79 },
80 {
81 "id": "settings.user.form.accountType.company",
82 "defaultMessage": "!!!Company",
83 "file": "src/containers/settings/EditUserScreen.js",
84 "start": {
85 "line": 38,
86 "column": 22
87 },
88 "end": {
89 "line": 41,
90 "column": 3
91 }
92 },
93 {
94 "id": "settings.user.form.currentPassword",
95 "defaultMessage": "!!!Current password",
96 "file": "src/containers/settings/EditUserScreen.js",
97 "start": {
98 "line": 42,
99 "column": 19
100 },
101 "end": {
102 "line": 45,
103 "column": 3
104 }
105 },
106 {
107 "id": "settings.user.form.newPassword",
108 "defaultMessage": "!!!New password",
109 "file": "src/containers/settings/EditUserScreen.js",
110 "start": {
111 "line": 46,
112 "column": 15
113 },
114 "end": {
115 "line": 49,
116 "column": 3
117 }
118 }
119] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/delayApp/Component.json b/src/i18n/messages/src/features/delayApp/Component.json
new file mode 100644
index 000000000..bacd9444a
--- /dev/null
+++ b/src/i18n/messages/src/features/delayApp/Component.json
@@ -0,0 +1,41 @@
1[
2 {
3 "id": "feature.delayApp.headline",
4 "defaultMessage": "!!!Please purchase license to skip waiting",
5 "file": "src/features/delayApp/Component.js",
6 "start": {
7 "line": 15,
8 "column": 12
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "feature.delayApp.action",
17 "defaultMessage": "!!!Get a Franz Supporter License",
18 "file": "src/features/delayApp/Component.js",
19 "start": {
20 "line": 19,
21 "column": 10
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "feature.delayApp.text",
30 "defaultMessage": "!!!Franz will continue in {seconds} seconds.",
31 "file": "src/features/delayApp/Component.js",
32 "start": {
33 "line": 23,
34 "column": 8
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 }
41] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/shareFranz/Component.json b/src/i18n/messages/src/features/shareFranz/Component.json
new file mode 100644
index 000000000..0fec9db64
--- /dev/null
+++ b/src/i18n/messages/src/features/shareFranz/Component.json
@@ -0,0 +1,93 @@
1[
2 {
3 "id": "feature.shareFranz.headline",
4 "defaultMessage": "!!!Franz is better together!",
5 "file": "src/features/shareFranz/Component.js",
6 "start": {
7 "line": 15,
8 "column": 12
9 },
10 "end": {
11 "line": 18,
12 "column": 3
13 }
14 },
15 {
16 "id": "feature.shareFranz.text",
17 "defaultMessage": "!!!Tell your friends and colleagues how awesome Franz is and help us to spread the word.",
18 "file": "src/features/shareFranz/Component.js",
19 "start": {
20 "line": 19,
21 "column": 8
22 },
23 "end": {
24 "line": 22,
25 "column": 3
26 }
27 },
28 {
29 "id": "feature.shareFranz.action.email",
30 "defaultMessage": "!!!Share as email",
31 "file": "src/features/shareFranz/Component.js",
32 "start": {
33 "line": 23,
34 "column": 16
35 },
36 "end": {
37 "line": 26,
38 "column": 3
39 }
40 },
41 {
42 "id": "feature.shareFranz.action.facebook",
43 "defaultMessage": "!!!Share on Facebook",
44 "file": "src/features/shareFranz/Component.js",
45 "start": {
46 "line": 27,
47 "column": 19
48 },
49 "end": {
50 "line": 30,
51 "column": 3
52 }
53 },
54 {
55 "id": "feature.shareFranz.action.twitter",
56 "defaultMessage": "!!!Share on Twitter",
57 "file": "src/features/shareFranz/Component.js",
58 "start": {
59 "line": 31,
60 "column": 18
61 },
62 "end": {
63 "line": 34,
64 "column": 3
65 }
66 },
67 {
68 "id": "feature.shareFranz.shareText.email",
69 "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com",
70 "file": "src/features/shareFranz/Component.js",
71 "start": {
72 "line": 35,
73 "column": 18
74 },
75 "end": {
76 "line": 38,
77 "column": 3
78 }
79 },
80 {
81 "id": "feature.shareFranz.shareText.twitter",
82 "defaultMessage": "!!! I've added {count} services to Franz! Get the free app for WhatsApp, Messenger, Slack, Skype and co at www.meetfranz.com /cc @MeetFranz",
83 "file": "src/features/shareFranz/Component.js",
84 "start": {
85 "line": 39,
86 "column": 20
87 },
88 "end": {
89 "line": 42,
90 "column": 3
91 }
92 }
93] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
new file mode 100644
index 000000000..1d5063a97
--- /dev/null
+++ b/src/i18n/messages/src/features/workspaces/components/CreateWorkspaceForm.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "settings.workspace.add.form.submitButton",
4 "defaultMessage": "!!!Save workspace",
5 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
6 "start": {
7 "line": 11,
8 "column": 16
9 },
10 "end": {
11 "line": 14,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.workspace.add.form.name",
17 "defaultMessage": "!!!Name",
18 "file": "src/features/workspaces/components/CreateWorkspaceForm.js",
19 "start": {
20 "line": 15,
21 "column": 8
22 },
23 "end": {
24 "line": 18,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
new file mode 100644
index 000000000..467f49cda
--- /dev/null
+++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "settings.workspace.form.buttonDelete",
4 "defaultMessage": "!!!Delete workspace",
5 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
6 "start": {
7 "line": 16,
8 "column": 16
9 },
10 "end": {
11 "line": 19,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.workspace.form.buttonSave",
17 "defaultMessage": "!!!Save workspace",
18 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
19 "start": {
20 "line": 20,
21 "column": 14
22 },
23 "end": {
24 "line": 23,
25 "column": 3
26 }
27 },
28 {
29 "id": "settings.workspace.form.name",
30 "defaultMessage": "!!!Name",
31 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
32 "start": {
33 "line": 24,
34 "column": 8
35 },
36 "end": {
37 "line": 27,
38 "column": 3
39 }
40 },
41 {
42 "id": "settings.workspace.form.yourWorkspaces",
43 "defaultMessage": "!!!Your workspaces",
44 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
45 "start": {
46 "line": 28,
47 "column": 18
48 },
49 "end": {
50 "line": 31,
51 "column": 3
52 }
53 },
54 {
55 "id": "settings.workspace.form.servicesInWorkspaceHeadline",
56 "defaultMessage": "!!!Services in this Workspace",
57 "file": "src/features/workspaces/components/EditWorkspaceForm.js",
58 "start": {
59 "line": 32,
60 "column": 31
61 },
62 "end": {
63 "line": 35,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json
new file mode 100644
index 000000000..0e053a124
--- /dev/null
+++ b/src/i18n/messages/src/features/workspaces/components/WorkspacesDashboard.json
@@ -0,0 +1,28 @@
1[
2 {
3 "id": "settings.workspaces.headline",
4 "defaultMessage": "!!!Your workspaces",
5 "file": "src/features/workspaces/components/WorkspacesDashboard.js",
6 "start": {
7 "line": 12,
8 "column": 12
9 },
10 "end": {
11 "line": 15,
12 "column": 3
13 }
14 },
15 {
16 "id": "settings.workspaces.noWorkspacesAdded",
17 "defaultMessage": "!!!You haven't added any workspaces yet.",
18 "file": "src/features/workspaces/components/WorkspacesDashboard.js",
19 "start": {
20 "line": 16,
21 "column": 19
22 },
23 "end": {
24 "line": 19,
25 "column": 3
26 }
27 }
28] \ No newline at end of file
diff --git a/src/i18n/messages/src/helpers/validation-helpers.json b/src/i18n/messages/src/helpers/validation-helpers.json
new file mode 100644
index 000000000..86bfe1500
--- /dev/null
+++ b/src/i18n/messages/src/helpers/validation-helpers.json
@@ -0,0 +1,67 @@
1[
2 {
3 "id": "validation.required",
4 "defaultMessage": "!!!Field is required",
5 "file": "src/helpers/validation-helpers.js",
6 "start": {
7 "line": 4,
8 "column": 12
9 },
10 "end": {
11 "line": 7,
12 "column": 3
13 }
14 },
15 {
16 "id": "validation.email",
17 "defaultMessage": "!!!Email not valid",
18 "file": "src/helpers/validation-helpers.js",
19 "start": {
20 "line": 8,
21 "column": 9
22 },
23 "end": {
24 "line": 11,
25 "column": 3
26 }
27 },
28 {
29 "id": "validation.url",
30 "defaultMessage": "!!!Not a valid URL",
31 "file": "src/helpers/validation-helpers.js",
32 "start": {
33 "line": 12,
34 "column": 7
35 },
36 "end": {
37 "line": 15,
38 "column": 3
39 }
40 },
41 {
42 "id": "validation.minLength",
43 "defaultMessage": "!!!Too few characters",
44 "file": "src/helpers/validation-helpers.js",
45 "start": {
46 "line": 16,
47 "column": 13
48 },
49 "end": {
50 "line": 19,
51 "column": 3
52 }
53 },
54 {
55 "id": "validation.oneRequired",
56 "defaultMessage": "!!!At least one is required",
57 "file": "src/helpers/validation-helpers.js",
58 "start": {
59 "line": 20,
60 "column": 15
61 },
62 "end": {
63 "line": 23,
64 "column": 3
65 }
66 }
67] \ No newline at end of file
diff --git a/src/i18n/messages/src/i18n/globalMessages.json b/src/i18n/messages/src/i18n/globalMessages.json
new file mode 100644
index 000000000..28001614f
--- /dev/null
+++ b/src/i18n/messages/src/i18n/globalMessages.json
@@ -0,0 +1,80 @@
1[
2 {
3 "id": "global.api.unhealthy",
4 "defaultMessage": "!!!Can't connect to Franz Online Services",
5 "file": "src/i18n/globalMessages.js",
6 "start": {
7 "line": 4,
8 "column": 16
9 },
10 "end": {
11 "line": 7,
12 "column": 3
13 }
14 },
15 {
16 "id": "global.notConnectedToTheInternet",
17 "defaultMessage": "!!!You are not connected to the internet.",
18 "file": "src/i18n/globalMessages.js",
19 "start": {
20 "line": 8,
21 "column": 29
22 },
23 "end": {
24 "line": 11,
25 "column": 3
26 }
27 },
28 {
29 "id": "global.spellchecking.language",
30 "defaultMessage": "!!!Spell checking language",
31 "file": "src/i18n/globalMessages.js",
32 "start": {
33 "line": 12,
34 "column": 24
35 },
36 "end": {
37 "line": 15,
38 "column": 3
39 }
40 },
41 {
42 "id": "global.spellchecker.useDefault",
43 "defaultMessage": "!!!Use System Default ({default})",
44 "file": "src/i18n/globalMessages.js",
45 "start": {
46 "line": 16,
47 "column": 29
48 },
49 "end": {
50 "line": 19,
51 "column": 3
52 }
53 },
54 {
55 "id": "global.spellchecking.autodetect",
56 "defaultMessage": "!!!Detect language automatically",
57 "file": "src/i18n/globalMessages.js",
58 "start": {
59 "line": 20,
60 "column": 34
61 },
62 "end": {
63 "line": 23,
64 "column": 3
65 }
66 },
67 {
68 "id": "global.spellchecking.autodetect.short",
69 "defaultMessage": "!!!Automatic",
70 "file": "src/i18n/globalMessages.js",
71 "start": {
72 "line": 24,
73 "column": 39
74 },
75 "end": {
76 "line": 27,
77 "column": 3
78 }
79 }
80] \ No newline at end of file
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json
new file mode 100644
index 000000000..53fa038c6
--- /dev/null
+++ b/src/i18n/messages/src/lib/Menu.json
@@ -0,0 +1,652 @@
1[
2 {
3 "id": "menu.edit",
4 "defaultMessage": "!!!Edit",
5 "file": "src/lib/Menu.js",
6 "start": {
7 "line": 12,
8 "column": 8
9 },
10 "end": {
11 "line": 15,
12 "column": 3
13 }
14 },
15 {
16 "id": "menu.edit.undo",
17 "defaultMessage": "!!!Undo",
18 "file": "src/lib/Menu.js",
19 "start": {
20 "line": 16,
21 "column": 8
22 },
23 "end": {
24 "line": 19,
25 "column": 3
26 }
27 },
28 {
29 "id": "menu.edit.redo",
30 "defaultMessage": "!!!Redo",
31 "file": "src/lib/Menu.js",
32 "start": {
33 "line": 20,
34 "column": 8
35 },
36 "end": {
37 "line": 23,
38 "column": 3
39 }
40 },
41 {
42 "id": "menu.edit.cut",
43 "defaultMessage": "!!!Cut",
44 "file": "src/lib/Menu.js",
45 "start": {
46 "line": 24,
47 "column": 7
48 },
49 "end": {
50 "line": 27,
51 "column": 3
52 }
53 },
54 {
55 "id": "menu.edit.copy",
56 "defaultMessage": "!!!Copy",
57 "file": "src/lib/Menu.js",
58 "start": {
59 "line": 28,
60 "column": 8
61 },
62 "end": {
63 "line": 31,
64 "column": 3
65 }
66 },
67 {
68 "id": "menu.edit.paste",
69 "defaultMessage": "!!!Paste",
70 "file": "src/lib/Menu.js",
71 "start": {
72 "line": 32,
73 "column": 9
74 },
75 "end": {
76 "line": 35,
77 "column": 3
78 }
79 },
80 {
81 "id": "menu.edit.pasteAndMatchStyle",
82 "defaultMessage": "!!!Paste And Match Style",
83 "file": "src/lib/Menu.js",
84 "start": {
85 "line": 36,
86 "column": 22
87 },
88 "end": {
89 "line": 39,
90 "column": 3
91 }
92 },
93 {
94 "id": "menu.edit.delete",
95 "defaultMessage": "!!!Delete",
96 "file": "src/lib/Menu.js",
97 "start": {
98 "line": 40,
99 "column": 10
100 },
101 "end": {
102 "line": 43,
103 "column": 3
104 }
105 },
106 {
107 "id": "menu.edit.selectAll",
108 "defaultMessage": "!!!Select All",
109 "file": "src/lib/Menu.js",
110 "start": {
111 "line": 44,
112 "column": 13
113 },
114 "end": {
115 "line": 47,
116 "column": 3
117 }
118 },
119 {
120 "id": "menu.edit.speech",
121 "defaultMessage": "!!!Speech",
122 "file": "src/lib/Menu.js",
123 "start": {
124 "line": 48,
125 "column": 10
126 },
127 "end": {
128 "line": 51,
129 "column": 3
130 }
131 },
132 {
133 "id": "menu.edit.startSpeaking",
134 "defaultMessage": "!!!Start Speaking",
135 "file": "src/lib/Menu.js",
136 "start": {
137 "line": 52,
138 "column": 17
139 },
140 "end": {
141 "line": 55,
142 "column": 3
143 }
144 },
145 {
146 "id": "menu.edit.stopSpeaking",
147 "defaultMessage": "!!!Stop Speaking",
148 "file": "src/lib/Menu.js",
149 "start": {
150 "line": 56,
151 "column": 16
152 },
153 "end": {
154 "line": 59,
155 "column": 3
156 }
157 },
158 {
159 "id": "menu.edit.startDictation",
160 "defaultMessage": "!!!Start Dictation",
161 "file": "src/lib/Menu.js",
162 "start": {
163 "line": 60,
164 "column": 18
165 },
166 "end": {
167 "line": 63,
168 "column": 3
169 }
170 },
171 {
172 "id": "menu.edit.emojiSymbols",
173 "defaultMessage": "!!!Emoji & Symbols",
174 "file": "src/lib/Menu.js",
175 "start": {
176 "line": 64,
177 "column": 16
178 },
179 "end": {
180 "line": 67,
181 "column": 3
182 }
183 },
184 {
185 "id": "menu.view.resetZoom",
186 "defaultMessage": "!!!Actual Size",
187 "file": "src/lib/Menu.js",
188 "start": {
189 "line": 68,
190 "column": 13
191 },
192 "end": {
193 "line": 71,
194 "column": 3
195 }
196 },
197 {
198 "id": "menu.view.zoomIn",
199 "defaultMessage": "!!!Zoom In",
200 "file": "src/lib/Menu.js",
201 "start": {
202 "line": 72,
203 "column": 10
204 },
205 "end": {
206 "line": 75,
207 "column": 3
208 }
209 },
210 {
211 "id": "menu.view.zoomOut",
212 "defaultMessage": "!!!Zoom Out",
213 "file": "src/lib/Menu.js",
214 "start": {
215 "line": 76,
216 "column": 11
217 },
218 "end": {
219 "line": 79,
220 "column": 3
221 }
222 },
223 {
224 "id": "menu.view.enterFullScreen",
225 "defaultMessage": "!!!Enter Full Screen",
226 "file": "src/lib/Menu.js",
227 "start": {
228 "line": 80,
229 "column": 19
230 },
231 "end": {
232 "line": 83,
233 "column": 3
234 }
235 },
236 {
237 "id": "menu.view.exitFullScreen",
238 "defaultMessage": "!!!Exit Full Screen",
239 "file": "src/lib/Menu.js",
240 "start": {
241 "line": 84,
242 "column": 18
243 },
244 "end": {
245 "line": 87,
246 "column": 3
247 }
248 },
249 {
250 "id": "menu.view.toggleFullScreen",
251 "defaultMessage": "!!!Toggle Full Screen",
252 "file": "src/lib/Menu.js",
253 "start": {
254 "line": 88,
255 "column": 20
256 },
257 "end": {
258 "line": 91,
259 "column": 3
260 }
261 },
262 {
263 "id": "menu.view.toggleDevTools",
264 "defaultMessage": "!!!Toggle Developer Tools",
265 "file": "src/lib/Menu.js",
266 "start": {
267 "line": 92,
268 "column": 18
269 },
270 "end": {
271 "line": 95,
272 "column": 3
273 }
274 },
275 {
276 "id": "menu.view.toggleServiceDevTools",
277 "defaultMessage": "!!!Toggle Service Developer Tools",
278 "file": "src/lib/Menu.js",
279 "start": {
280 "line": 96,
281 "column": 25
282 },
283 "end": {
284 "line": 99,
285 "column": 3
286 }
287 },
288 {
289 "id": "menu.view.reloadService",
290 "defaultMessage": "!!!Reload Service",
291 "file": "src/lib/Menu.js",
292 "start": {
293 "line": 100,
294 "column": 17
295 },
296 "end": {
297 "line": 103,
298 "column": 3
299 }
300 },
301 {
302 "id": "menu.view.reloadFranz",
303 "defaultMessage": "!!!Reload Franz",
304 "file": "src/lib/Menu.js",
305 "start": {
306 "line": 104,
307 "column": 15
308 },
309 "end": {
310 "line": 107,
311 "column": 3
312 }
313 },
314 {
315 "id": "menu.window.minimize",
316 "defaultMessage": "!!!Minimize",
317 "file": "src/lib/Menu.js",
318 "start": {
319 "line": 108,
320 "column": 12
321 },
322 "end": {
323 "line": 111,
324 "column": 3
325 }
326 },
327 {
328 "id": "menu.window.close",
329 "defaultMessage": "!!!Close",
330 "file": "src/lib/Menu.js",
331 "start": {
332 "line": 112,
333 "column": 9
334 },
335 "end": {
336 "line": 115,
337 "column": 3
338 }
339 },
340 {
341 "id": "menu.help.learnMore",
342 "defaultMessage": "!!!Learn More",
343 "file": "src/lib/Menu.js",
344 "start": {
345 "line": 116,
346 "column": 13
347 },
348 "end": {
349 "line": 119,
350 "column": 3
351 }
352 },
353 {
354 "id": "menu.help.changelog",
355 "defaultMessage": "!!!Changelog",
356 "file": "src/lib/Menu.js",
357 "start": {
358 "line": 120,
359 "column": 13
360 },
361 "end": {
362 "line": 123,
363 "column": 3
364 }
365 },
366 {
367 "id": "menu.help.support",
368 "defaultMessage": "!!!Support",
369 "file": "src/lib/Menu.js",
370 "start": {
371 "line": 124,
372 "column": 11
373 },
374 "end": {
375 "line": 127,
376 "column": 3
377 }
378 },
379 {
380 "id": "menu.help.tos",
381 "defaultMessage": "!!!Terms of Service",
382 "file": "src/lib/Menu.js",
383 "start": {
384 "line": 128,
385 "column": 7
386 },
387 "end": {
388 "line": 131,
389 "column": 3
390 }
391 },
392 {
393 "id": "menu.help.privacy",
394 "defaultMessage": "!!!Privacy Statement",
395 "file": "src/lib/Menu.js",
396 "start": {
397 "line": 132,
398 "column": 11
399 },
400 "end": {
401 "line": 135,
402 "column": 3
403 }
404 },
405 {
406 "id": "menu.file",
407 "defaultMessage": "!!!File",
408 "file": "src/lib/Menu.js",
409 "start": {
410 "line": 136,
411 "column": 8
412 },
413 "end": {
414 "line": 139,
415 "column": 3
416 }
417 },
418 {
419 "id": "menu.view",
420 "defaultMessage": "!!!View",
421 "file": "src/lib/Menu.js",
422 "start": {
423 "line": 140,
424 "column": 8
425 },
426 "end": {
427 "line": 143,
428 "column": 3
429 }
430 },
431 {
432 "id": "menu.services",
433 "defaultMessage": "!!!Services",
434 "file": "src/lib/Menu.js",
435 "start": {
436 "line": 144,
437 "column": 12
438 },
439 "end": {
440 "line": 147,
441 "column": 3
442 }
443 },
444 {
445 "id": "menu.window",
446 "defaultMessage": "!!!Window",
447 "file": "src/lib/Menu.js",
448 "start": {
449 "line": 148,
450 "column": 10
451 },
452 "end": {
453 "line": 151,
454 "column": 3
455 }
456 },
457 {
458 "id": "menu.help",
459 "defaultMessage": "!!!Help",
460 "file": "src/lib/Menu.js",
461 "start": {
462 "line": 152,
463 "column": 8
464 },
465 "end": {
466 "line": 155,
467 "column": 3
468 }
469 },
470 {
471 "id": "menu.app.about",
472 "defaultMessage": "!!!About Franz",
473 "file": "src/lib/Menu.js",
474 "start": {
475 "line": 156,
476 "column": 9
477 },
478 "end": {
479 "line": 159,
480 "column": 3
481 }
482 },
483 {
484 "id": "menu.app.settings",
485 "defaultMessage": "!!!Settings",
486 "file": "src/lib/Menu.js",
487 "start": {
488 "line": 160,
489 "column": 12
490 },
491 "end": {
492 "line": 163,
493 "column": 3
494 }
495 },
496 {
497 "id": "menu.app.hide",
498 "defaultMessage": "!!!Hide",
499 "file": "src/lib/Menu.js",
500 "start": {
501 "line": 164,
502 "column": 8
503 },
504 "end": {
505 "line": 167,
506 "column": 3
507 }
508 },
509 {
510 "id": "menu.app.hideOthers",
511 "defaultMessage": "!!!Hide Others",
512 "file": "src/lib/Menu.js",
513 "start": {
514 "line": 168,
515 "column": 14
516 },
517 "end": {
518 "line": 171,
519 "column": 3
520 }
521 },
522 {
523 "id": "menu.app.unhide",
524 "defaultMessage": "!!!Unhide",
525 "file": "src/lib/Menu.js",
526 "start": {
527 "line": 172,
528 "column": 10
529 },
530 "end": {
531 "line": 175,
532 "column": 3
533 }
534 },
535 {
536 "id": "menu.app.quit",
537 "defaultMessage": "!!!Quit",
538 "file": "src/lib/Menu.js",
539 "start": {
540 "line": 176,
541 "column": 8
542 },
543 "end": {
544 "line": 179,
545 "column": 3
546 }
547 },
548 {
549 "id": "menu.services.addNewService",
550 "defaultMessage": "!!!Add New Service...",
551 "file": "src/lib/Menu.js",
552 "start": {
553 "line": 180,
554 "column": 17
555 },
556 "end": {
557 "line": 183,
558 "column": 3
559 }
560 },
561 {
562 "id": "menu.workspaces.addNewWorkspace",
563 "defaultMessage": "!!!Add New Workspace...",
564 "file": "src/lib/Menu.js",
565 "start": {
566 "line": 184,
567 "column": 19
568 },
569 "end": {
570 "line": 187,
571 "column": 3
572 }
573 },
574 {
575 "id": "menu.services.setNextServiceActive",
576 "defaultMessage": "!!!Activate next service...",
577 "file": "src/lib/Menu.js",
578 "start": {
579 "line": 188,
580 "column": 23
581 },
582 "end": {
583 "line": 191,
584 "column": 3
585 }
586 },
587 {
588 "id": "menu.services.activatePreviousService",
589 "defaultMessage": "!!!Activate previous service...",
590 "file": "src/lib/Menu.js",
591 "start": {
592 "line": 192,
593 "column": 27
594 },
595 "end": {
596 "line": 195,
597 "column": 3
598 }
599 },
600 {
601 "id": "sidebar.muteApp",
602 "defaultMessage": "!!!Disable notifications & audio",
603 "file": "src/lib/Menu.js",
604 "start": {
605 "line": 196,
606 "column": 11
607 },
608 "end": {
609 "line": 199,
610 "column": 3
611 }
612 },
613 {
614 "id": "sidebar.unmuteApp",
615 "defaultMessage": "!!!Enable notifications & audio",
616 "file": "src/lib/Menu.js",
617 "start": {
618 "line": 200,
619 "column": 13
620 },
621 "end": {
622 "line": 203,
623 "column": 3
624 }
625 },
626 {
627 "id": "menu.workspaces",
628 "defaultMessage": "!!!Workspaces",
629 "file": "src/lib/Menu.js",
630 "start": {
631 "line": 204,
632 "column": 14
633 },
634 "end": {
635 "line": 207,
636 "column": 3
637 }
638 },
639 {
640 "id": "menu.workspaces.defaultWorkspace",
641 "defaultMessage": "!!!Default",
642 "file": "src/lib/Menu.js",
643 "start": {
644 "line": 208,
645 "column": 20
646 },
647 "end": {
648 "line": 211,
649 "column": 3
650 }
651 }
652] \ No newline at end of file
diff --git a/src/index.js b/src/index.js
index 69cfa77e7..0e222c3d6 100644
--- a/src/index.js
+++ b/src/index.js
@@ -34,6 +34,7 @@ import {
34 DEFAULT_WINDOW_OPTIONS, 34 DEFAULT_WINDOW_OPTIONS,
35} from './config'; 35} from './config';
36import { asarPath } from './helpers/asar-helpers'; 36import { asarPath } from './helpers/asar-helpers';
37import { isValidExternalURL } from './helpers/url-helpers';
37/* eslint-enable import/first */ 38/* eslint-enable import/first */
38 39
39const debug = require('debug')('Franz:App'); 40const debug = require('debug')('Franz:App');
@@ -223,20 +224,24 @@ const createWindow = () => {
223 224
224 // Emitted when the window is closed. 225 // Emitted when the window is closed.
225 mainWindow.on('close', (e) => { 226 mainWindow.on('close', (e) => {
227 debug('Window: close window');
226 // Dereference the window object, usually you would store windows 228 // Dereference the window object, usually you would store windows
227 // in an array if your app supports multi windows, this is the time 229 // in an array if your app supports multi windows, this is the time
228 // when you should delete the corresponding element. 230 // when you should delete the corresponding element.
229 if (!willQuitApp && (settings.get('runInBackground') === undefined || settings.get('runInBackground'))) { 231 if (!willQuitApp && (settings.get('runInBackground') === undefined || settings.get('runInBackground'))) {
230 e.preventDefault(); 232 e.preventDefault();
231 if (isWindows) { 233 if (isWindows) {
234 debug('Window: minimize');
232 mainWindow.minimize(); 235 mainWindow.minimize();
236
237 if (settings.get('minimizeToSystemTray')) {
238 debug('Skip taskbar: true');
239 mainWindow.setSkipTaskbar(true);
240 }
233 } else { 241 } else {
242 debug('Window: hide');
234 mainWindow.hide(); 243 mainWindow.hide();
235 } 244 }
236
237 if (isWindows) {
238 mainWindow.setSkipTaskbar(true);
239 }
240 } else { 245 } else {
241 app.quit(); 246 app.quit();
242 } 247 }
@@ -248,32 +253,39 @@ const createWindow = () => {
248 app.wasMaximized = app.isMaximized; 253 app.wasMaximized = app.isMaximized;
249 254
250 if (settings.get('minimizeToSystemTray')) { 255 if (settings.get('minimizeToSystemTray')) {
256 debug('Skip taskbar: true');
251 mainWindow.setSkipTaskbar(true); 257 mainWindow.setSkipTaskbar(true);
252 trayIcon.show(); 258 trayIcon.show();
253 } 259 }
254 }); 260 });
255 261
256 mainWindow.on('maximize', () => { 262 mainWindow.on('maximize', () => {
263 debug('Window: maximize');
257 app.isMaximized = true; 264 app.isMaximized = true;
258 }); 265 });
259 266
260 mainWindow.on('unmaximize', () => { 267 mainWindow.on('unmaximize', () => {
268 debug('Window: unmaximize');
261 app.isMaximized = false; 269 app.isMaximized = false;
262 }); 270 });
263 271
264 mainWindow.on('restore', () => { 272 mainWindow.on('restore', () => {
273 debug('Window: restore');
265 mainWindow.setSkipTaskbar(false); 274 mainWindow.setSkipTaskbar(false);
266 275
267 if (app.wasMaximized) { 276 if (app.wasMaximized) {
277 debug('Window: was maximized before, maximize window');
268 mainWindow.maximize(); 278 mainWindow.maximize();
269 } 279 }
270 280
271 if (!settings.get('enableSystemTray')) { 281 if (!settings.get('enableSystemTray')) {
282 debug('Tray: hiding tray icon');
272 trayIcon.hide(); 283 trayIcon.hide();
273 } 284 }
274 }); 285 });
275 286
276 mainWindow.on('show', () => { 287 mainWindow.on('show', () => {
288 debug('Skip taskbar: false');
277 mainWindow.setSkipTaskbar(false); 289 mainWindow.setSkipTaskbar(false);
278 }); 290 });
279 291
@@ -281,8 +293,12 @@ const createWindow = () => {
281 app.isMaximized = mainWindow.isMaximized(); 293 app.isMaximized = mainWindow.isMaximized();
282 294
283 mainWindow.webContents.on('new-window', (e, url) => { 295 mainWindow.webContents.on('new-window', (e, url) => {
296 debug('Open url', url);
284 e.preventDefault(); 297 e.preventDefault();
285 shell.openExternal(url); 298
299 if (isValidExternalURL(url)) {
300 shell.openExternal(url);
301 }
286 }); 302 });
287}; 303};
288 304
@@ -360,7 +376,10 @@ app.on('window-all-closed', () => {
360 // to stay active until the user quits explicitly with Cmd + Q 376 // to stay active until the user quits explicitly with Cmd + Q
361 if (settings.get('runInBackground') === undefined 377 if (settings.get('runInBackground') === undefined
362 || settings.get('runInBackground')) { 378 || settings.get('runInBackground')) {
379 debug('Window: all windows closed, quit app');
363 app.quit(); 380 app.quit();
381 } else {
382 debug('Window: don\'t quit app');
364 } 383 }
365}); 384});
366 385
diff --git a/src/lib/Menu.js b/src/lib/Menu.js
index c572bbb70..b21a62b4d 100644
--- a/src/lib/Menu.js
+++ b/src/lib/Menu.js
@@ -1,5 +1,5 @@
1import { remote, shell } from 'electron'; 1import { remote, shell } from 'electron';
2import { observable, autorun, computed } from 'mobx'; 2import { observable, autorun } from 'mobx';
3import { defineMessages } from 'react-intl'; 3import { defineMessages } from 'react-intl';
4 4
5import { isMac, ctrlKey, cmdKey } from '../environment'; 5import { isMac, ctrlKey, cmdKey } from '../environment';
@@ -181,6 +181,26 @@ const menuItems = defineMessages({
181 id: 'menu.services.addNewService', 181 id: 'menu.services.addNewService',
182 defaultMessage: '!!!Add New Service...', 182 defaultMessage: '!!!Add New Service...',
183 }, 183 },
184 addNewWorkspace: {
185 id: 'menu.workspaces.addNewWorkspace',
186 defaultMessage: '!!!Add New Workspace...',
187 },
188 activateNextService: {
189 id: 'menu.services.setNextServiceActive',
190 defaultMessage: '!!!Activate next service...',
191 },
192 activatePreviousService: {
193 id: 'menu.services.activatePreviousService',
194 defaultMessage: '!!!Activate previous service...',
195 },
196 muteApp: {
197 id: 'sidebar.muteApp',
198 defaultMessage: '!!!Disable notifications & audio',
199 },
200 unmuteApp: {
201 id: 'sidebar.unmuteApp',
202 defaultMessage: '!!!Enable notifications & audio',
203 },
184 workspaces: { 204 workspaces: {
185 id: 'menu.workspaces', 205 id: 'menu.workspaces',
186 defaultMessage: '!!!Workspaces', 206 defaultMessage: '!!!Workspaces',
@@ -189,10 +209,6 @@ const menuItems = defineMessages({
189 id: 'menu.workspaces.defaultWorkspace', 209 id: 'menu.workspaces.defaultWorkspace',
190 defaultMessage: '!!!Default', 210 defaultMessage: '!!!Default',
191 }, 211 },
192 addNewWorkspace: {
193 id: 'menu.workspaces.addNewWorkspace',
194 defaultMessage: '!!!Add New Workspace...',
195 },
196}); 212});
197 213
198function getActiveWebview() { 214function getActiveWebview() {
@@ -253,16 +269,32 @@ const _templateFactory = intl => [
253 }, 269 },
254 { 270 {
255 label: intl.formatMessage(menuItems.resetZoom), 271 label: intl.formatMessage(menuItems.resetZoom),
256 role: 'resetzoom', 272 accelerator: 'Cmd+0',
273 click() {
274 getActiveWebview().setZoomLevel(0);
275 },
257 }, 276 },
258 { 277 {
259 label: intl.formatMessage(menuItems.zoomIn), 278 label: intl.formatMessage(menuItems.zoomIn),
260 // accelerator: 'Cmd+=', 279 accelerator: 'Cmd+plus',
261 role: 'zoomin', 280 click() {
281 const activeService = getActiveWebview();
282 activeService.getZoomLevel((level) => {
283 // level 9 =~ +300% and setZoomLevel wouldnt zoom in further
284 if (level < 9) activeService.setZoomLevel(level + 1);
285 });
286 },
262 }, 287 },
263 { 288 {
264 label: intl.formatMessage(menuItems.zoomOut), 289 label: intl.formatMessage(menuItems.zoomOut),
265 role: 'zoomout', 290 accelerator: 'Cmd+-',
291 click() {
292 const activeService = getActiveWebview();
293 activeService.getZoomLevel((level) => {
294 // level -9 =~ -50% and setZoomLevel wouldnt zoom out further
295 if (level > -9) activeService.setZoomLevel(level - 1);
296 });
297 },
266 }, 298 },
267 { 299 {
268 type: 'separator', 300 type: 'separator',
@@ -410,10 +442,12 @@ const _titleBarTemplateFactory = intl => [
410 }, 442 },
411 { 443 {
412 label: intl.formatMessage(menuItems.zoomIn), 444 label: intl.formatMessage(menuItems.zoomIn),
413 accelerator: `${ctrlKey}+Plus`, 445 accelerator: `${ctrlKey}+=`,
414 click() { 446 click() {
415 getActiveWebview().getZoomLevel((zoomLevel) => { 447 const activeService = getActiveWebview();
416 getActiveWebview().setZoomLevel(zoomLevel === 5 ? zoomLevel : zoomLevel + 1); 448 activeService.getZoomLevel((level) => {
449 // level 9 =~ +300% and setZoomLevel wouldnt zoom in further
450 if (level < 9) activeService.setZoomLevel(level + 1);
417 }); 451 });
418 }, 452 },
419 }, 453 },
@@ -421,8 +455,10 @@ const _titleBarTemplateFactory = intl => [
421 label: intl.formatMessage(menuItems.zoomOut), 455 label: intl.formatMessage(menuItems.zoomOut),
422 accelerator: `${ctrlKey}+-`, 456 accelerator: `${ctrlKey}+-`,
423 click() { 457 click() {
424 getActiveWebview().getZoomLevel((zoomLevel) => { 458 const activeService = getActiveWebview();
425 getActiveWebview().setZoomLevel(zoomLevel === -5 ? zoomLevel : zoomLevel - 1); 459 activeService.getZoomLevel((level) => {
460 // level -9 =~ -50% and setZoomLevel wouldnt zoom out further
461 if (level > -9) activeService.setZoomLevel(level - 1);
426 }); 462 });
427 }, 463 },
428 }, 464 },
@@ -518,14 +554,14 @@ export default class FranzMenu {
518 554
519 _build() { 555 _build() {
520 // need to clone object so we don't modify computed (cached) object 556 // need to clone object so we don't modify computed (cached) object
521 const serviceTpl = Object.assign([], this.serviceTpl); 557 const serviceTpl = Object.assign([], this.serviceTpl());
522 const workspacesMenu = Object.assign([], this.workspacesMenu); 558 const workspacesMenu = Object.assign([], this.workspacesMenu());
523 559
524 if (window.franz === undefined) { 560 if (window.franz === undefined) {
525 return; 561 return;
526 } 562 }
527 563
528 const intl = window.franz.intl; 564 const { intl } = window.franz;
529 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl); 565 const tpl = isMac ? _templateFactory(intl) : _titleBarTemplateFactory(intl);
530 566
531 tpl[1].submenu.push({ 567 tpl[1].submenu.push({
@@ -683,17 +719,6 @@ export default class FranzMenu {
683 }, about); 719 }, about);
684 } 720 }
685 721
686 serviceTpl.unshift({
687 label: intl.formatMessage(menuItems.addNewService),
688 accelerator: `${cmdKey}+N`,
689 click: () => {
690 this.actions.ui.openSettings({ path: 'recipes' });
691 },
692 enabled: this.stores.user.isLoggedIn,
693 }, {
694 type: 'separator',
695 });
696
697 if (serviceTpl.length > 0) { 722 if (serviceTpl.length > 0) {
698 tpl[3].submenu = serviceTpl; 723 tpl[3].submenu = serviceTpl;
699 } 724 }
@@ -705,25 +730,52 @@ export default class FranzMenu {
705 Menu.setApplicationMenu(menu); 730 Menu.setApplicationMenu(menu);
706 } 731 }
707 732
708 @computed get serviceTpl() { 733 serviceTpl() {
709 const services = this.stores.services.allDisplayed; 734 const { intl } = window.franz;
735 const { user, services, settings } = this.stores;
736 if (!user.isLoggedIn) return [];
737 const menu = [];
710 738
711 if (this.stores.user.isLoggedIn) { 739 menu.push({
712 return services.map((service, i) => ({ 740 label: intl.formatMessage(menuItems.addNewService),
713 label: this._getServiceName(service), 741 accelerator: `${cmdKey}+N`,
714 accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null, 742 click: () => {
715 type: 'radio', 743 this.actions.ui.openSettings({ path: 'recipes' });
716 checked: service.isActive, 744 },
717 click: () => { 745 }, {
718 this.actions.service.setActive({ serviceId: service.id }); 746 type: 'separator',
719 }, 747 }, {
720 })); 748 label: intl.formatMessage(menuItems.activateNextService),
721 } 749 accelerator: `${cmdKey}+alt+right`,
750 click: () => this.actions.service.setActiveNext(),
751 }, {
752 label: intl.formatMessage(menuItems.activatePreviousService),
753 accelerator: `${cmdKey}+alt+left`,
754 click: () => this.actions.service.setActivePrev(),
755 }, {
756 label: intl.formatMessage(
757 settings.all.app.isAppMuted ? menuItems.unmuteApp : menuItems.muteApp,
758 ).replace('&', '&&'),
759 accelerator: `${cmdKey}+shift+m`,
760 click: () => this.actions.app.toggleMuteApp(),
761 }, {
762 type: 'separator',
763 });
722 764
723 return []; 765 services.allDisplayed.forEach((service, i) => (menu.push({
766 label: this._getServiceName(service),
767 accelerator: i < 9 ? `${cmdKey}+${i + 1}` : null,
768 type: 'radio',
769 checked: service.isActive,
770 click: () => {
771 this.actions.service.setActive({ serviceId: service.id });
772 },
773 })));
774
775 return menu;
724 } 776 }
725 777
726 @computed get workspacesMenu() { 778 workspacesMenu() {
727 const { workspaces, activeWorkspace } = workspacesState; 779 const { workspaces, activeWorkspace } = workspacesState;
728 const { intl } = window.franz; 780 const { intl } = window.franz;
729 const menu = []; 781 const menu = [];
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js
index 168aa7e48..7784ff1f9 100644
--- a/src/stores/AppStore.js
+++ b/src/stores/AppStore.js
@@ -3,11 +3,11 @@ import {
3 action, computed, observable, reaction, 3 action, computed, observable, reaction,
4} from 'mobx'; 4} from 'mobx';
5import moment from 'moment'; 5import moment from 'moment';
6import key from 'keymaster';
7import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; 6import { getDoNotDisturb } from '@meetfranz/electron-notification-state';
8import AutoLaunch from 'auto-launch'; 7import AutoLaunch from 'auto-launch';
9import prettyBytes from 'pretty-bytes'; 8import prettyBytes from 'pretty-bytes';
10import ms from 'ms'; 9import ms from 'ms';
10import { URL } from 'url';
11 11
12import Store from './lib/Store'; 12import Store from './lib/Store';
13import Request from './lib/Request'; 13import Request from './lib/Request';
@@ -19,6 +19,7 @@ import { onVisibilityChange } from '../helpers/visibility-helper';
19import { getLocale } from '../helpers/i18n-helpers'; 19import { getLocale } from '../helpers/i18n-helpers';
20 20
21import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js'; 21import { getServiceIdsFromPartitions, removeServicePartitionDirectory } from '../helpers/service-helpers.js';
22import { isValidExternalURL } from '../helpers/url-helpers';
22 23
23const debug = require('debug')('Franz:AppStore'); 24const debug = require('debug')('Franz:AppStore');
24 25
@@ -155,27 +156,6 @@ export default class AppStore extends Store {
155 this.stores.router.push(url); 156 this.stores.router.push(url);
156 }); 157 });
157 158
158 // Set active the next service
159 key(
160 '⌘+pagedown, ctrl+pagedown, ⌘+alt+right, ctrl+tab', () => {
161 this.actions.service.setActiveNext();
162 },
163 );
164
165 // Set active the prev service
166 key(
167 '⌘+pageup, ctrl+pageup, ⌘+alt+left, ctrl+shift+tab', () => {
168 this.actions.service.setActivePrev();
169 },
170 );
171
172 // Global Mute
173 key(
174 '⌘+shift+m ctrl+shift+m', () => {
175 this.actions.app.toggleMuteApp();
176 },
177 );
178
179 this.locale = this._getDefaultLocale(); 159 this.locale = this._getDefaultLocale();
180 160
181 this._healthCheck(); 161 this._healthCheck();
@@ -256,7 +236,14 @@ export default class AppStore extends Store {
256 } 236 }
257 237
258 @action _openExternalUrl({ url }) { 238 @action _openExternalUrl({ url }) {
259 shell.openExternal(url); 239 const parsedUrl = new URL(url);
240 debug('open external url', parsedUrl);
241
242 if (isValidExternalURL(url)) {
243 shell.openExternal(url);
244 }
245
246 gaEvent('External URL', 'open', parsedUrl.host);
260 } 247 }
261 248
262 @action _checkForUpdates() { 249 @action _checkForUpdates() {
@@ -280,7 +267,6 @@ export default class AppStore extends Store {
280 267
281 @action _muteApp({ isMuted, overrideSystemMute = true }) { 268 @action _muteApp({ isMuted, overrideSystemMute = true }) {
282 this.isSystemMuteOverridden = overrideSystemMute; 269 this.isSystemMuteOverridden = overrideSystemMute;
283
284 this.actions.settings.update({ 270 this.actions.settings.update({
285 type: 'app', 271 type: 'app',
286 data: { 272 data: {
diff --git a/src/styles/layout.scss b/src/styles/layout.scss
index 8b7cc512a..9a003a922 100644
--- a/src/styles/layout.scss
+++ b/src/styles/layout.scss
@@ -124,15 +124,14 @@ html { overflow: hidden; }
124 background: $theme-brand-warning; 124 background: $theme-brand-warning;
125 color: #FFF; 125 color: #FFF;
126 display: block; 126 display: block;
127 font-size: 10px; 127 font-size: 8px;
128 height: auto; 128 height: auto;
129 padding: 4px; 129 padding: 4px;
130 position: fixed; 130 position: fixed;
131 right: 5px; 131 left: 9px;
132 top: 5px; 132 bottom: 0px;
133 transition: opacity .5s ease; 133 transition: opacity .5s ease;
134 width: auto; 134 width: auto;
135 z-index: 999999999; 135 z-index: 999999999;
136 136 pointer-events: none;
137 &:hover { opacity: 0; }
138} 137}