diff options
author | Stefan <stefan@adlk.io> | 2019-06-04 14:26:56 +0200 |
---|---|---|
committer | Stefan <stefan@adlk.io> | 2019-06-04 14:26:56 +0200 |
commit | fd6a1e9ba24c7947af08a30829c860cad4726f67 (patch) | |
tree | 0b6276700ced8d13eaf0a1e3b706a69a5a47b1da | |
parent | fix(Windows): Replace tray icon with high-res version (diff) | |
parent | Merge pull request #1443 from meetfranz/feature/multilingual-announcements (diff) | |
download | ferdium-app-fd6a1e9ba24c7947af08a30829c860cad4726f67.tar.gz ferdium-app-fd6a1e9ba24c7947af08a30829c860cad4726f67.tar.zst ferdium-app-fd6a1e9ba24c7947af08a30829c860cad4726f67.zip |
Merge branch 'develop' of https://github.com/meetfranz/franz into develop
91 files changed, 5138 insertions, 880 deletions
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "parser": "babel-eslint", | 2 | "parser": "babel-eslint", |
3 | "extends": "eslint-config-airbnb", | 3 | "extends": "eslint-config-airbnb", |
4 | "plugins": ["jest"], | ||
4 | "rules": { | 5 | "rules": { |
5 | "consistent-return": 0, | 6 | "consistent-return": 0, |
6 | "no-param-reassign": 0, | 7 | "no-param-reassign": 0, |
@@ -55,5 +56,8 @@ | |||
55 | "btoa": true, | 56 | "btoa": true, |
56 | "ga": true, | 57 | "ga": true, |
57 | "mocha": true | 58 | "mocha": true |
59 | }, | ||
60 | "env": { | ||
61 | "jest/globals": true | ||
58 | } | 62 | } |
59 | } | 63 | } |
diff --git a/.travis.yml b/.travis.yml index ba827374f..c7e2c714c 100644 --- a/.travis.yml +++ b/.travis.yml | |||
@@ -14,7 +14,7 @@ matrix: | |||
14 | 14 | ||
15 | language: node_js | 15 | language: node_js |
16 | 16 | ||
17 | install: | 17 | install: |
18 | - echo do nothing | 18 | - echo do nothing |
19 | 19 | ||
20 | before_script: | 20 | before_script: |
@@ -22,7 +22,7 @@ before_script: | |||
22 | - npm install node-sass -g | 22 | - npm install node-sass -g |
23 | 23 | ||
24 | script: | 24 | script: |
25 | # - npm run lint | 25 | - npm run test |
26 | - travis_wait 30 npm run build | 26 | - travis_wait 30 npm run build |
27 | 27 | ||
28 | cache: npm | 28 | cache: npm |
@@ -30,7 +30,7 @@ cache: npm | |||
30 | notifications: | 30 | notifications: |
31 | email: false | 31 | email: false |
32 | slack: | 32 | slack: |
33 | secure: NjEDG+6YvJvFNwRT8t8XyVR145m+Pb1pmYgdBeuhqtJbMAr0IOb0lLLW9ixKEsL1NU+0R58QGiG9qqY+lLnMNpDYjzluFo0gQtl2NJrULT4xUFDSu65XTwoutKyvj+hoCsHiwrSrO2dHTx3ZK2vsSueg+8jM/xss7dTLA6BcTYl14wTOU37PqFQZk9JYR+Dfq1Jjhy/mq4BiAsb/1clNIulkjmRjSm6R0XT4ZsZZfj0ifXhL4cLGsUv2n+iePiX6bLwZPFjXV1COYTBafbCu17gw3nRMdNMMTDLbwrXXdJZFS/EjFOPgOhwF7CkZ3kSpB2ZIcAJxG7iAUl5j+jHBXc5dafRbjzE4oYve1vPexLoV3NjV76uANUFkcli6eHYD0uJoUJGBRbRGWp+8Bbw9EcBsn4s3vbf5XqHX3S46zvGgqX+LyhyMJQtEG/iv+9XOsOql18ryyejij0z1K7DxpI0gLV1ATZCphY1Fyz1yZDGlYN4ej/Rl2P1Q3yXilweJRF7Ts04w4U9iuP1u598/w++CKSu4q4EeEuqT/hIeFQUKUkwCEsO4xa39vhLPaxKrG9UEUH8OXN+NPZyTAK/LKuIX7C56O1kwvWNMWlPmTcvsq2RghvNTwgSGUIO0EKZKrQYAEG3Y/veSt5CgZoNzLgc/6Xj+g7daxUo9heLy26A= | 33 | secure: GMiD9uhGUNkJbasOMvfUmQx/SKG8wd/MC4IPtiZZnlLkiN6eJQnV3p9OeMaiSCcq19gQ65z898h55PXwFX5pFqmGMQF0zdA3VXlVh7wrUU/Z8cYxCBaZTIOgNwtrteT9V9easV/5BuUGLHVgAFYEhS5tJDu2GU4UKdm6mko4YyxKHdsCsvkRpv+zpFF1a+G2ZUwWHDhTZsBJbx7SW7xzPKYI+vq+bNnbyC6p0kpeTehf29A8CoIgQlDctzk4aOHkj35WHIiKS5yzr/nb8oY/B6vCdfFHCrCkZxQrxPEagyYTfEusWwQRJ4rvwt8dgBO1A3ckO+AC1MEAYRYHgQMI5K86tcQ7/su5iOhu9NDbZ/BfriaTDlrurKMWPhZ/RVnFUT4tn7XVVcMxz6/FYFDYIDSHEn5E20a7qV1ixF7XKoJU6eOfo3qZ7euxiZIbDbHBH+Y2ZmzUGfrQ7DFlefMEM/6Laa0jNGOSvfc6mvk1x63bVTT5KfYEX4ztXnBY77haG4/h5bIHyNDzLsZ5vxXbvmHZb6ToMVn9UT6HS0sZQ/B4bghJbdZuOrPFlz8UNRpwoBS4HpLUndhYCo0ppxd3yCd5gqEhIJzEiJNoMq+LA9/iheLbWlJVdjP2WRQ2/m9VCSxnivTdNhnp6lSATiXAgq2WN2LGhTSGtXgqtcYGXhk= |
34 | 34 | ||
35 | deploy: | 35 | deploy: |
36 | provider: s3 | 36 | provider: s3 |
diff --git a/CHANGELOG.md b/CHANGELOG.md index 175ce06d7..c7a93f2b3 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -1,14 +1,28 @@ | |||
1 | # [5.0.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1) (2019-03-25) | 1 | # [5.1.0](https://github.com/meetfranz/franz/compare/v5.1.0...v5.1.0-beta.1) (2019-04-16) |
2 | |||
3 | ### Features | ||
4 | |||
5 | * **App:** Added Workspaces for all your daily routines 🎉 ([47c1c99](https://github.com/meetfranz/franz/commit/47c1c99)) | ||
6 | * **App:** Added [Team Management](https://meetfranz.com/user/team) 🎉 ([47c1c99](https://github.com/meetfranz/franz/commit/47c1c99)) | ||
7 | * **App:** Added Kerberos Support via Command Line Switches ([#1331](https://github.com/meetfranz/franz/issues/1331)) ([@frumania](https://github.com/frumania)) ([a1950d7](https://github.com/meetfranz/franz/commit/a1950d7)) | ||
8 | * **App:** Open changelog in app | ||
9 | * **App:** Various small fixes and improvements | ||
2 | 10 | ||
3 | ### General | 11 | ### General |
4 | 12 | ||
5 | * **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** | 13 | * **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** |
14 | * **App:** Update electron to 4.1.4 ([2604914](https://github.com/meetfranz/franz/commit/2604914)) | ||
15 | |||
16 | |||
17 | # [5.1.0-beta.1](https://github.com/meetfranz/franz/compare/v5.0.1-beta.1...v5.1.0-beta.1) (2019-04-16) | ||
6 | 18 | ||
19 | [See 5.1.0 changelog.](#5-1-0--2019-04-16-) | ||
20 | |||
21 | # [5.0.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1) (2019-03-25) | ||
7 | 22 | ||
8 | ### Features | 23 | ### Features |
9 | 24 | ||
10 | * **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a)) | 25 | * **App:** Add security checks for external URLs ([6e5531a](https://github.com/meetfranz/franz/commit/6e5531a)) |
11 | * **App:** Update electron to 4.0.8 ([8336d17](https://github.com/meetfranz/franz/commit/8336d17)) | ||
12 | * **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e)) | 26 | * **Linux:** Add auto updater for Linux AppImage builds ([d641b4e](https://github.com/meetfranz/franz/commit/d641b4e)) |
13 | * **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325)) | 27 | * **Spell check:** Add British English as spell check language ([#1306](https://github.com/meetfranz/franz/issues/1306)) ([67fa325](https://github.com/meetfranz/franz/commit/67fa325)) |
14 | * **Windows:** Add option to quit Franz from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b)) | 28 | * **Windows:** Add option to quit Franz from Taskbar icon ([952fc8b](https://github.com/meetfranz/franz/commit/952fc8b)) |
@@ -22,6 +36,11 @@ | |||
22 | * **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316) | 36 | * **Windows:** Fix copy & paste in service context menus ([e66fcaa](https://github.com/meetfranz/franz/commit/e66fcaa)), closes [#1316](https://github.com/meetfranz/franz/issues/1316) |
23 | * **Windows:** Fix losing window when "Keep Franz in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722)) | 37 | * **Windows:** Fix losing window when "Keep Franz in background" is enabled ([78a3722](https://github.com/meetfranz/franz/commit/78a3722)) |
24 | 38 | ||
39 | ### General | ||
40 | |||
41 | * **Translations:** Improved translations. **[A million thanks to the amazing community. 🎉](http://i18n.meetfranz.com/)** | ||
42 | * **App:** Update electron to 4.0.8 ([8336d17](https://github.com/meetfranz/franz/commit/8336d17)) | ||
43 | |||
25 | 44 | ||
26 | # [5.0.1-beta.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1-beta.1) (2019-03-18) | 45 | # [5.0.1-beta.1](https://github.com/meetfranz/franz/compare/v5.0.0...v5.0.1-beta.1) (2019-03-18) |
27 | 46 | ||
@@ -29,10 +48,6 @@ | |||
29 | 48 | ||
30 | # [5.0.0](https://github.com/meetfranz/franz/compare/5.0.0-beta.24...5.0.0) (2019-02-15) | 49 | # [5.0.0](https://github.com/meetfranz/franz/compare/5.0.0-beta.24...5.0.0) (2019-02-15) |
31 | 50 | ||
32 | ### General | ||
33 | |||
34 | * **App:** Updated electron to 4.0.4 | ||
35 | |||
36 | ### Features | 51 | ### Features |
37 | 52 | ||
38 | * **Spellchecker:** Add automatic spellcheck language detection ([a5e7171](https://github.com/meetfranz/franz/commit/a5e7171)) | 53 | * **Spellchecker:** Add automatic spellcheck language detection ([a5e7171](https://github.com/meetfranz/franz/commit/a5e7171)) |
@@ -42,6 +57,10 @@ | |||
42 | 57 | ||
43 | * **App:** Various bugfixes and improvements | 58 | * **App:** Various bugfixes and improvements |
44 | 59 | ||
60 | ### General | ||
61 | |||
62 | * **App:** Updated electron to 4.0.4 | ||
63 | |||
45 | 64 | ||
46 | 65 | ||
47 | # [5.0.0-beta.24](https://github.com/meetfranz/franz/compare/v5.0.0-beta.23...v5.0.0-beta.24) (2019-02-03) | 66 | # [5.0.0-beta.24](https://github.com/meetfranz/franz/compare/v5.0.0-beta.23...v5.0.0-beta.24) (2019-02-03) |
diff --git a/appveyor.yml b/appveyor.yml index 0ed8866a3..abcf81d00 100644 --- a/appveyor.yml +++ b/appveyor.yml | |||
@@ -17,6 +17,7 @@ cache: | |||
17 | 17 | ||
18 | before_build: | 18 | before_build: |
19 | - npm run lint | 19 | - npm run lint |
20 | - npm run test | ||
20 | 21 | ||
21 | build_script: | 22 | build_script: |
22 | - npm run build | 23 | - npm run build |
@@ -24,7 +25,7 @@ build_script: | |||
24 | notifications: | 25 | notifications: |
25 | - provider: Slack | 26 | - provider: Slack |
26 | incoming_webhook: | 27 | incoming_webhook: |
27 | secure: 2NnhP/L7Jk9PDE0JvdNnYVBnmDHFRWHmTQBQ1492ZQ5O0Ok/97FAbk/FbGZVEalli8xcaPkVu3jiOD7IPVvHLKUrmyvficRgmL+qf4lhD1s= | 28 | secure: 2NnhP/L7Jk9PDE0JvdNnYVBnmDHFRWHmTQBQ1492ZQ7TpD2xQ/cXi3+G1Spr8zN5O8H+MQi4oMn3Ih2w0e8ZkHgQw138jvK/OfZO+FlF/mI= |
28 | 29 | ||
29 | artifacts: | 30 | artifacts: |
30 | - path: out\*.exe | 31 | - path: out\*.exe |
diff --git a/jest.config.js b/jest.config.js new file mode 100644 index 000000000..8c9b59cf5 --- /dev/null +++ b/jest.config.js | |||
@@ -0,0 +1,3 @@ | |||
1 | module.exports = { | ||
2 | roots: ['src'], | ||
3 | }; | ||
diff --git a/package-lock.json b/package-lock.json index 57650aac0..fc328c4b4 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -1083,6 +1083,16 @@ | |||
1083 | "to-fast-properties": "^2.0.0" | 1083 | "to-fast-properties": "^2.0.0" |
1084 | } | 1084 | } |
1085 | }, | 1085 | }, |
1086 | "@cnakazawa/watch": { | ||
1087 | "version": "1.0.3", | ||
1088 | "resolved": "https://registry.npmjs.org/@cnakazawa/watch/-/watch-1.0.3.tgz", | ||
1089 | "integrity": "sha512-r5160ogAvGyHsal38Kux7YYtodEKOj89RGb28ht1jh3SJb08VwRwAKKJL0bGb04Zd/3r9FL3BFIc3bBidYffCA==", | ||
1090 | "dev": true, | ||
1091 | "requires": { | ||
1092 | "exec-sh": "^0.3.2", | ||
1093 | "minimist": "^1.2.0" | ||
1094 | } | ||
1095 | }, | ||
1086 | "@fimbul/bifrost": { | 1096 | "@fimbul/bifrost": { |
1087 | "version": "0.17.0", | 1097 | "version": "0.17.0", |
1088 | "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.17.0.tgz", | 1098 | "resolved": "https://registry.npmjs.org/@fimbul/bifrost/-/bifrost-0.17.0.tgz", |
@@ -1123,6 +1133,217 @@ | |||
1123 | "tslib": "^1.8.1" | 1133 | "tslib": "^1.8.1" |
1124 | } | 1134 | } |
1125 | }, | 1135 | }, |
1136 | "@jest/console": { | ||
1137 | "version": "24.7.1", | ||
1138 | "resolved": "https://registry.npmjs.org/@jest/console/-/console-24.7.1.tgz", | ||
1139 | "integrity": "sha512-iNhtIy2M8bXlAOULWVTUxmnelTLFneTNEkHCgPmgd+zNwy9zVddJ6oS5rZ9iwoscNdT5mMwUd0C51v/fSlzItg==", | ||
1140 | "dev": true, | ||
1141 | "requires": { | ||
1142 | "@jest/source-map": "^24.3.0", | ||
1143 | "chalk": "^2.0.1", | ||
1144 | "slash": "^2.0.0" | ||
1145 | } | ||
1146 | }, | ||
1147 | "@jest/core": { | ||
1148 | "version": "24.7.1", | ||
1149 | "resolved": "https://registry.npmjs.org/@jest/core/-/core-24.7.1.tgz", | ||
1150 | "integrity": "sha512-ivlZ8HX/FOASfHcb5DJpSPFps8ydfUYzLZfgFFqjkLijYysnIEOieg72YRhO4ZUB32xu40hsSMmaw+IGYeKONA==", | ||
1151 | "dev": true, | ||
1152 | "requires": { | ||
1153 | "@jest/console": "^24.7.1", | ||
1154 | "@jest/reporters": "^24.7.1", | ||
1155 | "@jest/test-result": "^24.7.1", | ||
1156 | "@jest/transform": "^24.7.1", | ||
1157 | "@jest/types": "^24.7.0", | ||
1158 | "ansi-escapes": "^3.0.0", | ||
1159 | "chalk": "^2.0.1", | ||
1160 | "exit": "^0.1.2", | ||
1161 | "graceful-fs": "^4.1.15", | ||
1162 | "jest-changed-files": "^24.7.0", | ||
1163 | "jest-config": "^24.7.1", | ||
1164 | "jest-haste-map": "^24.7.1", | ||
1165 | "jest-message-util": "^24.7.1", | ||
1166 | "jest-regex-util": "^24.3.0", | ||
1167 | "jest-resolve-dependencies": "^24.7.1", | ||
1168 | "jest-runner": "^24.7.1", | ||
1169 | "jest-runtime": "^24.7.1", | ||
1170 | "jest-snapshot": "^24.7.1", | ||
1171 | "jest-util": "^24.7.1", | ||
1172 | "jest-validate": "^24.7.0", | ||
1173 | "jest-watcher": "^24.7.1", | ||
1174 | "micromatch": "^3.1.10", | ||
1175 | "p-each-series": "^1.0.0", | ||
1176 | "pirates": "^4.0.1", | ||
1177 | "realpath-native": "^1.1.0", | ||
1178 | "rimraf": "^2.5.4", | ||
1179 | "strip-ansi": "^5.0.0" | ||
1180 | }, | ||
1181 | "dependencies": { | ||
1182 | "ansi-regex": { | ||
1183 | "version": "4.1.0", | ||
1184 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
1185 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
1186 | "dev": true | ||
1187 | }, | ||
1188 | "pirates": { | ||
1189 | "version": "4.0.1", | ||
1190 | "resolved": "https://registry.npmjs.org/pirates/-/pirates-4.0.1.tgz", | ||
1191 | "integrity": "sha512-WuNqLTbMI3tmfef2TKxlQmAiLHKtFhlsCZnPIpuv2Ow0RDVO8lfy1Opf4NUzlMXLjPl+Men7AuVdX6TA+s+uGA==", | ||
1192 | "dev": true, | ||
1193 | "requires": { | ||
1194 | "node-modules-regexp": "^1.0.0" | ||
1195 | } | ||
1196 | }, | ||
1197 | "strip-ansi": { | ||
1198 | "version": "5.2.0", | ||
1199 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", | ||
1200 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", | ||
1201 | "dev": true, | ||
1202 | "requires": { | ||
1203 | "ansi-regex": "^4.1.0" | ||
1204 | } | ||
1205 | } | ||
1206 | } | ||
1207 | }, | ||
1208 | "@jest/environment": { | ||
1209 | "version": "24.7.1", | ||
1210 | "resolved": "https://registry.npmjs.org/@jest/environment/-/environment-24.7.1.tgz", | ||
1211 | "integrity": "sha512-wmcTTYc4/KqA+U5h1zQd5FXXynfa7VGP2NfF+c6QeGJ7c+2nStgh65RQWNX62SC716dTtqheTRrZl0j+54oGHw==", | ||
1212 | "dev": true, | ||
1213 | "requires": { | ||
1214 | "@jest/fake-timers": "^24.7.1", | ||
1215 | "@jest/transform": "^24.7.1", | ||
1216 | "@jest/types": "^24.7.0", | ||
1217 | "jest-mock": "^24.7.0" | ||
1218 | } | ||
1219 | }, | ||
1220 | "@jest/fake-timers": { | ||
1221 | "version": "24.7.1", | ||
1222 | "resolved": "https://registry.npmjs.org/@jest/fake-timers/-/fake-timers-24.7.1.tgz", | ||
1223 | "integrity": "sha512-4vSQJDKfR2jScOe12L9282uiwuwQv9Lk7mgrCSZHA9evB9efB/qx8i0KJxsAKtp8fgJYBJdYY7ZU6u3F4/pyjA==", | ||
1224 | "dev": true, | ||
1225 | "requires": { | ||
1226 | "@jest/types": "^24.7.0", | ||
1227 | "jest-message-util": "^24.7.1", | ||
1228 | "jest-mock": "^24.7.0" | ||
1229 | } | ||
1230 | }, | ||
1231 | "@jest/reporters": { | ||
1232 | "version": "24.7.1", | ||
1233 | "resolved": "https://registry.npmjs.org/@jest/reporters/-/reporters-24.7.1.tgz", | ||
1234 | "integrity": "sha512-bO+WYNwHLNhrjB9EbPL4kX/mCCG4ZhhfWmO3m4FSpbgr7N83MFejayz30kKjgqr7smLyeaRFCBQMbXpUgnhAJw==", | ||
1235 | "dev": true, | ||
1236 | "requires": { | ||
1237 | "@jest/environment": "^24.7.1", | ||
1238 | "@jest/test-result": "^24.7.1", | ||
1239 | "@jest/transform": "^24.7.1", | ||
1240 | "@jest/types": "^24.7.0", | ||
1241 | "chalk": "^2.0.1", | ||
1242 | "exit": "^0.1.2", | ||
1243 | "glob": "^7.1.2", | ||
1244 | "istanbul-api": "^2.1.1", | ||
1245 | "istanbul-lib-coverage": "^2.0.2", | ||
1246 | "istanbul-lib-instrument": "^3.0.1", | ||
1247 | "istanbul-lib-source-maps": "^3.0.1", | ||
1248 | "jest-haste-map": "^24.7.1", | ||
1249 | "jest-resolve": "^24.7.1", | ||
1250 | "jest-runtime": "^24.7.1", | ||
1251 | "jest-util": "^24.7.1", | ||
1252 | "jest-worker": "^24.6.0", | ||
1253 | "node-notifier": "^5.2.1", | ||
1254 | "slash": "^2.0.0", | ||
1255 | "source-map": "^0.6.0", | ||
1256 | "string-length": "^2.0.0" | ||
1257 | } | ||
1258 | }, | ||
1259 | "@jest/source-map": { | ||
1260 | "version": "24.3.0", | ||
1261 | "resolved": "https://registry.npmjs.org/@jest/source-map/-/source-map-24.3.0.tgz", | ||
1262 | "integrity": "sha512-zALZt1t2ou8le/crCeeiRYzvdnTzaIlpOWaet45lNSqNJUnXbppUUFR4ZUAlzgDmKee4Q5P/tKXypI1RiHwgag==", | ||
1263 | "dev": true, | ||
1264 | "requires": { | ||
1265 | "callsites": "^3.0.0", | ||
1266 | "graceful-fs": "^4.1.15", | ||
1267 | "source-map": "^0.6.0" | ||
1268 | }, | ||
1269 | "dependencies": { | ||
1270 | "callsites": { | ||
1271 | "version": "3.1.0", | ||
1272 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", | ||
1273 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", | ||
1274 | "dev": true | ||
1275 | } | ||
1276 | } | ||
1277 | }, | ||
1278 | "@jest/test-result": { | ||
1279 | "version": "24.7.1", | ||
1280 | "resolved": "https://registry.npmjs.org/@jest/test-result/-/test-result-24.7.1.tgz", | ||
1281 | "integrity": "sha512-3U7wITxstdEc2HMfBX7Yx3JZgiNBubwDqQMh+BXmZXHa3G13YWF3p6cK+5g0hGkN3iufg/vGPl3hLxQXD74Npg==", | ||
1282 | "dev": true, | ||
1283 | "requires": { | ||
1284 | "@jest/console": "^24.7.1", | ||
1285 | "@jest/types": "^24.7.0", | ||
1286 | "@types/istanbul-lib-coverage": "^2.0.0" | ||
1287 | } | ||
1288 | }, | ||
1289 | "@jest/test-sequencer": { | ||
1290 | "version": "24.7.1", | ||
1291 | "resolved": "https://registry.npmjs.org/@jest/test-sequencer/-/test-sequencer-24.7.1.tgz", | ||
1292 | "integrity": "sha512-84HQkCpVZI/G1zq53gHJvSmhUer4aMYp9tTaffW28Ih5OxfCg8hGr3nTSbL1OhVDRrFZwvF+/R9gY6JRkDUpUA==", | ||
1293 | "dev": true, | ||
1294 | "requires": { | ||
1295 | "@jest/test-result": "^24.7.1", | ||
1296 | "jest-haste-map": "^24.7.1", | ||
1297 | "jest-runner": "^24.7.1", | ||
1298 | "jest-runtime": "^24.7.1" | ||
1299 | } | ||
1300 | }, | ||
1301 | "@jest/transform": { | ||
1302 | "version": "24.7.1", | ||
1303 | "resolved": "https://registry.npmjs.org/@jest/transform/-/transform-24.7.1.tgz", | ||
1304 | "integrity": "sha512-EsOUqP9ULuJ66IkZQhI5LufCHlTbi7hrcllRMUEV/tOgqBVQi93+9qEvkX0n8mYpVXQ8VjwmICeRgg58mrtIEw==", | ||
1305 | "dev": true, | ||
1306 | "requires": { | ||
1307 | "@babel/core": "^7.1.0", | ||
1308 | "@jest/types": "^24.7.0", | ||
1309 | "babel-plugin-istanbul": "^5.1.0", | ||
1310 | "chalk": "^2.0.1", | ||
1311 | "convert-source-map": "^1.4.0", | ||
1312 | "fast-json-stable-stringify": "^2.0.0", | ||
1313 | "graceful-fs": "^4.1.15", | ||
1314 | "jest-haste-map": "^24.7.1", | ||
1315 | "jest-regex-util": "^24.3.0", | ||
1316 | "jest-util": "^24.7.1", | ||
1317 | "micromatch": "^3.1.10", | ||
1318 | "realpath-native": "^1.1.0", | ||
1319 | "slash": "^2.0.0", | ||
1320 | "source-map": "^0.6.1", | ||
1321 | "write-file-atomic": "2.4.1" | ||
1322 | }, | ||
1323 | "dependencies": { | ||
1324 | "write-file-atomic": { | ||
1325 | "version": "2.4.1", | ||
1326 | "resolved": "https://registry.npmjs.org/write-file-atomic/-/write-file-atomic-2.4.1.tgz", | ||
1327 | "integrity": "sha512-TGHFeZEZMnv+gBFRfjAcxL5bPHrsGKtnb4qsFAws7/vlh+QfwAaySIw4AXP9ZskTTh5GWu3FLuJhsWVdiJPGvg==", | ||
1328 | "dev": true, | ||
1329 | "requires": { | ||
1330 | "graceful-fs": "^4.1.11", | ||
1331 | "imurmurhash": "^0.1.4", | ||
1332 | "signal-exit": "^3.0.2" | ||
1333 | } | ||
1334 | } | ||
1335 | } | ||
1336 | }, | ||
1337 | "@jest/types": { | ||
1338 | "version": "24.7.0", | ||
1339 | "resolved": "https://registry.npmjs.org/@jest/types/-/types-24.7.0.tgz", | ||
1340 | "integrity": "sha512-ipJUa2rFWiKoBqMKP63Myb6h9+iT3FHRTF2M8OR6irxWzItisa8i4dcSg14IbvmXUnBlHBlUQPYUHWyX3UPpYA==", | ||
1341 | "dev": true, | ||
1342 | "requires": { | ||
1343 | "@types/istanbul-lib-coverage": "^2.0.0", | ||
1344 | "@types/yargs": "^12.0.9" | ||
1345 | } | ||
1346 | }, | ||
1126 | "@lerna/add": { | 1347 | "@lerna/add": { |
1127 | "version": "3.11.0", | 1348 | "version": "3.11.0", |
1128 | "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.11.0.tgz", | 1349 | "resolved": "https://registry.npmjs.org/@lerna/add/-/add-3.11.0.tgz", |
@@ -2054,6 +2275,47 @@ | |||
2054 | "url-template": "^2.0.8" | 2275 | "url-template": "^2.0.8" |
2055 | } | 2276 | } |
2056 | }, | 2277 | }, |
2278 | "@types/babel__core": { | ||
2279 | "version": "7.1.1", | ||
2280 | "resolved": "https://registry.npmjs.org/@types/babel__core/-/babel__core-7.1.1.tgz", | ||
2281 | "integrity": "sha512-+hjBtgcFPYyCTo0A15+nxrCVJL7aC6Acg87TXd5OW3QhHswdrOLoles+ldL2Uk8q++7yIfl4tURtztccdeeyOw==", | ||
2282 | "dev": true, | ||
2283 | "requires": { | ||
2284 | "@babel/parser": "^7.1.0", | ||
2285 | "@babel/types": "^7.0.0", | ||
2286 | "@types/babel__generator": "*", | ||
2287 | "@types/babel__template": "*", | ||
2288 | "@types/babel__traverse": "*" | ||
2289 | } | ||
2290 | }, | ||
2291 | "@types/babel__generator": { | ||
2292 | "version": "7.0.2", | ||
2293 | "resolved": "https://registry.npmjs.org/@types/babel__generator/-/babel__generator-7.0.2.tgz", | ||
2294 | "integrity": "sha512-NHcOfab3Zw4q5sEE2COkpfXjoE7o+PmqD9DQW4koUT3roNxwziUdXGnRndMat/LJNUtePwn1TlP4do3uoe3KZQ==", | ||
2295 | "dev": true, | ||
2296 | "requires": { | ||
2297 | "@babel/types": "^7.0.0" | ||
2298 | } | ||
2299 | }, | ||
2300 | "@types/babel__template": { | ||
2301 | "version": "7.0.2", | ||
2302 | "resolved": "https://registry.npmjs.org/@types/babel__template/-/babel__template-7.0.2.tgz", | ||
2303 | "integrity": "sha512-/K6zCpeW7Imzgab2bLkLEbz0+1JlFSrUMdw7KoIIu+IUdu51GWaBZpd3y1VXGVXzynvGa4DaIaxNZHiON3GXUg==", | ||
2304 | "dev": true, | ||
2305 | "requires": { | ||
2306 | "@babel/parser": "^7.1.0", | ||
2307 | "@babel/types": "^7.0.0" | ||
2308 | } | ||
2309 | }, | ||
2310 | "@types/babel__traverse": { | ||
2311 | "version": "7.0.6", | ||
2312 | "resolved": "https://registry.npmjs.org/@types/babel__traverse/-/babel__traverse-7.0.6.tgz", | ||
2313 | "integrity": "sha512-XYVgHF2sQ0YblLRMLNPB3CkFMewzFmlDsH/TneZFHUXDlABQgh88uOxuez7ZcXxayLFrqLwtDH1t+FmlFwNZxw==", | ||
2314 | "dev": true, | ||
2315 | "requires": { | ||
2316 | "@babel/types": "^7.3.0" | ||
2317 | } | ||
2318 | }, | ||
2057 | "@types/classnames": { | 2319 | "@types/classnames": { |
2058 | "version": "2.2.7", | 2320 | "version": "2.2.7", |
2059 | "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.7.tgz", | 2321 | "resolved": "https://registry.npmjs.org/@types/classnames/-/classnames-2.2.7.tgz", |
@@ -2084,6 +2346,12 @@ | |||
2084 | "integrity": "sha512-gZ/Rb+MFXF0pXSEQxdRoPMm5jeO3TycjOdvbpbcpHX/B+n9AqaHFe5q6Ga9CsZ7ir/UgIWPfrBzUzn3F19VH/w==", | 2346 | "integrity": "sha512-gZ/Rb+MFXF0pXSEQxdRoPMm5jeO3TycjOdvbpbcpHX/B+n9AqaHFe5q6Ga9CsZ7ir/UgIWPfrBzUzn3F19VH/w==", |
2085 | "dev": true | 2347 | "dev": true |
2086 | }, | 2348 | }, |
2349 | "@types/istanbul-lib-coverage": { | ||
2350 | "version": "2.0.0", | ||
2351 | "resolved": "https://registry.npmjs.org/@types/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.0.tgz", | ||
2352 | "integrity": "sha512-eAtOAFZefEnfJiRFQBGw1eYqa5GTLCZ1y86N0XSI/D6EB+E8z6VPV/UL7Gi5UEclFqoQk+6NRqEDsfmDLXn8sg==", | ||
2353 | "dev": true | ||
2354 | }, | ||
2087 | "@types/jss": { | 2355 | "@types/jss": { |
2088 | "version": "9.5.7", | 2356 | "version": "9.5.7", |
2089 | "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.7.tgz", | 2357 | "resolved": "https://registry.npmjs.org/@types/jss/-/jss-9.5.7.tgz", |
@@ -2143,6 +2411,12 @@ | |||
2143 | "csstype": "^2.0.0" | 2411 | "csstype": "^2.0.0" |
2144 | } | 2412 | } |
2145 | }, | 2413 | }, |
2414 | "@types/stack-utils": { | ||
2415 | "version": "1.0.1", | ||
2416 | "resolved": "https://registry.npmjs.org/@types/stack-utils/-/stack-utils-1.0.1.tgz", | ||
2417 | "integrity": "sha512-l42BggppR6zLmpfU6fq9HEa2oGPEI8yrSPL3GITjfRInppYFahObbIQOQK3UGxEnyQpltZLaPe75046NOZQikw==", | ||
2418 | "dev": true | ||
2419 | }, | ||
2146 | "@types/theming": { | 2420 | "@types/theming": { |
2147 | "version": "1.3.2", | 2421 | "version": "1.3.2", |
2148 | "resolved": "https://registry.npmjs.org/@types/theming/-/theming-1.3.2.tgz", | 2422 | "resolved": "https://registry.npmjs.org/@types/theming/-/theming-1.3.2.tgz", |
@@ -2161,6 +2435,12 @@ | |||
2161 | "@types/node": "*" | 2435 | "@types/node": "*" |
2162 | } | 2436 | } |
2163 | }, | 2437 | }, |
2438 | "@types/yargs": { | ||
2439 | "version": "12.0.12", | ||
2440 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-12.0.12.tgz", | ||
2441 | "integrity": "sha512-SOhuU4wNBxhhTHxYaiG5NY4HBhDIDnJF60GU+2LqHAdKKer86//e4yg69aENCtQ04n0ovz+tq2YPME5t5yp4pw==", | ||
2442 | "dev": true | ||
2443 | }, | ||
2164 | "@webassemblyjs/ast": { | 2444 | "@webassemblyjs/ast": { |
2165 | "version": "1.7.11", | 2445 | "version": "1.7.11", |
2166 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", | 2446 | "resolved": "https://registry.npmjs.org/@webassemblyjs/ast/-/ast-1.7.11.tgz", |
@@ -2355,6 +2635,12 @@ | |||
2355 | "through": ">=2.2.7 <3" | 2635 | "through": ">=2.2.7 <3" |
2356 | } | 2636 | } |
2357 | }, | 2637 | }, |
2638 | "abab": { | ||
2639 | "version": "2.0.0", | ||
2640 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.0.tgz", | ||
2641 | "integrity": "sha512-sY5AXXVZv4Y1VACTtR11UJCPHHudgY5i26Qj5TypE6DKlIApbwb5uqhXcJ5UUGbvZNRh7EeIoW+LrJumBsKp7w==", | ||
2642 | "dev": true | ||
2643 | }, | ||
2358 | "abbrev": { | 2644 | "abbrev": { |
2359 | "version": "1.1.1", | 2645 | "version": "1.1.1", |
2360 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", | 2646 | "resolved": "https://registry.npmjs.org/abbrev/-/abbrev-1.1.1.tgz", |
@@ -2402,12 +2688,28 @@ | |||
2402 | } | 2688 | } |
2403 | } | 2689 | } |
2404 | }, | 2690 | }, |
2691 | "acorn-globals": { | ||
2692 | "version": "4.3.1", | ||
2693 | "resolved": "https://registry.npmjs.org/acorn-globals/-/acorn-globals-4.3.1.tgz", | ||
2694 | "integrity": "sha512-gJSiKY8dBIjV/0jagZIFBdVMtfQyA5QHCvAT48H2q8REQoW8Fs5AOjqBql1LgSXgrMWdevcE+8cdZ33NtVbIBA==", | ||
2695 | "dev": true, | ||
2696 | "requires": { | ||
2697 | "acorn": "^6.0.1", | ||
2698 | "acorn-walk": "^6.0.1" | ||
2699 | } | ||
2700 | }, | ||
2405 | "acorn-jsx": { | 2701 | "acorn-jsx": { |
2406 | "version": "5.0.1", | 2702 | "version": "5.0.1", |
2407 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", | 2703 | "resolved": "https://registry.npmjs.org/acorn-jsx/-/acorn-jsx-5.0.1.tgz", |
2408 | "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", | 2704 | "integrity": "sha512-HJ7CfNHrfJLlNTzIEUTj43LNWGkqpRLxm3YjAlcD0ACydk9XynzYsCBHxut+iqt+1aBXkx9UP/w/ZqMr13XIzg==", |
2409 | "dev": true | 2705 | "dev": true |
2410 | }, | 2706 | }, |
2707 | "acorn-walk": { | ||
2708 | "version": "6.1.1", | ||
2709 | "resolved": "https://registry.npmjs.org/acorn-walk/-/acorn-walk-6.1.1.tgz", | ||
2710 | "integrity": "sha512-OtUw6JUTgxA2QoqqmrmQ7F2NYqiBPi/L2jqHyFtllhOUvXYQXf0Z1CYUinIfyT4bTCGmrA7gX9FvHA81uzCoVw==", | ||
2711 | "dev": true | ||
2712 | }, | ||
2411 | "add-stream": { | 2713 | "add-stream": { |
2412 | "version": "1.0.0", | 2714 | "version": "1.0.0", |
2413 | "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", | 2715 | "resolved": "https://registry.npmjs.org/add-stream/-/add-stream-1.0.0.tgz", |
@@ -2621,6 +2923,15 @@ | |||
2621 | "buffer-equal": "^1.0.0" | 2923 | "buffer-equal": "^1.0.0" |
2622 | } | 2924 | } |
2623 | }, | 2925 | }, |
2926 | "append-transform": { | ||
2927 | "version": "1.0.0", | ||
2928 | "resolved": "https://registry.npmjs.org/append-transform/-/append-transform-1.0.0.tgz", | ||
2929 | "integrity": "sha512-P009oYkeHyU742iSZJzZZywj4QRJdnTWffaKuJQLablCZ1uz6/cW4yaRgcDaoQ+uwOxxnt0gRUcwfsNP2ri0gw==", | ||
2930 | "dev": true, | ||
2931 | "requires": { | ||
2932 | "default-require-extensions": "^2.0.0" | ||
2933 | } | ||
2934 | }, | ||
2624 | "applescript": { | 2935 | "applescript": { |
2625 | "version": "1.0.0", | 2936 | "version": "1.0.0", |
2626 | "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz", | 2937 | "resolved": "https://registry.npmjs.org/applescript/-/applescript-1.0.0.tgz", |
@@ -2755,6 +3066,12 @@ | |||
2755 | "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", | 3066 | "integrity": "sha1-p5SvDAWrF1KEbudTofIRoFugxE8=", |
2756 | "dev": true | 3067 | "dev": true |
2757 | }, | 3068 | }, |
3069 | "array-equal": { | ||
3070 | "version": "1.0.0", | ||
3071 | "resolved": "https://registry.npmjs.org/array-equal/-/array-equal-1.0.0.tgz", | ||
3072 | "integrity": "sha1-jCpe8kcv2ep0KwTHenUJO6J1fJM=", | ||
3073 | "dev": true | ||
3074 | }, | ||
2758 | "array-find-index": { | 3075 | "array-find-index": { |
2759 | "version": "1.0.2", | 3076 | "version": "1.0.2", |
2760 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", | 3077 | "resolved": "https://registry.npmjs.org/array-find-index/-/array-find-index-1.0.2.tgz", |
@@ -2994,6 +3311,11 @@ | |||
2994 | "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", | 3311 | "integrity": "sha1-NhIfhFwFeBct5Bmpfb6x0W7DRUI=", |
2995 | "dev": true | 3312 | "dev": true |
2996 | }, | 3313 | }, |
3314 | "async-limiter": { | ||
3315 | "version": "1.0.0", | ||
3316 | "resolved": "https://registry.npmjs.org/async-limiter/-/async-limiter-1.0.0.tgz", | ||
3317 | "integrity": "sha512-jp/uFnooOiO+L211eZOoSyzpOITMXx1rBITauYykG3BRYPu8h0UcxsPNB04RR5vo4Tyz3+ay17tR6JVf9qzYWg==" | ||
3318 | }, | ||
2997 | "async-settle": { | 3319 | "async-settle": { |
2998 | "version": "1.0.0", | 3320 | "version": "1.0.0", |
2999 | "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", | 3321 | "resolved": "https://registry.npmjs.org/async-settle/-/async-settle-1.0.0.tgz", |
@@ -3128,6 +3450,21 @@ | |||
3128 | "eslint-visitor-keys": "^1.0.0" | 3450 | "eslint-visitor-keys": "^1.0.0" |
3129 | } | 3451 | } |
3130 | }, | 3452 | }, |
3453 | "babel-jest": { | ||
3454 | "version": "24.7.1", | ||
3455 | "resolved": "https://registry.npmjs.org/babel-jest/-/babel-jest-24.7.1.tgz", | ||
3456 | "integrity": "sha512-GPnLqfk8Mtt0i4OemjWkChi73A3ALs4w2/QbG64uAj8b5mmwzxc7jbJVRZt8NJkxi6FopVHog9S3xX6UJKb2qg==", | ||
3457 | "dev": true, | ||
3458 | "requires": { | ||
3459 | "@jest/transform": "^24.7.1", | ||
3460 | "@jest/types": "^24.7.0", | ||
3461 | "@types/babel__core": "^7.1.0", | ||
3462 | "babel-plugin-istanbul": "^5.1.0", | ||
3463 | "babel-preset-jest": "^24.6.0", | ||
3464 | "chalk": "^2.4.2", | ||
3465 | "slash": "^2.0.0" | ||
3466 | } | ||
3467 | }, | ||
3131 | "babel-loader": { | 3468 | "babel-loader": { |
3132 | "version": "8.0.5", | 3469 | "version": "8.0.5", |
3133 | "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", | 3470 | "resolved": "https://registry.npmjs.org/babel-loader/-/babel-loader-8.0.5.tgz", |
@@ -3162,6 +3499,26 @@ | |||
3162 | } | 3499 | } |
3163 | } | 3500 | } |
3164 | }, | 3501 | }, |
3502 | "babel-plugin-istanbul": { | ||
3503 | "version": "5.1.2", | ||
3504 | "resolved": "https://registry.npmjs.org/babel-plugin-istanbul/-/babel-plugin-istanbul-5.1.2.tgz", | ||
3505 | "integrity": "sha512-U3ZVajC+Z69Gim7ZzmD4Wcsq76i/1hqDamBfowc1tWzWjybRy70iWfngP2ME+1CrgcgZ/+muIbPY/Yi0dxdIkQ==", | ||
3506 | "dev": true, | ||
3507 | "requires": { | ||
3508 | "find-up": "^3.0.0", | ||
3509 | "istanbul-lib-instrument": "^3.2.0", | ||
3510 | "test-exclude": "^5.2.2" | ||
3511 | } | ||
3512 | }, | ||
3513 | "babel-plugin-jest-hoist": { | ||
3514 | "version": "24.6.0", | ||
3515 | "resolved": "https://registry.npmjs.org/babel-plugin-jest-hoist/-/babel-plugin-jest-hoist-24.6.0.tgz", | ||
3516 | "integrity": "sha512-3pKNH6hMt9SbOv0F3WVmy5CWQ4uogS3k0GY5XLyQHJ9EGpAT9XWkFd2ZiXXtkwFHdAHa5j7w7kfxSP5lAIwu7w==", | ||
3517 | "dev": true, | ||
3518 | "requires": { | ||
3519 | "@types/babel__traverse": "^7.0.6" | ||
3520 | } | ||
3521 | }, | ||
3165 | "babel-plugin-react-intl": { | 3522 | "babel-plugin-react-intl": { |
3166 | "version": "3.0.1", | 3523 | "version": "3.0.1", |
3167 | "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz", | 3524 | "resolved": "https://registry.npmjs.org/babel-plugin-react-intl/-/babel-plugin-react-intl-3.0.1.tgz", |
@@ -3173,6 +3530,16 @@ | |||
3173 | "mkdirp": "^0.5.1" | 3530 | "mkdirp": "^0.5.1" |
3174 | } | 3531 | } |
3175 | }, | 3532 | }, |
3533 | "babel-preset-jest": { | ||
3534 | "version": "24.6.0", | ||
3535 | "resolved": "https://registry.npmjs.org/babel-preset-jest/-/babel-preset-jest-24.6.0.tgz", | ||
3536 | "integrity": "sha512-pdZqLEdmy1ZK5kyRUfvBb2IfTPb2BUvIJczlPspS8fWmBQslNNDBqVfh7BW5leOVJMDZKzjD8XEyABTk6gQ5yw==", | ||
3537 | "dev": true, | ||
3538 | "requires": { | ||
3539 | "@babel/plugin-syntax-object-rest-spread": "^7.0.0", | ||
3540 | "babel-plugin-jest-hoist": "^24.6.0" | ||
3541 | } | ||
3542 | }, | ||
3176 | "babel-runtime": { | 3543 | "babel-runtime": { |
3177 | "version": "6.26.0", | 3544 | "version": "6.26.0", |
3178 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", | 3545 | "resolved": "https://registry.npmjs.org/babel-runtime/-/babel-runtime-6.26.0.tgz", |
@@ -3531,6 +3898,29 @@ | |||
3531 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", | 3898 | "integrity": "sha1-EsJe/kCkXjwyPrhnWgoM5XsiNx8=", |
3532 | "dev": true | 3899 | "dev": true |
3533 | }, | 3900 | }, |
3901 | "browser-process-hrtime": { | ||
3902 | "version": "0.1.3", | ||
3903 | "resolved": "https://registry.npmjs.org/browser-process-hrtime/-/browser-process-hrtime-0.1.3.tgz", | ||
3904 | "integrity": "sha512-bRFnI4NnjO6cnyLmOV/7PVoDEMJChlcfN0z4s1YMBY989/SvlfMI1lgCnkFUs53e9gQF+w7qu7XdllSTiSl8Aw==", | ||
3905 | "dev": true | ||
3906 | }, | ||
3907 | "browser-resolve": { | ||
3908 | "version": "1.11.3", | ||
3909 | "resolved": "https://registry.npmjs.org/browser-resolve/-/browser-resolve-1.11.3.tgz", | ||
3910 | "integrity": "sha512-exDi1BYWB/6raKHmDTCicQfTkqwN5fioMFV4j8BsfMU4R2DK/QfZfK7kOVkmWCNANf0snkBzqGqAJBao9gZMdQ==", | ||
3911 | "dev": true, | ||
3912 | "requires": { | ||
3913 | "resolve": "1.1.7" | ||
3914 | }, | ||
3915 | "dependencies": { | ||
3916 | "resolve": { | ||
3917 | "version": "1.1.7", | ||
3918 | "resolved": "https://registry.npmjs.org/resolve/-/resolve-1.1.7.tgz", | ||
3919 | "integrity": "sha1-IDEU2CrSxe2ejgQRs5ModeiJ6Xs=", | ||
3920 | "dev": true | ||
3921 | } | ||
3922 | } | ||
3923 | }, | ||
3534 | "browser-stdout": { | 3924 | "browser-stdout": { |
3535 | "version": "1.3.1", | 3925 | "version": "1.3.1", |
3536 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", | 3926 | "resolved": "https://registry.npmjs.org/browser-stdout/-/browser-stdout-1.3.1.tgz", |
@@ -3619,6 +4009,15 @@ | |||
3619 | "node-releases": "^1.1.3" | 4009 | "node-releases": "^1.1.3" |
3620 | } | 4010 | } |
3621 | }, | 4011 | }, |
4012 | "bser": { | ||
4013 | "version": "2.0.0", | ||
4014 | "resolved": "https://registry.npmjs.org/bser/-/bser-2.0.0.tgz", | ||
4015 | "integrity": "sha1-mseNPtXZFYBP2HrLFYvHlxR6Fxk=", | ||
4016 | "dev": true, | ||
4017 | "requires": { | ||
4018 | "node-int64": "^0.4.0" | ||
4019 | } | ||
4020 | }, | ||
3622 | "btoa-lite": { | 4021 | "btoa-lite": { |
3623 | "version": "1.0.0", | 4022 | "version": "1.0.0", |
3624 | "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", | 4023 | "resolved": "https://registry.npmjs.org/btoa-lite/-/btoa-lite-1.0.0.tgz", |
@@ -3925,6 +4324,15 @@ | |||
3925 | "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", | 4324 | "integrity": "sha512-ekW8NQ3/FvokviDxhdKLZZAx7PptXNwxKgXtnR5y+PR3hckwuP3yJ1Ir+4/c97dsHNqtAyfKUGdw8P4EYzBNgw==", |
3926 | "dev": true | 4325 | "dev": true |
3927 | }, | 4326 | }, |
4327 | "capture-exit": { | ||
4328 | "version": "2.0.0", | ||
4329 | "resolved": "https://registry.npmjs.org/capture-exit/-/capture-exit-2.0.0.tgz", | ||
4330 | "integrity": "sha512-PiT/hQmTonHhl/HFGN+Lx3JJUznrVYJ3+AQsnthneZbvW7x+f08Tk7yLJTLEOUvBTbduLeeBkxEaYXUOUrRq6g==", | ||
4331 | "dev": true, | ||
4332 | "requires": { | ||
4333 | "rsvp": "^4.8.4" | ||
4334 | } | ||
4335 | }, | ||
3928 | "capture-stack-trace": { | 4336 | "capture-stack-trace": { |
3929 | "version": "1.0.1", | 4337 | "version": "1.0.1", |
3930 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", | 4338 | "resolved": "https://registry.npmjs.org/capture-stack-trace/-/capture-stack-trace-1.0.1.tgz", |
@@ -4211,6 +4619,12 @@ | |||
4211 | "mkdirp": "~0.5.0" | 4619 | "mkdirp": "~0.5.0" |
4212 | } | 4620 | } |
4213 | }, | 4621 | }, |
4622 | "co": { | ||
4623 | "version": "4.6.0", | ||
4624 | "resolved": "https://registry.npmjs.org/co/-/co-4.6.0.tgz", | ||
4625 | "integrity": "sha1-bqa989hTrlTMuOR7+gvz+QMfsYQ=", | ||
4626 | "dev": true | ||
4627 | }, | ||
4214 | "code-point-at": { | 4628 | "code-point-at": { |
4215 | "version": "1.1.0", | 4629 | "version": "1.1.0", |
4216 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", | 4630 | "resolved": "https://registry.npmjs.org/code-point-at/-/code-point-at-1.1.0.tgz", |
@@ -4345,6 +4759,12 @@ | |||
4345 | "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", | 4759 | "integrity": "sha1-AWLsLZNR9d3VmpICy6k1NmpyUIA=", |
4346 | "dev": true | 4760 | "dev": true |
4347 | }, | 4761 | }, |
4762 | "compare-versions": { | ||
4763 | "version": "3.4.0", | ||
4764 | "resolved": "https://registry.npmjs.org/compare-versions/-/compare-versions-3.4.0.tgz", | ||
4765 | "integrity": "sha512-tK69D7oNXXqUW3ZNo/z7NXTEz22TCF0pTE+YF9cxvaAM9XnkLo1fV621xCLrRR6aevJlKxExkss0vWqUCUpqdg==", | ||
4766 | "dev": true | ||
4767 | }, | ||
4348 | "component-bind": { | 4768 | "component-bind": { |
4349 | "version": "1.0.0", | 4769 | "version": "1.0.0", |
4350 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", | 4770 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", |
@@ -5105,6 +5525,21 @@ | |||
5105 | "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", | 5525 | "integrity": "sha512-wan8dMWQ0GUeF7DGEPVjhHemVW/vy6xUYmFzRY8RYqgA0JtXC9rJmbScBjqSu6dg9q0lwPQy6ZAmJVr3PPTvqQ==", |
5106 | "dev": true | 5526 | "dev": true |
5107 | }, | 5527 | }, |
5528 | "cssom": { | ||
5529 | "version": "0.3.6", | ||
5530 | "resolved": "https://registry.npmjs.org/cssom/-/cssom-0.3.6.tgz", | ||
5531 | "integrity": "sha512-DtUeseGk9/GBW0hl0vVPpU22iHL6YB5BUX7ml1hB+GMpo0NX5G4voX3kdWiMSEguFtcW3Vh3djqNF4aIe6ne0A==", | ||
5532 | "dev": true | ||
5533 | }, | ||
5534 | "cssstyle": { | ||
5535 | "version": "1.2.2", | ||
5536 | "resolved": "https://registry.npmjs.org/cssstyle/-/cssstyle-1.2.2.tgz", | ||
5537 | "integrity": "sha512-43wY3kl1CVQSvL7wUY1qXkxVGkStjpkDmVjiIKX8R97uhajy8Bybay78uOtqvh7Q5GK75dNPfW0geWjE6qQQow==", | ||
5538 | "dev": true, | ||
5539 | "requires": { | ||
5540 | "cssom": "0.3.x" | ||
5541 | } | ||
5542 | }, | ||
5108 | "csstype": { | 5543 | "csstype": { |
5109 | "version": "2.6.2", | 5544 | "version": "2.6.2", |
5110 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz", | 5545 | "resolved": "https://registry.npmjs.org/csstype/-/csstype-2.6.2.tgz", |
@@ -5172,6 +5607,17 @@ | |||
5172 | "assert-plus": "^1.0.0" | 5607 | "assert-plus": "^1.0.0" |
5173 | } | 5608 | } |
5174 | }, | 5609 | }, |
5610 | "data-urls": { | ||
5611 | "version": "1.1.0", | ||
5612 | "resolved": "https://registry.npmjs.org/data-urls/-/data-urls-1.1.0.tgz", | ||
5613 | "integrity": "sha512-YTWYI9se1P55u58gL5GkQHW4P6VJBJ5iBT+B5a7i2Tjadhv52paJG0qHX4A0OR6/t52odI64KP2YvFpkDOi3eQ==", | ||
5614 | "dev": true, | ||
5615 | "requires": { | ||
5616 | "abab": "^2.0.0", | ||
5617 | "whatwg-mimetype": "^2.2.0", | ||
5618 | "whatwg-url": "^7.0.0" | ||
5619 | } | ||
5620 | }, | ||
5175 | "date-fns": { | 5621 | "date-fns": { |
5176 | "version": "1.30.1", | 5622 | "version": "1.30.1", |
5177 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", | 5623 | "resolved": "https://registry.npmjs.org/date-fns/-/date-fns-1.30.1.tgz", |
@@ -5322,6 +5768,15 @@ | |||
5322 | } | 5768 | } |
5323 | } | 5769 | } |
5324 | }, | 5770 | }, |
5771 | "default-require-extensions": { | ||
5772 | "version": "2.0.0", | ||
5773 | "resolved": "https://registry.npmjs.org/default-require-extensions/-/default-require-extensions-2.0.0.tgz", | ||
5774 | "integrity": "sha1-9fj7sYp9bVCyH2QfZJ67Uiz+JPc=", | ||
5775 | "dev": true, | ||
5776 | "requires": { | ||
5777 | "strip-bom": "^3.0.0" | ||
5778 | } | ||
5779 | }, | ||
5325 | "default-resolution": { | 5780 | "default-resolution": { |
5326 | "version": "2.0.0", | 5781 | "version": "2.0.0", |
5327 | "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", | 5782 | "resolved": "https://registry.npmjs.org/default-resolution/-/default-resolution-2.0.0.tgz", |
@@ -5476,6 +5931,12 @@ | |||
5476 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", | 5931 | "integrity": "sha1-+hN8S9aY7fVc1c0CrFWfkaTEups=", |
5477 | "dev": true | 5932 | "dev": true |
5478 | }, | 5933 | }, |
5934 | "detect-newline": { | ||
5935 | "version": "2.1.0", | ||
5936 | "resolved": "https://registry.npmjs.org/detect-newline/-/detect-newline-2.1.0.tgz", | ||
5937 | "integrity": "sha1-9B8cEL5LAOh7XxPaaAdZ8sW/0+I=", | ||
5938 | "dev": true | ||
5939 | }, | ||
5479 | "detect-node": { | 5940 | "detect-node": { |
5480 | "version": "2.0.4", | 5941 | "version": "2.0.4", |
5481 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", | 5942 | "resolved": "https://registry.npmjs.org/detect-node/-/detect-node-2.0.4.tgz", |
@@ -5498,6 +5959,12 @@ | |||
5498 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", | 5959 | "integrity": "sha512-A46qtFgd+g7pDZinpnwiRJtxbC1hpgf0uzP3iG89scHk0AUC7A1TGxf5OiiOUv/JMZR8GOt8hL900hV0bOy5xA==", |
5499 | "dev": true | 5960 | "dev": true |
5500 | }, | 5961 | }, |
5962 | "diff-sequences": { | ||
5963 | "version": "24.3.0", | ||
5964 | "resolved": "https://registry.npmjs.org/diff-sequences/-/diff-sequences-24.3.0.tgz", | ||
5965 | "integrity": "sha512-xLqpez+Zj9GKSnPWS0WZw1igGocZ+uua8+y+5dDNTT934N3QuY1sp2LkHzwiaYQGz60hMq0pjAshdeXm5VUOEw==", | ||
5966 | "dev": true | ||
5967 | }, | ||
5501 | "diffie-hellman": { | 5968 | "diffie-hellman": { |
5502 | "version": "5.0.3", | 5969 | "version": "5.0.3", |
5503 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", | 5970 | "resolved": "https://registry.npmjs.org/diffie-hellman/-/diffie-hellman-5.0.3.tgz", |
@@ -5613,6 +6080,15 @@ | |||
5613 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", | 6080 | "resolved": "https://registry.npmjs.org/domelementtype/-/domelementtype-1.3.1.tgz", |
5614 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" | 6081 | "integrity": "sha512-BSKB+TSpMpFI/HOxCNr1O8aMOTZ8hT3pM3GQ0w/mWRmkhEDSFJkkyzz4XQsBV44BChwGkrDfMyjVD0eA2aFV3w==" |
5615 | }, | 6082 | }, |
6083 | "domexception": { | ||
6084 | "version": "1.0.1", | ||
6085 | "resolved": "https://registry.npmjs.org/domexception/-/domexception-1.0.1.tgz", | ||
6086 | "integrity": "sha512-raigMkn7CJNNo6Ihro1fzG7wr3fHuYVytzquZKX5n0yizGsTcYgzdIUwj1X9pK0VvjeihV+XiclP+DjwbsSKug==", | ||
6087 | "dev": true, | ||
6088 | "requires": { | ||
6089 | "webidl-conversions": "^4.0.2" | ||
6090 | } | ||
6091 | }, | ||
5616 | "domhandler": { | 6092 | "domhandler": { |
5617 | "version": "2.4.2", | 6093 | "version": "2.4.2", |
5618 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", | 6094 | "resolved": "https://registry.npmjs.org/domhandler/-/domhandler-2.4.2.tgz", |
@@ -6191,9 +6667,9 @@ | |||
6191 | "dev": true | 6667 | "dev": true |
6192 | }, | 6668 | }, |
6193 | "electron": { | 6669 | "electron": { |
6194 | "version": "4.0.8", | 6670 | "version": "4.1.4", |
6195 | "resolved": "https://registry.npmjs.org/electron/-/electron-4.0.8.tgz", | 6671 | "resolved": "https://registry.npmjs.org/electron/-/electron-4.1.4.tgz", |
6196 | "integrity": "sha512-FOBJIHkuv8wc15N+ZyqwDzPavYVu5CHMBEf14jHDWv7QW2vkEIpJjVK+PIT31kfZfvjsIP0j2wvA/FBsiqB7pw==", | 6672 | "integrity": "sha512-MelOjntJvd33izEjR6H4N/Uii7y535z/b2BuYXJGLNSHL6o1IlyhUQmfiT87kWABayERgeuYERgvsyf956OOFw==", |
6197 | "dev": true, | 6673 | "dev": true, |
6198 | "requires": { | 6674 | "requires": { |
6199 | "@types/node": "^10.12.18", | 6675 | "@types/node": "^10.12.18", |
@@ -6202,9 +6678,9 @@ | |||
6202 | }, | 6678 | }, |
6203 | "dependencies": { | 6679 | "dependencies": { |
6204 | "@types/node": { | 6680 | "@types/node": { |
6205 | "version": "10.12.30", | 6681 | "version": "10.14.4", |
6206 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.12.30.tgz", | 6682 | "resolved": "https://registry.npmjs.org/@types/node/-/node-10.14.4.tgz", |
6207 | "integrity": "sha512-nsqTN6zUcm9xtdJiM9OvOJ5EF0kOI8f1Zuug27O/rgtxCRJHGqncSWfCMZUP852dCKPsDsYXGvBhxfRjDBkF5Q==", | 6683 | "integrity": "sha512-DT25xX/YgyPKiHFOpNuANIQIVvYEwCWXgK2jYYwqgaMrYE6+tq+DtmMwlD3drl6DJbUwtlIDnn0d7tIn/EbXBg==", |
6208 | "dev": true | 6684 | "dev": true |
6209 | } | 6685 | } |
6210 | } | 6686 | } |
@@ -6543,6 +7019,16 @@ | |||
6543 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", | 7019 | "resolved": "https://registry.npmjs.org/negotiator/-/negotiator-0.6.1.tgz", |
6544 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", | 7020 | "integrity": "sha1-KzJxhOiZIQEXeyhWP7XnECrNDKk=", |
6545 | "dev": true | 7021 | "dev": true |
7022 | }, | ||
7023 | "ws": { | ||
7024 | "version": "1.1.5", | ||
7025 | "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", | ||
7026 | "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", | ||
7027 | "dev": true, | ||
7028 | "requires": { | ||
7029 | "options": ">=0.0.5", | ||
7030 | "ultron": "1.0.x" | ||
7031 | } | ||
6546 | } | 7032 | } |
6547 | } | 7033 | } |
6548 | }, | 7034 | }, |
@@ -6580,6 +7066,16 @@ | |||
6580 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", | 7066 | "resolved": "https://registry.npmjs.org/ms/-/ms-0.7.2.tgz", |
6581 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", | 7067 | "integrity": "sha1-riXPJRKziFodldfwN4aNhDESR2U=", |
6582 | "dev": true | 7068 | "dev": true |
7069 | }, | ||
7070 | "ws": { | ||
7071 | "version": "1.1.5", | ||
7072 | "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", | ||
7073 | "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", | ||
7074 | "dev": true, | ||
7075 | "requires": { | ||
7076 | "options": ">=0.0.5", | ||
7077 | "ultron": "1.0.x" | ||
7078 | } | ||
6583 | } | 7079 | } |
6584 | } | 7080 | } |
6585 | }, | 7081 | }, |
@@ -6747,6 +7243,27 @@ | |||
6747 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", | 7243 | "integrity": "sha1-G2HAViGQqN/2rjuyzwIAyhMLhtQ=", |
6748 | "dev": true | 7244 | "dev": true |
6749 | }, | 7245 | }, |
7246 | "escodegen": { | ||
7247 | "version": "1.11.1", | ||
7248 | "resolved": "https://registry.npmjs.org/escodegen/-/escodegen-1.11.1.tgz", | ||
7249 | "integrity": "sha512-JwiqFD9KdGVVpeuRa68yU3zZnBEOcPs0nKW7wZzXky8Z7tffdYUHbe11bPCV5jYlK6DVdKLWLm0f5I/QlL0Kmw==", | ||
7250 | "dev": true, | ||
7251 | "requires": { | ||
7252 | "esprima": "^3.1.3", | ||
7253 | "estraverse": "^4.2.0", | ||
7254 | "esutils": "^2.0.2", | ||
7255 | "optionator": "^0.8.1", | ||
7256 | "source-map": "~0.6.1" | ||
7257 | }, | ||
7258 | "dependencies": { | ||
7259 | "esprima": { | ||
7260 | "version": "3.1.3", | ||
7261 | "resolved": "https://registry.npmjs.org/esprima/-/esprima-3.1.3.tgz", | ||
7262 | "integrity": "sha1-/cpRzuYTOJXjyI1TXOSdv/YqRjM=", | ||
7263 | "dev": true | ||
7264 | } | ||
7265 | } | ||
7266 | }, | ||
6750 | "eslint": { | 7267 | "eslint": { |
6751 | "version": "5.10.0", | 7268 | "version": "5.10.0", |
6752 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.10.0.tgz", | 7269 | "resolved": "https://registry.npmjs.org/eslint/-/eslint-5.10.0.tgz", |
@@ -7013,6 +7530,12 @@ | |||
7013 | } | 7530 | } |
7014 | } | 7531 | } |
7015 | }, | 7532 | }, |
7533 | "eslint-plugin-jest": { | ||
7534 | "version": "22.4.1", | ||
7535 | "resolved": "https://registry.npmjs.org/eslint-plugin-jest/-/eslint-plugin-jest-22.4.1.tgz", | ||
7536 | "integrity": "sha512-gcLfn6P2PrFAVx3AobaOzlIEevpAEf9chTpFZz7bYfc7pz8XRv7vuKTIE4hxPKZSha6XWKKplDQ0x9Pq8xX2mg==", | ||
7537 | "dev": true | ||
7538 | }, | ||
7016 | "eslint-plugin-jsx-a11y": { | 7539 | "eslint-plugin-jsx-a11y": { |
7017 | "version": "6.1.2", | 7540 | "version": "6.1.2", |
7018 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", | 7541 | "resolved": "https://registry.npmjs.org/eslint-plugin-jsx-a11y/-/eslint-plugin-jsx-a11y-6.1.2.tgz", |
@@ -7160,6 +7683,12 @@ | |||
7160 | "safe-buffer": "^5.1.1" | 7683 | "safe-buffer": "^5.1.1" |
7161 | } | 7684 | } |
7162 | }, | 7685 | }, |
7686 | "exec-sh": { | ||
7687 | "version": "0.3.2", | ||
7688 | "resolved": "https://registry.npmjs.org/exec-sh/-/exec-sh-0.3.2.tgz", | ||
7689 | "integrity": "sha512-9sLAvzhI5nc8TpuQUh4ahMdCrWT00wPWz7j47/emR5+2qEfoZP5zzUXvx+vdx+H6ohhnsYC31iX04QLYJK8zTg==", | ||
7690 | "dev": true | ||
7691 | }, | ||
7163 | "execa": { | 7692 | "execa": { |
7164 | "version": "1.0.0", | 7693 | "version": "1.0.0", |
7165 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", | 7694 | "resolved": "https://registry.npmjs.org/execa/-/execa-1.0.0.tgz", |
@@ -7180,6 +7709,12 @@ | |||
7180 | "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", | 7709 | "resolved": "https://registry.npmjs.org/exenv/-/exenv-1.2.2.tgz", |
7181 | "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" | 7710 | "integrity": "sha1-KueOhdmJQVhnCwPUe+wfA72Ru50=" |
7182 | }, | 7711 | }, |
7712 | "exit": { | ||
7713 | "version": "0.1.2", | ||
7714 | "resolved": "https://registry.npmjs.org/exit/-/exit-0.1.2.tgz", | ||
7715 | "integrity": "sha1-BjJjj42HfMghB9MKD/8aF8uhzQw=", | ||
7716 | "dev": true | ||
7717 | }, | ||
7183 | "expand-brackets": { | 7718 | "expand-brackets": { |
7184 | "version": "2.1.4", | 7719 | "version": "2.1.4", |
7185 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", | 7720 | "resolved": "https://registry.npmjs.org/expand-brackets/-/expand-brackets-2.1.4.tgz", |
@@ -7310,6 +7845,20 @@ | |||
7310 | "homedir-polyfill": "^1.0.1" | 7845 | "homedir-polyfill": "^1.0.1" |
7311 | } | 7846 | } |
7312 | }, | 7847 | }, |
7848 | "expect": { | ||
7849 | "version": "24.7.1", | ||
7850 | "resolved": "https://registry.npmjs.org/expect/-/expect-24.7.1.tgz", | ||
7851 | "integrity": "sha512-mGfvMTPduksV3xoI0xur56pQsg2vJjNf5+a+bXOjqCkiCBbmCayrBbHS/75y9K430cfqyocPr2ZjiNiRx4SRKw==", | ||
7852 | "dev": true, | ||
7853 | "requires": { | ||
7854 | "@jest/types": "^24.7.0", | ||
7855 | "ansi-styles": "^3.2.0", | ||
7856 | "jest-get-type": "^24.3.0", | ||
7857 | "jest-matcher-utils": "^24.7.0", | ||
7858 | "jest-message-util": "^24.7.1", | ||
7859 | "jest-regex-util": "^24.3.0" | ||
7860 | } | ||
7861 | }, | ||
7313 | "expect.js": { | 7862 | "expect.js": { |
7314 | "version": "0.3.1", | 7863 | "version": "0.3.1", |
7315 | "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", | 7864 | "resolved": "https://registry.npmjs.org/expect.js/-/expect.js-0.3.1.tgz", |
@@ -7691,6 +8240,15 @@ | |||
7691 | "websocket-driver": ">=0.5.1" | 8240 | "websocket-driver": ">=0.5.1" |
7692 | } | 8241 | } |
7693 | }, | 8242 | }, |
8243 | "fb-watchman": { | ||
8244 | "version": "2.0.0", | ||
8245 | "resolved": "https://registry.npmjs.org/fb-watchman/-/fb-watchman-2.0.0.tgz", | ||
8246 | "integrity": "sha1-VOmr99+i8mzZsWNsWIwa/AXeXVg=", | ||
8247 | "dev": true, | ||
8248 | "requires": { | ||
8249 | "bser": "^2.0.0" | ||
8250 | } | ||
8251 | }, | ||
7694 | "fbjs": { | 8252 | "fbjs": { |
7695 | "version": "0.8.17", | 8253 | "version": "0.8.17", |
7696 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", | 8254 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", |
@@ -7757,6 +8315,16 @@ | |||
7757 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", | 8315 | "integrity": "sha1-wcS5vuPglyXdsQa3XB4wH+LxiyY=", |
7758 | "dev": true | 8316 | "dev": true |
7759 | }, | 8317 | }, |
8318 | "fileset": { | ||
8319 | "version": "2.0.3", | ||
8320 | "resolved": "https://registry.npmjs.org/fileset/-/fileset-2.0.3.tgz", | ||
8321 | "integrity": "sha1-jnVIqW08wjJ+5eZ0FocjozO7oqA=", | ||
8322 | "dev": true, | ||
8323 | "requires": { | ||
8324 | "glob": "^7.0.3", | ||
8325 | "minimatch": "^3.0.3" | ||
8326 | } | ||
8327 | }, | ||
7760 | "fill-range": { | 8328 | "fill-range": { |
7761 | "version": "4.0.0", | 8329 | "version": "4.0.0", |
7762 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", | 8330 | "resolved": "https://registry.npmjs.org/fill-range/-/fill-range-4.0.0.tgz", |
@@ -8979,6 +9547,12 @@ | |||
8979 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", | 9547 | "integrity": "sha512-qBr4OuELkhPenW6goKVXiv47US3clb3/IbuWF9KNKEijAy9oeHxU9IgzjvJhHkUzhaj7rOUD7+YGWqUjLp5oSA==", |
8980 | "dev": true | 9548 | "dev": true |
8981 | }, | 9549 | }, |
9550 | "growly": { | ||
9551 | "version": "1.3.0", | ||
9552 | "resolved": "https://registry.npmjs.org/growly/-/growly-1.3.0.tgz", | ||
9553 | "integrity": "sha1-8QdIy+dq+WS3yWyTxrzCivEgwIE=", | ||
9554 | "dev": true | ||
9555 | }, | ||
8982 | "gulp": { | 9556 | "gulp": { |
8983 | "version": "4.0.0", | 9557 | "version": "4.0.0", |
8984 | "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", | 9558 | "resolved": "https://registry.npmjs.org/gulp/-/gulp-4.0.0.tgz", |
@@ -10283,6 +10857,15 @@ | |||
10283 | "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz", | 10857 | "resolved": "https://registry.npmjs.org/html-element-attributes/-/html-element-attributes-1.3.1.tgz", |
10284 | "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==" | 10858 | "integrity": "sha512-UrRKgp5sQmRnDy4TEwAUsu14XBUlzKB8U3hjIYDjcZ3Hbp86Jtftzxfgrv6E/ii/h78tsaZwAnAE8HwnHr0dPA==" |
10285 | }, | 10859 | }, |
10860 | "html-encoding-sniffer": { | ||
10861 | "version": "1.0.2", | ||
10862 | "resolved": "https://registry.npmjs.org/html-encoding-sniffer/-/html-encoding-sniffer-1.0.2.tgz", | ||
10863 | "integrity": "sha512-71lZziiDnsuabfdYiUeWdCVyKuqwWi23L8YeIgV9jSSZHCtb6wB1BKWooH7L3tn4/FuZJMVWyNaIDr4RGmaSYw==", | ||
10864 | "dev": true, | ||
10865 | "requires": { | ||
10866 | "whatwg-encoding": "^1.0.1" | ||
10867 | } | ||
10868 | }, | ||
10286 | "html-entities": { | 10869 | "html-entities": { |
10287 | "version": "1.2.1", | 10870 | "version": "1.2.1", |
10288 | "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", | 10871 | "resolved": "https://registry.npmjs.org/html-entities/-/html-entities-1.2.1.tgz", |
@@ -10967,6 +11550,12 @@ | |||
10967 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", | 11550 | "resolved": "https://registry.npmjs.org/is-function/-/is-function-1.0.1.tgz", |
10968 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" | 11551 | "integrity": "sha1-Es+5i2W1fdPRk6MSH19uL0N2ArU=" |
10969 | }, | 11552 | }, |
11553 | "is-generator-fn": { | ||
11554 | "version": "2.1.0", | ||
11555 | "resolved": "https://registry.npmjs.org/is-generator-fn/-/is-generator-fn-2.1.0.tgz", | ||
11556 | "integrity": "sha512-cTIB4yPYL/Grw0EaSzASzg6bBy9gqCofvWN8okThAYIxKJZC+udlRAmGbM0XLeniEJSs8uEgHPGuHSe1XsOLSQ==", | ||
11557 | "dev": true | ||
11558 | }, | ||
10970 | "is-glob": { | 11559 | "is-glob": { |
10971 | "version": "4.0.0", | 11560 | "version": "4.0.0", |
10972 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", | 11561 | "resolved": "https://registry.npmjs.org/is-glob/-/is-glob-4.0.0.tgz", |
@@ -11231,6 +11820,665 @@ | |||
11231 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", | 11820 | "integrity": "sha1-R+Y/evVa+m+S4VAOaQ64uFKcCZo=", |
11232 | "dev": true | 11821 | "dev": true |
11233 | }, | 11822 | }, |
11823 | "istanbul-api": { | ||
11824 | "version": "2.1.4", | ||
11825 | "resolved": "https://registry.npmjs.org/istanbul-api/-/istanbul-api-2.1.4.tgz", | ||
11826 | "integrity": "sha512-aAFQL0HA2BLUl18XmTQ7H7CGKI58DtZFvvfmg6e+rA3iNFergvpi16czLV4CpI7HOImMeZ5mqI62dvSNVtUQVA==", | ||
11827 | "dev": true, | ||
11828 | "requires": { | ||
11829 | "async": "^2.6.1", | ||
11830 | "compare-versions": "^3.2.1", | ||
11831 | "fileset": "^2.0.3", | ||
11832 | "istanbul-lib-coverage": "^2.0.4", | ||
11833 | "istanbul-lib-hook": "^2.0.6", | ||
11834 | "istanbul-lib-instrument": "^3.2.0", | ||
11835 | "istanbul-lib-report": "^2.0.7", | ||
11836 | "istanbul-lib-source-maps": "^3.0.5", | ||
11837 | "istanbul-reports": "^2.2.2", | ||
11838 | "js-yaml": "^3.13.0", | ||
11839 | "make-dir": "^2.1.0", | ||
11840 | "minimatch": "^3.0.4", | ||
11841 | "once": "^1.4.0" | ||
11842 | }, | ||
11843 | "dependencies": { | ||
11844 | "async": { | ||
11845 | "version": "2.6.2", | ||
11846 | "resolved": "https://registry.npmjs.org/async/-/async-2.6.2.tgz", | ||
11847 | "integrity": "sha512-H1qVYh1MYhEEFLsP97cVKqCGo7KfCyTt6uEWqsTBr9SO84oK9Uwbyd/yCW+6rKJLHksBNUVWZDAjfS+Ccx0Bbg==", | ||
11848 | "dev": true, | ||
11849 | "requires": { | ||
11850 | "lodash": "^4.17.11" | ||
11851 | } | ||
11852 | }, | ||
11853 | "js-yaml": { | ||
11854 | "version": "3.13.1", | ||
11855 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", | ||
11856 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", | ||
11857 | "dev": true, | ||
11858 | "requires": { | ||
11859 | "argparse": "^1.0.7", | ||
11860 | "esprima": "^4.0.0" | ||
11861 | } | ||
11862 | }, | ||
11863 | "make-dir": { | ||
11864 | "version": "2.1.0", | ||
11865 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", | ||
11866 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", | ||
11867 | "dev": true, | ||
11868 | "requires": { | ||
11869 | "pify": "^4.0.1", | ||
11870 | "semver": "^5.6.0" | ||
11871 | } | ||
11872 | }, | ||
11873 | "pify": { | ||
11874 | "version": "4.0.1", | ||
11875 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | ||
11876 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", | ||
11877 | "dev": true | ||
11878 | } | ||
11879 | } | ||
11880 | }, | ||
11881 | "istanbul-lib-coverage": { | ||
11882 | "version": "2.0.4", | ||
11883 | "resolved": "https://registry.npmjs.org/istanbul-lib-coverage/-/istanbul-lib-coverage-2.0.4.tgz", | ||
11884 | "integrity": "sha512-LXTBICkMARVgo579kWDm8SqfB6nvSDKNqIOBEjmJRnL04JvoMHCYGWaMddQnseJYtkEuEvO/sIcOxPLk9gERug==", | ||
11885 | "dev": true | ||
11886 | }, | ||
11887 | "istanbul-lib-hook": { | ||
11888 | "version": "2.0.6", | ||
11889 | "resolved": "https://registry.npmjs.org/istanbul-lib-hook/-/istanbul-lib-hook-2.0.6.tgz", | ||
11890 | "integrity": "sha512-829DKONApZ7UCiPXcOYWSgkFXa4+vNYoNOt3F+4uDJLKL1OotAoVwvThoEj1i8jmOj7odbYcR3rnaHu+QroaXg==", | ||
11891 | "dev": true, | ||
11892 | "requires": { | ||
11893 | "append-transform": "^1.0.0" | ||
11894 | } | ||
11895 | }, | ||
11896 | "istanbul-lib-instrument": { | ||
11897 | "version": "3.2.0", | ||
11898 | "resolved": "https://registry.npmjs.org/istanbul-lib-instrument/-/istanbul-lib-instrument-3.2.0.tgz", | ||
11899 | "integrity": "sha512-06IM3xShbNW4NgZv5AP4QH0oHqf1/ivFo8eFys0ZjPXHGldHJQWb3riYOKXqmOqfxXBfxu4B+g/iuhOPZH0RJg==", | ||
11900 | "dev": true, | ||
11901 | "requires": { | ||
11902 | "@babel/generator": "^7.0.0", | ||
11903 | "@babel/parser": "^7.0.0", | ||
11904 | "@babel/template": "^7.0.0", | ||
11905 | "@babel/traverse": "^7.0.0", | ||
11906 | "@babel/types": "^7.0.0", | ||
11907 | "istanbul-lib-coverage": "^2.0.4", | ||
11908 | "semver": "^6.0.0" | ||
11909 | }, | ||
11910 | "dependencies": { | ||
11911 | "semver": { | ||
11912 | "version": "6.0.0", | ||
11913 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.0.0.tgz", | ||
11914 | "integrity": "sha512-0UewU+9rFapKFnlbirLi3byoOuhrSsli/z/ihNnvM24vgF+8sNBiI1LZPBSH9wJKUwaUbw+s3hToDLCXkrghrQ==", | ||
11915 | "dev": true | ||
11916 | } | ||
11917 | } | ||
11918 | }, | ||
11919 | "istanbul-lib-report": { | ||
11920 | "version": "2.0.7", | ||
11921 | "resolved": "https://registry.npmjs.org/istanbul-lib-report/-/istanbul-lib-report-2.0.7.tgz", | ||
11922 | "integrity": "sha512-wLH6beJBFbRBLiTlMOBxmb85cnVM1Vyl36N48e4e/aTKSM3WbOx7zbVIH1SQ537fhhsPbX0/C5JB4qsmyRXXyA==", | ||
11923 | "dev": true, | ||
11924 | "requires": { | ||
11925 | "istanbul-lib-coverage": "^2.0.4", | ||
11926 | "make-dir": "^2.1.0", | ||
11927 | "supports-color": "^6.0.0" | ||
11928 | }, | ||
11929 | "dependencies": { | ||
11930 | "make-dir": { | ||
11931 | "version": "2.1.0", | ||
11932 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", | ||
11933 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", | ||
11934 | "dev": true, | ||
11935 | "requires": { | ||
11936 | "pify": "^4.0.1", | ||
11937 | "semver": "^5.6.0" | ||
11938 | } | ||
11939 | }, | ||
11940 | "pify": { | ||
11941 | "version": "4.0.1", | ||
11942 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | ||
11943 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", | ||
11944 | "dev": true | ||
11945 | }, | ||
11946 | "supports-color": { | ||
11947 | "version": "6.1.0", | ||
11948 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", | ||
11949 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", | ||
11950 | "dev": true, | ||
11951 | "requires": { | ||
11952 | "has-flag": "^3.0.0" | ||
11953 | } | ||
11954 | } | ||
11955 | } | ||
11956 | }, | ||
11957 | "istanbul-lib-source-maps": { | ||
11958 | "version": "3.0.5", | ||
11959 | "resolved": "https://registry.npmjs.org/istanbul-lib-source-maps/-/istanbul-lib-source-maps-3.0.5.tgz", | ||
11960 | "integrity": "sha512-eDhZ7r6r1d1zQPVZehLc3D0K14vRba/eBYkz3rw16DLOrrTzve9RmnkcwrrkWVgO1FL3EK5knujVe5S8QHE9xw==", | ||
11961 | "dev": true, | ||
11962 | "requires": { | ||
11963 | "debug": "^4.1.1", | ||
11964 | "istanbul-lib-coverage": "^2.0.4", | ||
11965 | "make-dir": "^2.1.0", | ||
11966 | "rimraf": "^2.6.2", | ||
11967 | "source-map": "^0.6.1" | ||
11968 | }, | ||
11969 | "dependencies": { | ||
11970 | "debug": { | ||
11971 | "version": "4.1.1", | ||
11972 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.1.1.tgz", | ||
11973 | "integrity": "sha512-pYAIzeRo8J6KPEaJ0VWOh5Pzkbw/RetuzehGM7QRRX5he4fPHx2rdKMB256ehJCkX+XRQm16eZLqLNS8RSZXZw==", | ||
11974 | "dev": true, | ||
11975 | "requires": { | ||
11976 | "ms": "^2.1.1" | ||
11977 | } | ||
11978 | }, | ||
11979 | "make-dir": { | ||
11980 | "version": "2.1.0", | ||
11981 | "resolved": "https://registry.npmjs.org/make-dir/-/make-dir-2.1.0.tgz", | ||
11982 | "integrity": "sha512-LS9X+dc8KLxXCb8dni79fLIIUA5VyZoyjSMCwTluaXA0o27cCK0bhXkpgw+sTXVpPy/lSO57ilRixqk0vDmtRA==", | ||
11983 | "dev": true, | ||
11984 | "requires": { | ||
11985 | "pify": "^4.0.1", | ||
11986 | "semver": "^5.6.0" | ||
11987 | } | ||
11988 | }, | ||
11989 | "pify": { | ||
11990 | "version": "4.0.1", | ||
11991 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | ||
11992 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", | ||
11993 | "dev": true | ||
11994 | } | ||
11995 | } | ||
11996 | }, | ||
11997 | "istanbul-reports": { | ||
11998 | "version": "2.2.2", | ||
11999 | "resolved": "https://registry.npmjs.org/istanbul-reports/-/istanbul-reports-2.2.2.tgz", | ||
12000 | "integrity": "sha512-ZFuTdBQ3PSaPnm02aEA4R6mzQ2AF9w03CYiXADzWbbE48v/EFOWF4MaX4FT0NRdqIk48I7o0RPi+S8TMswaCbQ==", | ||
12001 | "dev": true, | ||
12002 | "requires": { | ||
12003 | "handlebars": "^4.1.0" | ||
12004 | } | ||
12005 | }, | ||
12006 | "jest": { | ||
12007 | "version": "24.7.1", | ||
12008 | "resolved": "https://registry.npmjs.org/jest/-/jest-24.7.1.tgz", | ||
12009 | "integrity": "sha512-AbvRar5r++izmqo5gdbAjTeA6uNRGoNRuj5vHB0OnDXo2DXWZJVuaObiGgtlvhKb+cWy2oYbQSfxv7Q7GjnAtA==", | ||
12010 | "dev": true, | ||
12011 | "requires": { | ||
12012 | "import-local": "^2.0.0", | ||
12013 | "jest-cli": "^24.7.1" | ||
12014 | }, | ||
12015 | "dependencies": { | ||
12016 | "import-local": { | ||
12017 | "version": "2.0.0", | ||
12018 | "resolved": "https://registry.npmjs.org/import-local/-/import-local-2.0.0.tgz", | ||
12019 | "integrity": "sha512-b6s04m3O+s3CGSbqDIyP4R6aAwAeYlVq9+WUWep6iHa8ETRf9yei1U48C5MmfJmV9AiLYYBKPMq/W+/WRpQmCQ==", | ||
12020 | "dev": true, | ||
12021 | "requires": { | ||
12022 | "pkg-dir": "^3.0.0", | ||
12023 | "resolve-cwd": "^2.0.0" | ||
12024 | } | ||
12025 | }, | ||
12026 | "jest-cli": { | ||
12027 | "version": "24.7.1", | ||
12028 | "resolved": "https://registry.npmjs.org/jest-cli/-/jest-cli-24.7.1.tgz", | ||
12029 | "integrity": "sha512-32OBoSCVPzcTslGFl6yVCMzB2SqX3IrWwZCY5mZYkb0D2WsogmU3eV2o8z7+gRQa4o4sZPX/k7GU+II7CxM6WQ==", | ||
12030 | "dev": true, | ||
12031 | "requires": { | ||
12032 | "@jest/core": "^24.7.1", | ||
12033 | "@jest/test-result": "^24.7.1", | ||
12034 | "@jest/types": "^24.7.0", | ||
12035 | "chalk": "^2.0.1", | ||
12036 | "exit": "^0.1.2", | ||
12037 | "import-local": "^2.0.0", | ||
12038 | "is-ci": "^2.0.0", | ||
12039 | "jest-config": "^24.7.1", | ||
12040 | "jest-util": "^24.7.1", | ||
12041 | "jest-validate": "^24.7.0", | ||
12042 | "prompts": "^2.0.1", | ||
12043 | "realpath-native": "^1.1.0", | ||
12044 | "yargs": "^12.0.2" | ||
12045 | } | ||
12046 | }, | ||
12047 | "pkg-dir": { | ||
12048 | "version": "3.0.0", | ||
12049 | "resolved": "https://registry.npmjs.org/pkg-dir/-/pkg-dir-3.0.0.tgz", | ||
12050 | "integrity": "sha512-/E57AYkoeQ25qkxMj5PBOVgF8Kiu/h7cYS30Z5+R7WaiCCBfLq58ZI/dSeaEKb9WVJV5n/03QwrN3IeWIFllvw==", | ||
12051 | "dev": true, | ||
12052 | "requires": { | ||
12053 | "find-up": "^3.0.0" | ||
12054 | } | ||
12055 | } | ||
12056 | } | ||
12057 | }, | ||
12058 | "jest-changed-files": { | ||
12059 | "version": "24.7.0", | ||
12060 | "resolved": "https://registry.npmjs.org/jest-changed-files/-/jest-changed-files-24.7.0.tgz", | ||
12061 | "integrity": "sha512-33BgewurnwSfJrW7T5/ZAXGE44o7swLslwh8aUckzq2e17/2Os1V0QU506ZNik3hjs8MgnEMKNkcud442NCDTw==", | ||
12062 | "dev": true, | ||
12063 | "requires": { | ||
12064 | "@jest/types": "^24.7.0", | ||
12065 | "execa": "^1.0.0", | ||
12066 | "throat": "^4.0.0" | ||
12067 | } | ||
12068 | }, | ||
12069 | "jest-config": { | ||
12070 | "version": "24.7.1", | ||
12071 | "resolved": "https://registry.npmjs.org/jest-config/-/jest-config-24.7.1.tgz", | ||
12072 | "integrity": "sha512-8FlJNLI+X+MU37j7j8RE4DnJkvAghXmBWdArVzypW6WxfGuxiL/CCkzBg0gHtXhD2rxla3IMOSUAHylSKYJ83g==", | ||
12073 | "dev": true, | ||
12074 | "requires": { | ||
12075 | "@babel/core": "^7.1.0", | ||
12076 | "@jest/test-sequencer": "^24.7.1", | ||
12077 | "@jest/types": "^24.7.0", | ||
12078 | "babel-jest": "^24.7.1", | ||
12079 | "chalk": "^2.0.1", | ||
12080 | "glob": "^7.1.1", | ||
12081 | "jest-environment-jsdom": "^24.7.1", | ||
12082 | "jest-environment-node": "^24.7.1", | ||
12083 | "jest-get-type": "^24.3.0", | ||
12084 | "jest-jasmine2": "^24.7.1", | ||
12085 | "jest-regex-util": "^24.3.0", | ||
12086 | "jest-resolve": "^24.7.1", | ||
12087 | "jest-util": "^24.7.1", | ||
12088 | "jest-validate": "^24.7.0", | ||
12089 | "micromatch": "^3.1.10", | ||
12090 | "pretty-format": "^24.7.0", | ||
12091 | "realpath-native": "^1.1.0" | ||
12092 | } | ||
12093 | }, | ||
12094 | "jest-diff": { | ||
12095 | "version": "24.7.0", | ||
12096 | "resolved": "https://registry.npmjs.org/jest-diff/-/jest-diff-24.7.0.tgz", | ||
12097 | "integrity": "sha512-ULQZ5B1lWpH70O4xsANC4tf4Ko6RrpwhE3PtG6ERjMg1TiYTC2Wp4IntJVGro6a8HG9luYHhhmF4grF0Pltckg==", | ||
12098 | "dev": true, | ||
12099 | "requires": { | ||
12100 | "chalk": "^2.0.1", | ||
12101 | "diff-sequences": "^24.3.0", | ||
12102 | "jest-get-type": "^24.3.0", | ||
12103 | "pretty-format": "^24.7.0" | ||
12104 | } | ||
12105 | }, | ||
12106 | "jest-docblock": { | ||
12107 | "version": "24.3.0", | ||
12108 | "resolved": "https://registry.npmjs.org/jest-docblock/-/jest-docblock-24.3.0.tgz", | ||
12109 | "integrity": "sha512-nlANmF9Yq1dufhFlKG9rasfQlrY7wINJbo3q01tu56Jv5eBU5jirylhF2O5ZBnLxzOVBGRDz/9NAwNyBtG4Nyg==", | ||
12110 | "dev": true, | ||
12111 | "requires": { | ||
12112 | "detect-newline": "^2.1.0" | ||
12113 | } | ||
12114 | }, | ||
12115 | "jest-each": { | ||
12116 | "version": "24.7.1", | ||
12117 | "resolved": "https://registry.npmjs.org/jest-each/-/jest-each-24.7.1.tgz", | ||
12118 | "integrity": "sha512-4fsS8fEfLa3lfnI1Jw6NxjhyRTgfpuOVTeUZZFyVYqeTa4hPhr2YkToUhouuLTrL2eMGOfpbdMyRx0GQ/VooKA==", | ||
12119 | "dev": true, | ||
12120 | "requires": { | ||
12121 | "@jest/types": "^24.7.0", | ||
12122 | "chalk": "^2.0.1", | ||
12123 | "jest-get-type": "^24.3.0", | ||
12124 | "jest-util": "^24.7.1", | ||
12125 | "pretty-format": "^24.7.0" | ||
12126 | } | ||
12127 | }, | ||
12128 | "jest-environment-jsdom": { | ||
12129 | "version": "24.7.1", | ||
12130 | "resolved": "https://registry.npmjs.org/jest-environment-jsdom/-/jest-environment-jsdom-24.7.1.tgz", | ||
12131 | "integrity": "sha512-Gnhb+RqE2JuQGb3kJsLF8vfqjt3PHKSstq4Xc8ic+ax7QKo4Z0RWGucU3YV+DwKR3T9SYc+3YCUQEJs8r7+Jxg==", | ||
12132 | "dev": true, | ||
12133 | "requires": { | ||
12134 | "@jest/environment": "^24.7.1", | ||
12135 | "@jest/fake-timers": "^24.7.1", | ||
12136 | "@jest/types": "^24.7.0", | ||
12137 | "jest-mock": "^24.7.0", | ||
12138 | "jest-util": "^24.7.1", | ||
12139 | "jsdom": "^11.5.1" | ||
12140 | } | ||
12141 | }, | ||
12142 | "jest-environment-node": { | ||
12143 | "version": "24.7.1", | ||
12144 | "resolved": "https://registry.npmjs.org/jest-environment-node/-/jest-environment-node-24.7.1.tgz", | ||
12145 | "integrity": "sha512-GJJQt1p9/C6aj6yNZMvovZuxTUd+BEJprETdvTKSb4kHcw4mFj8777USQV0FJoJ4V3djpOwA5eWyPwfq//PFBA==", | ||
12146 | "dev": true, | ||
12147 | "requires": { | ||
12148 | "@jest/environment": "^24.7.1", | ||
12149 | "@jest/fake-timers": "^24.7.1", | ||
12150 | "@jest/types": "^24.7.0", | ||
12151 | "jest-mock": "^24.7.0", | ||
12152 | "jest-util": "^24.7.1" | ||
12153 | } | ||
12154 | }, | ||
12155 | "jest-get-type": { | ||
12156 | "version": "24.3.0", | ||
12157 | "resolved": "https://registry.npmjs.org/jest-get-type/-/jest-get-type-24.3.0.tgz", | ||
12158 | "integrity": "sha512-HYF6pry72YUlVcvUx3sEpMRwXEWGEPlJ0bSPVnB3b3n++j4phUEoSPcS6GC0pPJ9rpyPSe4cb5muFo6D39cXow==", | ||
12159 | "dev": true | ||
12160 | }, | ||
12161 | "jest-haste-map": { | ||
12162 | "version": "24.7.1", | ||
12163 | "resolved": "https://registry.npmjs.org/jest-haste-map/-/jest-haste-map-24.7.1.tgz", | ||
12164 | "integrity": "sha512-g0tWkzjpHD2qa03mTKhlydbmmYiA2KdcJe762SbfFo/7NIMgBWAA0XqQlApPwkWOF7Cxoi/gUqL0i6DIoLpMBw==", | ||
12165 | "dev": true, | ||
12166 | "requires": { | ||
12167 | "@jest/types": "^24.7.0", | ||
12168 | "anymatch": "^2.0.0", | ||
12169 | "fb-watchman": "^2.0.0", | ||
12170 | "fsevents": "^1.2.7", | ||
12171 | "graceful-fs": "^4.1.15", | ||
12172 | "invariant": "^2.2.4", | ||
12173 | "jest-serializer": "^24.4.0", | ||
12174 | "jest-util": "^24.7.1", | ||
12175 | "jest-worker": "^24.6.0", | ||
12176 | "micromatch": "^3.1.10", | ||
12177 | "sane": "^4.0.3", | ||
12178 | "walker": "^1.0.7" | ||
12179 | } | ||
12180 | }, | ||
12181 | "jest-jasmine2": { | ||
12182 | "version": "24.7.1", | ||
12183 | "resolved": "https://registry.npmjs.org/jest-jasmine2/-/jest-jasmine2-24.7.1.tgz", | ||
12184 | "integrity": "sha512-Y/9AOJDV1XS44wNwCaThq4Pw3gBPiOv/s6NcbOAkVRRUEPu+36L2xoPsqQXsDrxoBerqeyslpn2TpCI8Zr6J2w==", | ||
12185 | "dev": true, | ||
12186 | "requires": { | ||
12187 | "@babel/traverse": "^7.1.0", | ||
12188 | "@jest/environment": "^24.7.1", | ||
12189 | "@jest/test-result": "^24.7.1", | ||
12190 | "@jest/types": "^24.7.0", | ||
12191 | "chalk": "^2.0.1", | ||
12192 | "co": "^4.6.0", | ||
12193 | "expect": "^24.7.1", | ||
12194 | "is-generator-fn": "^2.0.0", | ||
12195 | "jest-each": "^24.7.1", | ||
12196 | "jest-matcher-utils": "^24.7.0", | ||
12197 | "jest-message-util": "^24.7.1", | ||
12198 | "jest-runtime": "^24.7.1", | ||
12199 | "jest-snapshot": "^24.7.1", | ||
12200 | "jest-util": "^24.7.1", | ||
12201 | "pretty-format": "^24.7.0", | ||
12202 | "throat": "^4.0.0" | ||
12203 | } | ||
12204 | }, | ||
12205 | "jest-leak-detector": { | ||
12206 | "version": "24.7.0", | ||
12207 | "resolved": "https://registry.npmjs.org/jest-leak-detector/-/jest-leak-detector-24.7.0.tgz", | ||
12208 | "integrity": "sha512-zV0qHKZGXtmPVVzT99CVEcHE9XDf+8LwiE0Ob7jjezERiGVljmqKFWpV2IkG+rkFIEUHFEkMiICu7wnoPM/RoQ==", | ||
12209 | "dev": true, | ||
12210 | "requires": { | ||
12211 | "pretty-format": "^24.7.0" | ||
12212 | } | ||
12213 | }, | ||
12214 | "jest-matcher-utils": { | ||
12215 | "version": "24.7.0", | ||
12216 | "resolved": "https://registry.npmjs.org/jest-matcher-utils/-/jest-matcher-utils-24.7.0.tgz", | ||
12217 | "integrity": "sha512-158ieSgk3LNXeUhbVJYRXyTPSCqNgVXOp/GT7O94mYd3pk/8+odKTyR1JLtNOQSPzNi8NFYVONtvSWA/e1RDXg==", | ||
12218 | "dev": true, | ||
12219 | "requires": { | ||
12220 | "chalk": "^2.0.1", | ||
12221 | "jest-diff": "^24.7.0", | ||
12222 | "jest-get-type": "^24.3.0", | ||
12223 | "pretty-format": "^24.7.0" | ||
12224 | } | ||
12225 | }, | ||
12226 | "jest-message-util": { | ||
12227 | "version": "24.7.1", | ||
12228 | "resolved": "https://registry.npmjs.org/jest-message-util/-/jest-message-util-24.7.1.tgz", | ||
12229 | "integrity": "sha512-dk0gqVtyqezCHbcbk60CdIf+8UHgD+lmRHifeH3JRcnAqh4nEyPytSc9/L1+cQyxC+ceaeP696N4ATe7L+omcg==", | ||
12230 | "dev": true, | ||
12231 | "requires": { | ||
12232 | "@babel/code-frame": "^7.0.0", | ||
12233 | "@jest/test-result": "^24.7.1", | ||
12234 | "@jest/types": "^24.7.0", | ||
12235 | "@types/stack-utils": "^1.0.1", | ||
12236 | "chalk": "^2.0.1", | ||
12237 | "micromatch": "^3.1.10", | ||
12238 | "slash": "^2.0.0", | ||
12239 | "stack-utils": "^1.0.1" | ||
12240 | } | ||
12241 | }, | ||
12242 | "jest-mock": { | ||
12243 | "version": "24.7.0", | ||
12244 | "resolved": "https://registry.npmjs.org/jest-mock/-/jest-mock-24.7.0.tgz", | ||
12245 | "integrity": "sha512-6taW4B4WUcEiT2V9BbOmwyGuwuAFT2G8yghF7nyNW1/2gq5+6aTqSPcS9lS6ArvEkX55vbPAS/Jarx5LSm4Fng==", | ||
12246 | "dev": true, | ||
12247 | "requires": { | ||
12248 | "@jest/types": "^24.7.0" | ||
12249 | } | ||
12250 | }, | ||
12251 | "jest-pnp-resolver": { | ||
12252 | "version": "1.2.1", | ||
12253 | "resolved": "https://registry.npmjs.org/jest-pnp-resolver/-/jest-pnp-resolver-1.2.1.tgz", | ||
12254 | "integrity": "sha512-pgFw2tm54fzgYvc/OHrnysABEObZCUNFnhjoRjaVOCN8NYc032/gVjPaHD4Aq6ApkSieWtfKAFQtmDKAmhupnQ==", | ||
12255 | "dev": true | ||
12256 | }, | ||
12257 | "jest-regex-util": { | ||
12258 | "version": "24.3.0", | ||
12259 | "resolved": "https://registry.npmjs.org/jest-regex-util/-/jest-regex-util-24.3.0.tgz", | ||
12260 | "integrity": "sha512-tXQR1NEOyGlfylyEjg1ImtScwMq8Oh3iJbGTjN7p0J23EuVX1MA8rwU69K4sLbCmwzgCUbVkm0FkSF9TdzOhtg==", | ||
12261 | "dev": true | ||
12262 | }, | ||
12263 | "jest-resolve": { | ||
12264 | "version": "24.7.1", | ||
12265 | "resolved": "https://registry.npmjs.org/jest-resolve/-/jest-resolve-24.7.1.tgz", | ||
12266 | "integrity": "sha512-Bgrc+/UUZpGJ4323sQyj85hV9d+ANyPNu6XfRDUcyFNX1QrZpSoM0kE4Mb2vZMAYTJZsBFzYe8X1UaOkOELSbw==", | ||
12267 | "dev": true, | ||
12268 | "requires": { | ||
12269 | "@jest/types": "^24.7.0", | ||
12270 | "browser-resolve": "^1.11.3", | ||
12271 | "chalk": "^2.0.1", | ||
12272 | "jest-pnp-resolver": "^1.2.1", | ||
12273 | "realpath-native": "^1.1.0" | ||
12274 | } | ||
12275 | }, | ||
12276 | "jest-resolve-dependencies": { | ||
12277 | "version": "24.7.1", | ||
12278 | "resolved": "https://registry.npmjs.org/jest-resolve-dependencies/-/jest-resolve-dependencies-24.7.1.tgz", | ||
12279 | "integrity": "sha512-2Eyh5LJB2liNzfk4eo7bD1ZyBbqEJIyyrFtZG555cSWW9xVHxII2NuOkSl1yUYTAYCAmM2f2aIT5A7HzNmubyg==", | ||
12280 | "dev": true, | ||
12281 | "requires": { | ||
12282 | "@jest/types": "^24.7.0", | ||
12283 | "jest-regex-util": "^24.3.0", | ||
12284 | "jest-snapshot": "^24.7.1" | ||
12285 | } | ||
12286 | }, | ||
12287 | "jest-runner": { | ||
12288 | "version": "24.7.1", | ||
12289 | "resolved": "https://registry.npmjs.org/jest-runner/-/jest-runner-24.7.1.tgz", | ||
12290 | "integrity": "sha512-aNFc9liWU/xt+G9pobdKZ4qTeG/wnJrJna3VqunziDNsWT3EBpmxXZRBMKCsNMyfy+A/XHiV+tsMLufdsNdgCw==", | ||
12291 | "dev": true, | ||
12292 | "requires": { | ||
12293 | "@jest/console": "^24.7.1", | ||
12294 | "@jest/environment": "^24.7.1", | ||
12295 | "@jest/test-result": "^24.7.1", | ||
12296 | "@jest/types": "^24.7.0", | ||
12297 | "chalk": "^2.4.2", | ||
12298 | "exit": "^0.1.2", | ||
12299 | "graceful-fs": "^4.1.15", | ||
12300 | "jest-config": "^24.7.1", | ||
12301 | "jest-docblock": "^24.3.0", | ||
12302 | "jest-haste-map": "^24.7.1", | ||
12303 | "jest-jasmine2": "^24.7.1", | ||
12304 | "jest-leak-detector": "^24.7.0", | ||
12305 | "jest-message-util": "^24.7.1", | ||
12306 | "jest-resolve": "^24.7.1", | ||
12307 | "jest-runtime": "^24.7.1", | ||
12308 | "jest-util": "^24.7.1", | ||
12309 | "jest-worker": "^24.6.0", | ||
12310 | "source-map-support": "^0.5.6", | ||
12311 | "throat": "^4.0.0" | ||
12312 | } | ||
12313 | }, | ||
12314 | "jest-runtime": { | ||
12315 | "version": "24.7.1", | ||
12316 | "resolved": "https://registry.npmjs.org/jest-runtime/-/jest-runtime-24.7.1.tgz", | ||
12317 | "integrity": "sha512-0VAbyBy7tll3R+82IPJpf6QZkokzXPIS71aDeqh+WzPRXRCNz6StQ45otFariPdJ4FmXpDiArdhZrzNAC3sj6A==", | ||
12318 | "dev": true, | ||
12319 | "requires": { | ||
12320 | "@jest/console": "^24.7.1", | ||
12321 | "@jest/environment": "^24.7.1", | ||
12322 | "@jest/source-map": "^24.3.0", | ||
12323 | "@jest/transform": "^24.7.1", | ||
12324 | "@jest/types": "^24.7.0", | ||
12325 | "@types/yargs": "^12.0.2", | ||
12326 | "chalk": "^2.0.1", | ||
12327 | "exit": "^0.1.2", | ||
12328 | "glob": "^7.1.3", | ||
12329 | "graceful-fs": "^4.1.15", | ||
12330 | "jest-config": "^24.7.1", | ||
12331 | "jest-haste-map": "^24.7.1", | ||
12332 | "jest-message-util": "^24.7.1", | ||
12333 | "jest-mock": "^24.7.0", | ||
12334 | "jest-regex-util": "^24.3.0", | ||
12335 | "jest-resolve": "^24.7.1", | ||
12336 | "jest-snapshot": "^24.7.1", | ||
12337 | "jest-util": "^24.7.1", | ||
12338 | "jest-validate": "^24.7.0", | ||
12339 | "realpath-native": "^1.1.0", | ||
12340 | "slash": "^2.0.0", | ||
12341 | "strip-bom": "^3.0.0", | ||
12342 | "yargs": "^12.0.2" | ||
12343 | } | ||
12344 | }, | ||
12345 | "jest-serializer": { | ||
12346 | "version": "24.4.0", | ||
12347 | "resolved": "https://registry.npmjs.org/jest-serializer/-/jest-serializer-24.4.0.tgz", | ||
12348 | "integrity": "sha512-k//0DtglVstc1fv+GY/VHDIjrtNjdYvYjMlbLUed4kxrE92sIUewOi5Hj3vrpB8CXfkJntRPDRjCrCvUhBdL8Q==", | ||
12349 | "dev": true | ||
12350 | }, | ||
12351 | "jest-snapshot": { | ||
12352 | "version": "24.7.1", | ||
12353 | "resolved": "https://registry.npmjs.org/jest-snapshot/-/jest-snapshot-24.7.1.tgz", | ||
12354 | "integrity": "sha512-8Xk5O4p+JsZZn4RCNUS3pxA+ORKpEKepE+a5ejIKrId9CwrVN0NY+vkqEkXqlstA5NMBkNahXkR/4qEBy0t5yA==", | ||
12355 | "dev": true, | ||
12356 | "requires": { | ||
12357 | "@babel/types": "^7.0.0", | ||
12358 | "@jest/types": "^24.7.0", | ||
12359 | "chalk": "^2.0.1", | ||
12360 | "expect": "^24.7.1", | ||
12361 | "jest-diff": "^24.7.0", | ||
12362 | "jest-matcher-utils": "^24.7.0", | ||
12363 | "jest-message-util": "^24.7.1", | ||
12364 | "jest-resolve": "^24.7.1", | ||
12365 | "mkdirp": "^0.5.1", | ||
12366 | "natural-compare": "^1.4.0", | ||
12367 | "pretty-format": "^24.7.0", | ||
12368 | "semver": "^5.5.0" | ||
12369 | } | ||
12370 | }, | ||
12371 | "jest-util": { | ||
12372 | "version": "24.7.1", | ||
12373 | "resolved": "https://registry.npmjs.org/jest-util/-/jest-util-24.7.1.tgz", | ||
12374 | "integrity": "sha512-/KilOue2n2rZ5AnEBYoxOXkeTu6vi7cjgQ8MXEkih0oeAXT6JkS3fr7/j8+engCjciOU1Nq5loMSKe0A1oeX0A==", | ||
12375 | "dev": true, | ||
12376 | "requires": { | ||
12377 | "@jest/console": "^24.7.1", | ||
12378 | "@jest/fake-timers": "^24.7.1", | ||
12379 | "@jest/source-map": "^24.3.0", | ||
12380 | "@jest/test-result": "^24.7.1", | ||
12381 | "@jest/types": "^24.7.0", | ||
12382 | "callsites": "^3.0.0", | ||
12383 | "chalk": "^2.0.1", | ||
12384 | "graceful-fs": "^4.1.15", | ||
12385 | "is-ci": "^2.0.0", | ||
12386 | "mkdirp": "^0.5.1", | ||
12387 | "slash": "^2.0.0", | ||
12388 | "source-map": "^0.6.0" | ||
12389 | }, | ||
12390 | "dependencies": { | ||
12391 | "callsites": { | ||
12392 | "version": "3.1.0", | ||
12393 | "resolved": "https://registry.npmjs.org/callsites/-/callsites-3.1.0.tgz", | ||
12394 | "integrity": "sha512-P8BjAsXvZS+VIDUI11hHCQEv74YT67YUi5JJFNWIqL235sBmjX4+qx9Muvls5ivyNENctx46xQLQ3aTuE7ssaQ==", | ||
12395 | "dev": true | ||
12396 | } | ||
12397 | } | ||
12398 | }, | ||
12399 | "jest-validate": { | ||
12400 | "version": "24.7.0", | ||
12401 | "resolved": "https://registry.npmjs.org/jest-validate/-/jest-validate-24.7.0.tgz", | ||
12402 | "integrity": "sha512-cgai/gts9B2chz1rqVdmLhzYxQbgQurh1PEQSvSgPZ8KGa1AqXsqC45W5wKEwzxKrWqypuQrQxnF4+G9VejJJA==", | ||
12403 | "dev": true, | ||
12404 | "requires": { | ||
12405 | "@jest/types": "^24.7.0", | ||
12406 | "camelcase": "^5.0.0", | ||
12407 | "chalk": "^2.0.1", | ||
12408 | "jest-get-type": "^24.3.0", | ||
12409 | "leven": "^2.1.0", | ||
12410 | "pretty-format": "^24.7.0" | ||
12411 | } | ||
12412 | }, | ||
12413 | "jest-watcher": { | ||
12414 | "version": "24.7.1", | ||
12415 | "resolved": "https://registry.npmjs.org/jest-watcher/-/jest-watcher-24.7.1.tgz", | ||
12416 | "integrity": "sha512-Wd6TepHLRHVKLNPacEsBwlp9raeBIO+01xrN24Dek4ggTS8HHnOzYSFnvp+6MtkkJ3KfMzy220KTi95e2rRkrw==", | ||
12417 | "dev": true, | ||
12418 | "requires": { | ||
12419 | "@jest/test-result": "^24.7.1", | ||
12420 | "@jest/types": "^24.7.0", | ||
12421 | "@types/yargs": "^12.0.9", | ||
12422 | "ansi-escapes": "^3.0.0", | ||
12423 | "chalk": "^2.0.1", | ||
12424 | "jest-util": "^24.7.1", | ||
12425 | "string-length": "^2.0.0" | ||
12426 | } | ||
12427 | }, | ||
12428 | "jest-worker": { | ||
12429 | "version": "24.6.0", | ||
12430 | "resolved": "https://registry.npmjs.org/jest-worker/-/jest-worker-24.6.0.tgz", | ||
12431 | "integrity": "sha512-jDwgW5W9qGNvpI1tNnvajh0a5IE/PuGLFmHk6aR/BZFz8tSgGw17GsDPXAJ6p91IvYDjOw8GpFbvvZGAK+DPQQ==", | ||
12432 | "dev": true, | ||
12433 | "requires": { | ||
12434 | "merge-stream": "^1.0.1", | ||
12435 | "supports-color": "^6.1.0" | ||
12436 | }, | ||
12437 | "dependencies": { | ||
12438 | "merge-stream": { | ||
12439 | "version": "1.0.1", | ||
12440 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-1.0.1.tgz", | ||
12441 | "integrity": "sha1-QEEgLVCKNCugAXQAjfDCUbjBNeE=", | ||
12442 | "dev": true, | ||
12443 | "requires": { | ||
12444 | "readable-stream": "^2.0.1" | ||
12445 | } | ||
12446 | }, | ||
12447 | "readable-stream": { | ||
12448 | "version": "2.3.6", | ||
12449 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.6.tgz", | ||
12450 | "integrity": "sha512-tQtKA9WIAhBF3+VLAseyMqZeBjW0AHJoxOtYqSUZNJxauErmLbVm2FW1y+J/YA9dUrAC39ITejlZWhVIwawkKw==", | ||
12451 | "dev": true, | ||
12452 | "requires": { | ||
12453 | "core-util-is": "~1.0.0", | ||
12454 | "inherits": "~2.0.3", | ||
12455 | "isarray": "~1.0.0", | ||
12456 | "process-nextick-args": "~2.0.0", | ||
12457 | "safe-buffer": "~5.1.1", | ||
12458 | "string_decoder": "~1.1.1", | ||
12459 | "util-deprecate": "~1.0.1" | ||
12460 | } | ||
12461 | }, | ||
12462 | "string_decoder": { | ||
12463 | "version": "1.1.1", | ||
12464 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||
12465 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||
12466 | "dev": true, | ||
12467 | "requires": { | ||
12468 | "safe-buffer": "~5.1.0" | ||
12469 | } | ||
12470 | }, | ||
12471 | "supports-color": { | ||
12472 | "version": "6.1.0", | ||
12473 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-6.1.0.tgz", | ||
12474 | "integrity": "sha512-qe1jfm1Mg7Nq/NSh6XE24gPXROEVsWHxC1LIx//XNlD9iw7YZQGjZNjYN7xGaEG6iKdA8EtNFW6R0gjnVXp+wQ==", | ||
12475 | "dev": true, | ||
12476 | "requires": { | ||
12477 | "has-flag": "^3.0.0" | ||
12478 | } | ||
12479 | } | ||
12480 | } | ||
12481 | }, | ||
11234 | "js-base64": { | 12482 | "js-base64": { |
11235 | "version": "2.5.1", | 12483 | "version": "2.5.1", |
11236 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", | 12484 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.1.tgz", |
@@ -11263,6 +12511,68 @@ | |||
11263 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", | 12511 | "integrity": "sha1-peZUwuWi3rXyAdls77yoDA7y9RM=", |
11264 | "dev": true | 12512 | "dev": true |
11265 | }, | 12513 | }, |
12514 | "jsdom": { | ||
12515 | "version": "11.12.0", | ||
12516 | "resolved": "https://registry.npmjs.org/jsdom/-/jsdom-11.12.0.tgz", | ||
12517 | "integrity": "sha512-y8Px43oyiBM13Zc1z780FrfNLJCXTL40EWlty/LXUtcjykRBNgLlCjWXpfSPBl2iv+N7koQN+dvqszHZgT/Fjw==", | ||
12518 | "dev": true, | ||
12519 | "requires": { | ||
12520 | "abab": "^2.0.0", | ||
12521 | "acorn": "^5.5.3", | ||
12522 | "acorn-globals": "^4.1.0", | ||
12523 | "array-equal": "^1.0.0", | ||
12524 | "cssom": ">= 0.3.2 < 0.4.0", | ||
12525 | "cssstyle": "^1.0.0", | ||
12526 | "data-urls": "^1.0.0", | ||
12527 | "domexception": "^1.0.1", | ||
12528 | "escodegen": "^1.9.1", | ||
12529 | "html-encoding-sniffer": "^1.0.2", | ||
12530 | "left-pad": "^1.3.0", | ||
12531 | "nwsapi": "^2.0.7", | ||
12532 | "parse5": "4.0.0", | ||
12533 | "pn": "^1.1.0", | ||
12534 | "request": "^2.87.0", | ||
12535 | "request-promise-native": "^1.0.5", | ||
12536 | "sax": "^1.2.4", | ||
12537 | "symbol-tree": "^3.2.2", | ||
12538 | "tough-cookie": "^2.3.4", | ||
12539 | "w3c-hr-time": "^1.0.1", | ||
12540 | "webidl-conversions": "^4.0.2", | ||
12541 | "whatwg-encoding": "^1.0.3", | ||
12542 | "whatwg-mimetype": "^2.1.0", | ||
12543 | "whatwg-url": "^6.4.1", | ||
12544 | "ws": "^5.2.0", | ||
12545 | "xml-name-validator": "^3.0.0" | ||
12546 | }, | ||
12547 | "dependencies": { | ||
12548 | "acorn": { | ||
12549 | "version": "5.7.3", | ||
12550 | "resolved": "https://registry.npmjs.org/acorn/-/acorn-5.7.3.tgz", | ||
12551 | "integrity": "sha512-T/zvzYRfbVojPWahDsE5evJdHb3oJoQfFbsrKM7w5Zcs++Tr257tia3BmMP8XYVjp1S9RZXQMh7gao96BlqZOw==", | ||
12552 | "dev": true | ||
12553 | }, | ||
12554 | "whatwg-url": { | ||
12555 | "version": "6.5.0", | ||
12556 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-6.5.0.tgz", | ||
12557 | "integrity": "sha512-rhRZRqx/TLJQWUpQ6bmrt2UV4f0HCQ463yQuONJqC6fO2VoEb1pTYddbe59SkYq87aoM5A3bdhMZiUiVws+fzQ==", | ||
12558 | "dev": true, | ||
12559 | "requires": { | ||
12560 | "lodash.sortby": "^4.7.0", | ||
12561 | "tr46": "^1.0.1", | ||
12562 | "webidl-conversions": "^4.0.2" | ||
12563 | } | ||
12564 | }, | ||
12565 | "ws": { | ||
12566 | "version": "5.2.2", | ||
12567 | "resolved": "https://registry.npmjs.org/ws/-/ws-5.2.2.tgz", | ||
12568 | "integrity": "sha512-jaHFD6PFv6UgoIVda6qZllptQsMlDEJkTQcybzzXDYM1XO9Y8em691FGMPmM46WGyLU4z9KMgQN+qrux/nhlHA==", | ||
12569 | "dev": true, | ||
12570 | "requires": { | ||
12571 | "async-limiter": "~1.0.0" | ||
12572 | } | ||
12573 | } | ||
12574 | } | ||
12575 | }, | ||
11266 | "jsesc": { | 12576 | "jsesc": { |
11267 | "version": "2.5.2", | 12577 | "version": "2.5.2", |
11268 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", | 12578 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-2.5.2.tgz", |
@@ -11519,6 +12829,12 @@ | |||
11519 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", | 12829 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==", |
11520 | "dev": true | 12830 | "dev": true |
11521 | }, | 12831 | }, |
12832 | "kleur": { | ||
12833 | "version": "3.0.3", | ||
12834 | "resolved": "https://registry.npmjs.org/kleur/-/kleur-3.0.3.tgz", | ||
12835 | "integrity": "sha512-eTIzlVOSUR+JxdDFepEYcBMtZ9Qqdef+rnzWdRZuMbOywu5tO2w2N7rqjoANZ5k9vywhL6Br1VRjUIgTQx4E8w==", | ||
12836 | "dev": true | ||
12837 | }, | ||
11522 | "last-run": { | 12838 | "last-run": { |
11523 | "version": "1.1.1", | 12839 | "version": "1.1.1", |
11524 | "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", | 12840 | "resolved": "https://registry.npmjs.org/last-run/-/last-run-1.1.1.tgz", |
@@ -11596,6 +12912,12 @@ | |||
11596 | "flush-write-stream": "^1.0.2" | 12912 | "flush-write-stream": "^1.0.2" |
11597 | } | 12913 | } |
11598 | }, | 12914 | }, |
12915 | "left-pad": { | ||
12916 | "version": "1.3.0", | ||
12917 | "resolved": "https://registry.npmjs.org/left-pad/-/left-pad-1.3.0.tgz", | ||
12918 | "integrity": "sha512-XI5MPzVNApjAyhQzphX8BkmKsKUxD4LdyK24iZeQGinBN9yTQT3bFlCBy/aVx2HrNcqQGsdot8ghrjyrvMCoEA==", | ||
12919 | "dev": true | ||
12920 | }, | ||
11599 | "lerna": { | 12921 | "lerna": { |
11600 | "version": "3.11.1", | 12922 | "version": "3.11.1", |
11601 | "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.11.1.tgz", | 12923 | "resolved": "https://registry.npmjs.org/lerna/-/lerna-3.11.1.tgz", |
@@ -11621,6 +12943,12 @@ | |||
11621 | "npmlog": "^4.1.2" | 12943 | "npmlog": "^4.1.2" |
11622 | } | 12944 | } |
11623 | }, | 12945 | }, |
12946 | "leven": { | ||
12947 | "version": "2.1.0", | ||
12948 | "resolved": "https://registry.npmjs.org/leven/-/leven-2.1.0.tgz", | ||
12949 | "integrity": "sha1-wuep93IJTe6dNCAq6KzORoeHVYA=", | ||
12950 | "dev": true | ||
12951 | }, | ||
11624 | "levn": { | 12952 | "levn": { |
11625 | "version": "0.3.0", | 12953 | "version": "0.3.0", |
11626 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", | 12954 | "resolved": "https://registry.npmjs.org/levn/-/levn-0.3.0.tgz", |
@@ -12135,6 +13463,15 @@ | |||
12135 | "kind-of": "^6.0.2" | 13463 | "kind-of": "^6.0.2" |
12136 | } | 13464 | } |
12137 | }, | 13465 | }, |
13466 | "makeerror": { | ||
13467 | "version": "1.0.11", | ||
13468 | "resolved": "https://registry.npmjs.org/makeerror/-/makeerror-1.0.11.tgz", | ||
13469 | "integrity": "sha1-4BpckQnyr3lmDk6LlYd5AYT1qWw=", | ||
13470 | "dev": true, | ||
13471 | "requires": { | ||
13472 | "tmpl": "1.0.x" | ||
13473 | } | ||
13474 | }, | ||
12138 | "map-age-cleaner": { | 13475 | "map-age-cleaner": { |
12139 | "version": "0.1.3", | 13476 | "version": "0.1.3", |
12140 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", | 13477 | "resolved": "https://registry.npmjs.org/map-age-cleaner/-/map-age-cleaner-0.1.3.tgz", |
@@ -12165,6 +13502,11 @@ | |||
12165 | "object-visit": "^1.0.0" | 13502 | "object-visit": "^1.0.0" |
12166 | } | 13503 | } |
12167 | }, | 13504 | }, |
13505 | "marked": { | ||
13506 | "version": "0.6.1", | ||
13507 | "resolved": "https://registry.npmjs.org/marked/-/marked-0.6.1.tgz", | ||
13508 | "integrity": "sha512-+H0L3ibcWhAZE02SKMqmvYsErLo4EAVJxu5h3bHBBDvvjeWXtl92rGUSBYHL2++5Y+RSNgl8dYOAXcYe7lp1fA==" | ||
13509 | }, | ||
12168 | "matchdep": { | 13510 | "matchdep": { |
12169 | "version": "2.0.0", | 13511 | "version": "2.0.0", |
12170 | "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", | 13512 | "resolved": "https://registry.npmjs.org/matchdep/-/matchdep-2.0.0.tgz", |
@@ -12860,6 +14202,12 @@ | |||
12860 | } | 14202 | } |
12861 | } | 14203 | } |
12862 | }, | 14204 | }, |
14205 | "node-int64": { | ||
14206 | "version": "0.4.0", | ||
14207 | "resolved": "https://registry.npmjs.org/node-int64/-/node-int64-0.4.0.tgz", | ||
14208 | "integrity": "sha1-h6kGXNs1XTGC2PlM4RGIuCXGijs=", | ||
14209 | "dev": true | ||
14210 | }, | ||
12863 | "node-libs-browser": { | 14211 | "node-libs-browser": { |
12864 | "version": "2.2.0", | 14212 | "version": "2.2.0", |
12865 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", | 14213 | "resolved": "https://registry.npmjs.org/node-libs-browser/-/node-libs-browser-2.2.0.tgz", |
@@ -12931,6 +14279,19 @@ | |||
12931 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", | 14279 | "integrity": "sha1-jZ2+KJZKSsVxLpExZCEHxx6Q7EA=", |
12932 | "dev": true | 14280 | "dev": true |
12933 | }, | 14281 | }, |
14282 | "node-notifier": { | ||
14283 | "version": "5.4.0", | ||
14284 | "resolved": "https://registry.npmjs.org/node-notifier/-/node-notifier-5.4.0.tgz", | ||
14285 | "integrity": "sha512-SUDEb+o71XR5lXSTyivXd9J7fCloE3SyP4lSgt3lU2oSANiox+SxlNRGPjDKrwU1YN3ix2KN/VGGCg0t01rttQ==", | ||
14286 | "dev": true, | ||
14287 | "requires": { | ||
14288 | "growly": "^1.3.0", | ||
14289 | "is-wsl": "^1.1.0", | ||
14290 | "semver": "^5.5.0", | ||
14291 | "shellwords": "^0.1.1", | ||
14292 | "which": "^1.3.0" | ||
14293 | } | ||
14294 | }, | ||
12934 | "node-pre-gyp": { | 14295 | "node-pre-gyp": { |
12935 | "version": "0.10.3", | 14296 | "version": "0.10.3", |
12936 | "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", | 14297 | "resolved": "https://registry.npmjs.org/node-pre-gyp/-/node-pre-gyp-0.10.3.tgz", |
@@ -13577,6 +14938,12 @@ | |||
13577 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", | 14938 | "resolved": "https://registry.npmjs.org/number-is-nan/-/number-is-nan-1.0.1.tgz", |
13578 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" | 14939 | "integrity": "sha1-CXtgK1NCKlIsGvuHkDGDNpQaAR0=" |
13579 | }, | 14940 | }, |
14941 | "nwsapi": { | ||
14942 | "version": "2.1.3", | ||
14943 | "resolved": "https://registry.npmjs.org/nwsapi/-/nwsapi-2.1.3.tgz", | ||
14944 | "integrity": "sha512-RowAaJGEgYXEZfQ7tvvdtAQUKPyTR6T6wNu0fwlNsGQYr/h3yQc6oI8WnVZh3Y/Sylwc+dtAlvPqfFZjhTyk3A==", | ||
14945 | "dev": true | ||
14946 | }, | ||
13580 | "oauth-sign": { | 14947 | "oauth-sign": { |
13581 | "version": "0.9.0", | 14948 | "version": "0.9.0", |
13582 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", | 14949 | "resolved": "https://registry.npmjs.org/oauth-sign/-/oauth-sign-0.9.0.tgz", |
@@ -13988,6 +15355,15 @@ | |||
13988 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", | 15355 | "integrity": "sha1-n26xgvbJqozXQwBKfU+WsZaw+ww=", |
13989 | "dev": true | 15356 | "dev": true |
13990 | }, | 15357 | }, |
15358 | "p-each-series": { | ||
15359 | "version": "1.0.0", | ||
15360 | "resolved": "https://registry.npmjs.org/p-each-series/-/p-each-series-1.0.0.tgz", | ||
15361 | "integrity": "sha1-kw89Et0fUOdDRFeiLNbwSsatf3E=", | ||
15362 | "dev": true, | ||
15363 | "requires": { | ||
15364 | "p-reduce": "^1.0.0" | ||
15365 | } | ||
15366 | }, | ||
13991 | "p-finally": { | 15367 | "p-finally": { |
13992 | "version": "1.0.0", | 15368 | "version": "1.0.0", |
13993 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", | 15369 | "resolved": "https://registry.npmjs.org/p-finally/-/p-finally-1.0.0.tgz", |
@@ -14298,6 +15674,12 @@ | |||
14298 | } | 15674 | } |
14299 | } | 15675 | } |
14300 | }, | 15676 | }, |
15677 | "parse5": { | ||
15678 | "version": "4.0.0", | ||
15679 | "resolved": "https://registry.npmjs.org/parse5/-/parse5-4.0.0.tgz", | ||
15680 | "integrity": "sha512-VrZ7eOd3T1Fk4XWNXMgiGBK/z0MG48BWG2uQNU4I72fkQuKUTZpl+u9k+CxEG0twMVzSmXEEz12z5Fnw1jIQFA==", | ||
15681 | "dev": true | ||
15682 | }, | ||
14301 | "parsejson": { | 15683 | "parsejson": { |
14302 | "version": "0.0.3", | 15684 | "version": "0.0.3", |
14303 | "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", | 15685 | "resolved": "https://registry.npmjs.org/parsejson/-/parsejson-0.0.3.tgz", |
@@ -14553,6 +15935,12 @@ | |||
14553 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", | 15935 | "integrity": "sha512-ARhBOdzS3e41FbkW/XWrTEtukqqLoK5+Z/4UeDaLuSW+39JPeFgs4gCGqsrJHVZX0fUrx//4OF0K1CUGwlIFow==", |
14554 | "dev": true | 15936 | "dev": true |
14555 | }, | 15937 | }, |
15938 | "pn": { | ||
15939 | "version": "1.1.0", | ||
15940 | "resolved": "https://registry.npmjs.org/pn/-/pn-1.1.0.tgz", | ||
15941 | "integrity": "sha512-2qHaIQr2VLRFoxe2nASzsV6ef4yOOH+Fi9FBOVH6cqeSgUnoyySPZkxzLuzd+RYOQTRpROA0ztTMqxROKSb/nA==", | ||
15942 | "dev": true | ||
15943 | }, | ||
14556 | "portfinder": { | 15944 | "portfinder": { |
14557 | "version": "1.0.20", | 15945 | "version": "1.0.20", |
14558 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", | 15946 | "resolved": "https://registry.npmjs.org/portfinder/-/portfinder-1.0.20.tgz", |
@@ -14616,6 +16004,32 @@ | |||
14616 | "utila": "~0.4" | 16004 | "utila": "~0.4" |
14617 | } | 16005 | } |
14618 | }, | 16006 | }, |
16007 | "pretty-format": { | ||
16008 | "version": "24.7.0", | ||
16009 | "resolved": "https://registry.npmjs.org/pretty-format/-/pretty-format-24.7.0.tgz", | ||
16010 | "integrity": "sha512-apen5cjf/U4dj7tHetpC7UEFCvtAgnNZnBDkfPv3fokzIqyOJckAG9OlAPC1BlFALnqT/lGB2tl9EJjlK6eCsA==", | ||
16011 | "dev": true, | ||
16012 | "requires": { | ||
16013 | "@jest/types": "^24.7.0", | ||
16014 | "ansi-regex": "^4.0.0", | ||
16015 | "ansi-styles": "^3.2.0", | ||
16016 | "react-is": "^16.8.4" | ||
16017 | }, | ||
16018 | "dependencies": { | ||
16019 | "ansi-regex": { | ||
16020 | "version": "4.1.0", | ||
16021 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
16022 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", | ||
16023 | "dev": true | ||
16024 | }, | ||
16025 | "react-is": { | ||
16026 | "version": "16.8.6", | ||
16027 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", | ||
16028 | "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==", | ||
16029 | "dev": true | ||
16030 | } | ||
16031 | } | ||
16032 | }, | ||
14619 | "pretty-hrtime": { | 16033 | "pretty-hrtime": { |
14620 | "version": "1.0.3", | 16034 | "version": "1.0.3", |
14621 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", | 16035 | "resolved": "https://registry.npmjs.org/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz", |
@@ -14731,6 +16145,16 @@ | |||
14731 | "retry": "^0.10.0" | 16145 | "retry": "^0.10.0" |
14732 | } | 16146 | } |
14733 | }, | 16147 | }, |
16148 | "prompts": { | ||
16149 | "version": "2.0.4", | ||
16150 | "resolved": "https://registry.npmjs.org/prompts/-/prompts-2.0.4.tgz", | ||
16151 | "integrity": "sha512-HTzM3UWp/99A0gk51gAegwo1QRYA7xjcZufMNe33rCclFszUYAuHe1fIN/3ZmiHeGPkUsNaRyQm1hHOfM0PKxA==", | ||
16152 | "dev": true, | ||
16153 | "requires": { | ||
16154 | "kleur": "^3.0.2", | ||
16155 | "sisteransi": "^1.0.0" | ||
16156 | } | ||
16157 | }, | ||
14734 | "promzard": { | 16158 | "promzard": { |
14735 | "version": "0.3.0", | 16159 | "version": "0.3.0", |
14736 | "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", | 16160 | "resolved": "https://registry.npmjs.org/promzard/-/promzard-0.3.0.tgz", |
@@ -15406,6 +16830,15 @@ | |||
15406 | } | 16830 | } |
15407 | } | 16831 | } |
15408 | }, | 16832 | }, |
16833 | "realpath-native": { | ||
16834 | "version": "1.1.0", | ||
16835 | "resolved": "https://registry.npmjs.org/realpath-native/-/realpath-native-1.1.0.tgz", | ||
16836 | "integrity": "sha512-wlgPA6cCIIg9gKz0fgAPjnzh4yR/LnXovwuo9hvyGvx3h8nX4+/iLZplfUWasXpqD8BdnGnP5njOFjkUwPzvjA==", | ||
16837 | "dev": true, | ||
16838 | "requires": { | ||
16839 | "util.promisify": "^1.0.0" | ||
16840 | } | ||
16841 | }, | ||
15409 | "rechoir": { | 16842 | "rechoir": { |
15410 | "version": "0.6.2", | 16843 | "version": "0.6.2", |
15411 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", | 16844 | "resolved": "https://registry.npmjs.org/rechoir/-/rechoir-0.6.2.tgz", |
@@ -15739,6 +17172,26 @@ | |||
15739 | "uuid": "^3.3.2" | 17172 | "uuid": "^3.3.2" |
15740 | } | 17173 | } |
15741 | }, | 17174 | }, |
17175 | "request-promise-core": { | ||
17176 | "version": "1.1.2", | ||
17177 | "resolved": "https://registry.npmjs.org/request-promise-core/-/request-promise-core-1.1.2.tgz", | ||
17178 | "integrity": "sha512-UHYyq1MO8GsefGEt7EprS8UrXsm1TxEvFUX1IMTuSLU2Rh7fTIdFtl8xD7JiEYiWU2dl+NYAjCTksTehQUxPag==", | ||
17179 | "dev": true, | ||
17180 | "requires": { | ||
17181 | "lodash": "^4.17.11" | ||
17182 | } | ||
17183 | }, | ||
17184 | "request-promise-native": { | ||
17185 | "version": "1.0.7", | ||
17186 | "resolved": "https://registry.npmjs.org/request-promise-native/-/request-promise-native-1.0.7.tgz", | ||
17187 | "integrity": "sha512-rIMnbBdgNViL37nZ1b3L/VfPOpSi0TqVDQPAvO6U14lMzOLrt5nilxCQqtDKhZeDiW0/hkCXGoQjhgJd/tCh6w==", | ||
17188 | "dev": true, | ||
17189 | "requires": { | ||
17190 | "request-promise-core": "1.1.2", | ||
17191 | "stealthy-require": "^1.1.1", | ||
17192 | "tough-cookie": "^2.3.3" | ||
17193 | } | ||
17194 | }, | ||
15742 | "require-directory": { | 17195 | "require-directory": { |
15743 | "version": "2.1.1", | 17196 | "version": "2.1.1", |
15744 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", | 17197 | "resolved": "https://registry.npmjs.org/require-directory/-/require-directory-2.1.1.tgz", |
@@ -15875,6 +17328,12 @@ | |||
15875 | "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz", | 17328 | "resolved": "https://registry.npmjs.org/route-parser/-/route-parser-0.0.5.tgz", |
15876 | "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ=" | 17329 | "integrity": "sha1-fR0J0zXkkJQDHqFpkaSnmwG74fQ=" |
15877 | }, | 17330 | }, |
17331 | "rsvp": { | ||
17332 | "version": "4.8.4", | ||
17333 | "resolved": "https://registry.npmjs.org/rsvp/-/rsvp-4.8.4.tgz", | ||
17334 | "integrity": "sha512-6FomvYPfs+Jy9TfXmBpBuMWNH94SgCsZmJKcanySzgNNP6LjWxBvyLTa9KaMfDDM5oxRfrKDB0r/qeRsLwnBfA==", | ||
17335 | "dev": true | ||
17336 | }, | ||
15878 | "run-async": { | 17337 | "run-async": { |
15879 | "version": "2.3.0", | 17338 | "version": "2.3.0", |
15880 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", | 17339 | "resolved": "https://registry.npmjs.org/run-async/-/run-async-2.3.0.tgz", |
@@ -15933,6 +17392,23 @@ | |||
15933 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", | 17392 | "resolved": "https://registry.npmjs.org/safer-buffer/-/safer-buffer-2.1.2.tgz", |
15934 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" | 17393 | "integrity": "sha512-YZo3K82SD7Riyi0E1EQPojLz7kpepnSQI9IyPbHHg1XXXevb5dJI7tpyN2ADxGcQbHG7vcyRHk0cbwqcQriUtg==" |
15935 | }, | 17394 | }, |
17395 | "sane": { | ||
17396 | "version": "4.1.0", | ||
17397 | "resolved": "https://registry.npmjs.org/sane/-/sane-4.1.0.tgz", | ||
17398 | "integrity": "sha512-hhbzAgTIX8O7SHfp2c8/kREfEn4qO/9q8C9beyY6+tvZ87EpoZ3i1RIEvp27YBswnNbY9mWd6paKVmKbAgLfZA==", | ||
17399 | "dev": true, | ||
17400 | "requires": { | ||
17401 | "@cnakazawa/watch": "^1.0.3", | ||
17402 | "anymatch": "^2.0.0", | ||
17403 | "capture-exit": "^2.0.0", | ||
17404 | "exec-sh": "^0.3.2", | ||
17405 | "execa": "^1.0.0", | ||
17406 | "fb-watchman": "^2.0.0", | ||
17407 | "micromatch": "^3.1.4", | ||
17408 | "minimist": "^1.1.1", | ||
17409 | "walker": "~1.0.5" | ||
17410 | } | ||
17411 | }, | ||
15936 | "sanitize-filename": { | 17412 | "sanitize-filename": { |
15937 | "version": "1.6.1", | 17413 | "version": "1.6.1", |
15938 | "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", | 17414 | "resolved": "https://registry.npmjs.org/sanitize-filename/-/sanitize-filename-1.6.1.tgz", |
@@ -16396,6 +17872,12 @@ | |||
16396 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", | 17872 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=", |
16397 | "dev": true | 17873 | "dev": true |
16398 | }, | 17874 | }, |
17875 | "shellwords": { | ||
17876 | "version": "0.1.1", | ||
17877 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", | ||
17878 | "integrity": "sha512-vFwSUfQvqybiICwZY5+DAWIPLKsWO31Q91JSKl3UYv+K5c2QRPzn0qzec6QPu1Qc9eHYItiP3NdJqNVqetYAww==", | ||
17879 | "dev": true | ||
17880 | }, | ||
16399 | "sigmund": { | 17881 | "sigmund": { |
16400 | "version": "1.0.1", | 17882 | "version": "1.0.1", |
16401 | "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", | 17883 | "resolved": "https://registry.npmjs.org/sigmund/-/sigmund-1.0.1.tgz", |
@@ -16460,6 +17942,12 @@ | |||
16460 | } | 17942 | } |
16461 | } | 17943 | } |
16462 | }, | 17944 | }, |
17945 | "sisteransi": { | ||
17946 | "version": "1.0.0", | ||
17947 | "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.0.tgz", | ||
17948 | "integrity": "sha512-N+z4pHB4AmUv0SjveWRd6q1Nj5w62m5jodv+GD8lvmbY/83T/rpbJGZOnK5T149OldDj4Db07BSv9xY4K6NTPQ==", | ||
17949 | "dev": true | ||
17950 | }, | ||
16463 | "slash": { | 17951 | "slash": { |
16464 | "version": "2.0.0", | 17952 | "version": "2.0.0", |
16465 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", | 17953 | "resolved": "https://registry.npmjs.org/slash/-/slash-2.0.0.tgz", |
@@ -17068,6 +18556,12 @@ | |||
17068 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", | 18556 | "integrity": "sha1-VHxws0fo0ytOEI6hoqFZ5f3eGcA=", |
17069 | "dev": true | 18557 | "dev": true |
17070 | }, | 18558 | }, |
18559 | "stack-utils": { | ||
18560 | "version": "1.0.2", | ||
18561 | "resolved": "https://registry.npmjs.org/stack-utils/-/stack-utils-1.0.2.tgz", | ||
18562 | "integrity": "sha512-MTX+MeG5U994cazkjd/9KNAapsHnibjMLnfXodlkXw76JEea0UiNzrqidzo1emMwk7w5Qhc9jd4Bn9TBb1MFwA==", | ||
18563 | "dev": true | ||
18564 | }, | ||
17071 | "stat-mode": { | 18565 | "stat-mode": { |
17072 | "version": "0.2.2", | 18566 | "version": "0.2.2", |
17073 | "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", | 18567 | "resolved": "https://registry.npmjs.org/stat-mode/-/stat-mode-0.2.2.tgz", |
@@ -17136,6 +18630,12 @@ | |||
17136 | } | 18630 | } |
17137 | } | 18631 | } |
17138 | }, | 18632 | }, |
18633 | "stealthy-require": { | ||
18634 | "version": "1.1.1", | ||
18635 | "resolved": "https://registry.npmjs.org/stealthy-require/-/stealthy-require-1.1.1.tgz", | ||
18636 | "integrity": "sha1-NbCYdbT/SfJqd35QmzCQoyJr8ks=", | ||
18637 | "dev": true | ||
18638 | }, | ||
17139 | "stream-browserify": { | 18639 | "stream-browserify": { |
17140 | "version": "2.0.2", | 18640 | "version": "2.0.2", |
17141 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", | 18641 | "resolved": "https://registry.npmjs.org/stream-browserify/-/stream-browserify-2.0.2.tgz", |
@@ -17238,6 +18738,16 @@ | |||
17238 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", | 18738 | "resolved": "https://registry.npmjs.org/strict-uri-encode/-/strict-uri-encode-1.1.0.tgz", |
17239 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" | 18739 | "integrity": "sha1-J5siXfHVgrH1TmWt3UNS4Y+qBxM=" |
17240 | }, | 18740 | }, |
18741 | "string-length": { | ||
18742 | "version": "2.0.0", | ||
18743 | "resolved": "https://registry.npmjs.org/string-length/-/string-length-2.0.0.tgz", | ||
18744 | "integrity": "sha1-1A27aGo6zpYMHP/KVivyxF+DY+0=", | ||
18745 | "dev": true, | ||
18746 | "requires": { | ||
18747 | "astral-regex": "^1.0.0", | ||
18748 | "strip-ansi": "^4.0.0" | ||
18749 | } | ||
18750 | }, | ||
17241 | "string-width": { | 18751 | "string-width": { |
17242 | "version": "2.1.1", | 18752 | "version": "2.1.1", |
17243 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", | 18753 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-2.1.1.tgz", |
@@ -17331,6 +18841,12 @@ | |||
17331 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", | 18841 | "resolved": "https://registry.npmjs.org/symbol-observable/-/symbol-observable-1.2.0.tgz", |
17332 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" | 18842 | "integrity": "sha512-e900nM8RRtGhlV36KGEU9k65K3mPb1WV70OdjfxlG2EAuM1noi/E/BaW/uMhL7bPEssK8QV57vN3esixjUvcXQ==" |
17333 | }, | 18843 | }, |
18844 | "symbol-tree": { | ||
18845 | "version": "3.2.2", | ||
18846 | "resolved": "https://registry.npmjs.org/symbol-tree/-/symbol-tree-3.2.2.tgz", | ||
18847 | "integrity": "sha1-rifbOPZgp64uHDt9G8KQgZuFGeY=", | ||
18848 | "dev": true | ||
18849 | }, | ||
17334 | "table": { | 18850 | "table": { |
17335 | "version": "5.2.3", | 18851 | "version": "5.2.3", |
17336 | "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", | 18852 | "resolved": "https://registry.npmjs.org/table/-/table-5.2.3.tgz", |
@@ -17540,6 +19056,47 @@ | |||
17540 | } | 19056 | } |
17541 | } | 19057 | } |
17542 | }, | 19058 | }, |
19059 | "test-exclude": { | ||
19060 | "version": "5.2.2", | ||
19061 | "resolved": "https://registry.npmjs.org/test-exclude/-/test-exclude-5.2.2.tgz", | ||
19062 | "integrity": "sha512-N2pvaLpT8guUpb5Fe1GJlmvmzH3x+DAKmmyEQmFP792QcLYoGE1syxztSvPD1V8yPe6VrcCt6YGQVjSRjCASsA==", | ||
19063 | "dev": true, | ||
19064 | "requires": { | ||
19065 | "glob": "^7.1.3", | ||
19066 | "minimatch": "^3.0.4", | ||
19067 | "read-pkg-up": "^4.0.0", | ||
19068 | "require-main-filename": "^2.0.0" | ||
19069 | }, | ||
19070 | "dependencies": { | ||
19071 | "read-pkg": { | ||
19072 | "version": "3.0.0", | ||
19073 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", | ||
19074 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", | ||
19075 | "dev": true, | ||
19076 | "requires": { | ||
19077 | "load-json-file": "^4.0.0", | ||
19078 | "normalize-package-data": "^2.3.2", | ||
19079 | "path-type": "^3.0.0" | ||
19080 | } | ||
19081 | }, | ||
19082 | "read-pkg-up": { | ||
19083 | "version": "4.0.0", | ||
19084 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-4.0.0.tgz", | ||
19085 | "integrity": "sha512-6etQSH7nJGsK0RbG/2TeDzZFa8shjQ1um+SwQQ5cwKy0dhSXdOncEhb1CPpvQG4h7FyOV6EB6YlV0yJvZQNAkA==", | ||
19086 | "dev": true, | ||
19087 | "requires": { | ||
19088 | "find-up": "^3.0.0", | ||
19089 | "read-pkg": "^3.0.0" | ||
19090 | } | ||
19091 | }, | ||
19092 | "require-main-filename": { | ||
19093 | "version": "2.0.0", | ||
19094 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", | ||
19095 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", | ||
19096 | "dev": true | ||
19097 | } | ||
19098 | } | ||
19099 | }, | ||
17543 | "text-extensions": { | 19100 | "text-extensions": { |
17544 | "version": "1.9.0", | 19101 | "version": "1.9.0", |
17545 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", | 19102 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", |
@@ -17563,6 +19120,12 @@ | |||
17563 | "prop-types": "^15.5.8" | 19120 | "prop-types": "^15.5.8" |
17564 | } | 19121 | } |
17565 | }, | 19122 | }, |
19123 | "throat": { | ||
19124 | "version": "4.1.0", | ||
19125 | "resolved": "https://registry.npmjs.org/throat/-/throat-4.1.0.tgz", | ||
19126 | "integrity": "sha1-iQN8vJLFarGJJua6TLsgDhVnKmo=", | ||
19127 | "dev": true | ||
19128 | }, | ||
17566 | "throttleit": { | 19129 | "throttleit": { |
17567 | "version": "0.0.2", | 19130 | "version": "0.0.2", |
17568 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", | 19131 | "resolved": "https://registry.npmjs.org/throttleit/-/throttleit-0.0.2.tgz", |
@@ -17666,6 +19229,12 @@ | |||
17666 | "os-tmpdir": "~1.0.2" | 19229 | "os-tmpdir": "~1.0.2" |
17667 | } | 19230 | } |
17668 | }, | 19231 | }, |
19232 | "tmpl": { | ||
19233 | "version": "1.0.4", | ||
19234 | "resolved": "https://registry.npmjs.org/tmpl/-/tmpl-1.0.4.tgz", | ||
19235 | "integrity": "sha1-I2QN17QtAEM5ERQIIOXPRA5SHdE=", | ||
19236 | "dev": true | ||
19237 | }, | ||
17669 | "to-absolute-glob": { | 19238 | "to-absolute-glob": { |
17670 | "version": "2.0.2", | 19239 | "version": "2.0.2", |
17671 | "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", | 19240 | "resolved": "https://registry.npmjs.org/to-absolute-glob/-/to-absolute-glob-2.0.2.tgz", |
@@ -18602,6 +20171,15 @@ | |||
18602 | "indexof": "0.0.1" | 20171 | "indexof": "0.0.1" |
18603 | } | 20172 | } |
18604 | }, | 20173 | }, |
20174 | "w3c-hr-time": { | ||
20175 | "version": "1.0.1", | ||
20176 | "resolved": "https://registry.npmjs.org/w3c-hr-time/-/w3c-hr-time-1.0.1.tgz", | ||
20177 | "integrity": "sha1-gqwr/2PZUOqeMYmlimViX+3xkEU=", | ||
20178 | "dev": true, | ||
20179 | "requires": { | ||
20180 | "browser-process-hrtime": "^0.1.2" | ||
20181 | } | ||
20182 | }, | ||
18605 | "wait-on": { | 20183 | "wait-on": { |
18606 | "version": "3.2.0", | 20184 | "version": "3.2.0", |
18607 | "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.2.0.tgz", | 20185 | "resolved": "https://registry.npmjs.org/wait-on/-/wait-on-3.2.0.tgz", |
@@ -18660,6 +20238,15 @@ | |||
18660 | } | 20238 | } |
18661 | } | 20239 | } |
18662 | }, | 20240 | }, |
20241 | "walker": { | ||
20242 | "version": "1.0.7", | ||
20243 | "resolved": "https://registry.npmjs.org/walker/-/walker-1.0.7.tgz", | ||
20244 | "integrity": "sha1-L3+bj9ENZ3JisYqITijRlhjgKPs=", | ||
20245 | "dev": true, | ||
20246 | "requires": { | ||
20247 | "makeerror": "1.0.x" | ||
20248 | } | ||
20249 | }, | ||
18663 | "warning": { | 20250 | "warning": { |
18664 | "version": "3.0.0", | 20251 | "version": "3.0.0", |
18665 | "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", | 20252 | "resolved": "https://registry.npmjs.org/warning/-/warning-3.0.0.tgz", |
@@ -19060,11 +20647,26 @@ | |||
19060 | "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", | 20647 | "integrity": "sha512-nqHUnMXmBzT0w570r2JpJxfiSD1IzoI+HGVdd3aZ0yNi3ngvQ4jv1dtHt5VGxfI2yj5yqImPhOK4vmIh2xMbGg==", |
19061 | "dev": true | 20648 | "dev": true |
19062 | }, | 20649 | }, |
20650 | "whatwg-encoding": { | ||
20651 | "version": "1.0.5", | ||
20652 | "resolved": "https://registry.npmjs.org/whatwg-encoding/-/whatwg-encoding-1.0.5.tgz", | ||
20653 | "integrity": "sha512-b5lim54JOPN9HtzvK9HFXvBma/rnfFeqsic0hSpjtDbVxR3dJKLc+KB4V6GgiGOvl7CY/KNh8rxSo9DKQrnUEw==", | ||
20654 | "dev": true, | ||
20655 | "requires": { | ||
20656 | "iconv-lite": "0.4.24" | ||
20657 | } | ||
20658 | }, | ||
19063 | "whatwg-fetch": { | 20659 | "whatwg-fetch": { |
19064 | "version": "3.0.0", | 20660 | "version": "3.0.0", |
19065 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", | 20661 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", |
19066 | "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" | 20662 | "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" |
19067 | }, | 20663 | }, |
20664 | "whatwg-mimetype": { | ||
20665 | "version": "2.3.0", | ||
20666 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", | ||
20667 | "integrity": "sha512-M4yMwr6mAnQz76TbJm914+gPpB/nCwvZbJU28cUD6dR004SAxDLOOSUaB1JDRqLtaOV/vi0IC5lEAGFgrjGv/g==", | ||
20668 | "dev": true | ||
20669 | }, | ||
19068 | "whatwg-url": { | 20670 | "whatwg-url": { |
19069 | "version": "7.0.0", | 20671 | "version": "7.0.0", |
19070 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", | 20672 | "resolved": "https://registry.npmjs.org/whatwg-url/-/whatwg-url-7.0.0.tgz", |
@@ -19318,13 +20920,11 @@ | |||
19318 | } | 20920 | } |
19319 | }, | 20921 | }, |
19320 | "ws": { | 20922 | "ws": { |
19321 | "version": "1.1.5", | 20923 | "version": "6.2.1", |
19322 | "resolved": "https://registry.npmjs.org/ws/-/ws-1.1.5.tgz", | 20924 | "resolved": "https://registry.npmjs.org/ws/-/ws-6.2.1.tgz", |
19323 | "integrity": "sha512-o3KqipXNUdS7wpQzBHSe180lBGO60SoK0yVo3CYJgb2MkobuWuBX6dhkYP5ORCLd55y+SaflMOV5fqAB53ux4w==", | 20925 | "integrity": "sha512-GIyAXC2cB7LjvpgMt9EKS2ldqr0MTrORaleiOno6TweZ6r3TKtoFQWay/2PceJ3RuBasOHzXNn5Lrw1X0bEjqA==", |
19324 | "dev": true, | ||
19325 | "requires": { | 20926 | "requires": { |
19326 | "options": ">=0.0.5", | 20927 | "async-limiter": "~1.0.0" |
19327 | "ultron": "1.0.x" | ||
19328 | } | 20928 | } |
19329 | }, | 20929 | }, |
19330 | "wtf-8": { | 20930 | "wtf-8": { |
@@ -19339,6 +20939,12 @@ | |||
19339 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", | 20939 | "integrity": "sha1-SWsswQnsqNus/i3HK2A8F8WHCtQ=", |
19340 | "dev": true | 20940 | "dev": true |
19341 | }, | 20941 | }, |
20942 | "xml-name-validator": { | ||
20943 | "version": "3.0.0", | ||
20944 | "resolved": "https://registry.npmjs.org/xml-name-validator/-/xml-name-validator-3.0.0.tgz", | ||
20945 | "integrity": "sha512-A5CUptxDsvxKJEU3yO6DuWBSJz/qizqzJKOMIfUJHETbBw/sFaDxgd6fxm1ewUaM0jZ444Fc5vC5ROYurg/4Pw==", | ||
20946 | "dev": true | ||
20947 | }, | ||
19342 | "xmlbuilder": { | 20948 | "xmlbuilder": { |
19343 | "version": "9.0.7", | 20949 | "version": "9.0.7", |
19344 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", | 20950 | "resolved": "https://registry.npmjs.org/xmlbuilder/-/xmlbuilder-9.0.7.tgz", |
diff --git a/package.json b/package.json index 361491acd..c1a8c310f 100644 --- a/package.json +++ b/package.json | |||
@@ -2,7 +2,7 @@ | |||
2 | "name": "franz", | 2 | "name": "franz", |
3 | "productName": "Franz", | 3 | "productName": "Franz", |
4 | "appId": "com.meetfranz.franz", | 4 | "appId": "com.meetfranz.franz", |
5 | "version": "5.0.1", | 5 | "version": "5.1.0", |
6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", | 6 | "description": "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more.", |
7 | "copyright": "adlk x franz - Stefan Malzner", | 7 | "copyright": "adlk x franz - Stefan Malzner", |
8 | "main": "index.js", | 8 | "main": "index.js", |
@@ -15,6 +15,8 @@ | |||
15 | "start:local": "cross-env LOCAL_API=1 npm start", | 15 | "start:local": "cross-env LOCAL_API=1 npm start", |
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 | "test": "jest", | ||
19 | "test:watch": "jest --watch", | ||
18 | "lint": "eslint src", | 20 | "lint": "eslint src", |
19 | "manage-translations": "node ./src/i18n/manage-translations.js", | 21 | "manage-translations": "node ./src/i18n/manage-translations.js", |
20 | "sign": "gulp sign", | 22 | "sign": "gulp sign", |
@@ -54,6 +56,7 @@ | |||
54 | "hex-to-rgba": "1.0.2", | 56 | "hex-to-rgba": "1.0.2", |
55 | "jsonwebtoken": "8.5.1", | 57 | "jsonwebtoken": "8.5.1", |
56 | "lodash": "^4.17.4", | 58 | "lodash": "^4.17.4", |
59 | "marked": "0.6.1", | ||
57 | "mdi": "^1.9.33", | 60 | "mdi": "^1.9.33", |
58 | "mime-types": "2.1.21", | 61 | "mime-types": "2.1.21", |
59 | "mobx": "5.7.0", | 62 | "mobx": "5.7.0", |
@@ -82,7 +85,8 @@ | |||
82 | "semver": "^5.4.1", | 85 | "semver": "^5.4.1", |
83 | "smoothscroll-polyfill": "^0.3.4", | 86 | "smoothscroll-polyfill": "^0.3.4", |
84 | "tar": "^4.0.2", | 87 | "tar": "^4.0.2", |
85 | "uuid": "^3.0.1" | 88 | "uuid": "^3.0.1", |
89 | "ws": "6.2.1" | ||
86 | }, | 90 | }, |
87 | "devDependencies": { | 91 | "devDependencies": { |
88 | "@adlk/misty": "^0.1.1", | 92 | "@adlk/misty": "^0.1.1", |
@@ -113,13 +117,14 @@ | |||
113 | "cross-env": "^5.0.5", | 117 | "cross-env": "^5.0.5", |
114 | "cz-conventional-changelog": "2.1.0", | 118 | "cz-conventional-changelog": "2.1.0", |
115 | "dotenv": "^4.0.0", | 119 | "dotenv": "^4.0.0", |
116 | "electron": "4.0.8", | 120 | "electron": "4.1.4", |
117 | "electron-builder": "20.38.4", | 121 | "electron-builder": "20.38.4", |
118 | "electron-rebuild": "1.8.4", | 122 | "electron-rebuild": "1.8.4", |
119 | "eslint": "5.10.0", | 123 | "eslint": "5.10.0", |
120 | "eslint-config-airbnb": "17.1.0", | 124 | "eslint-config-airbnb": "17.1.0", |
121 | "eslint-loader": "^1.9.0", | 125 | "eslint-loader": "^1.9.0", |
122 | "eslint-plugin-import": "2.14.0", | 126 | "eslint-plugin-import": "2.14.0", |
127 | "eslint-plugin-jest": "22.4.1", | ||
123 | "eslint-plugin-jsx-a11y": "6.1.2", | 128 | "eslint-plugin-jsx-a11y": "6.1.2", |
124 | "eslint-plugin-react": "7.11.1", | 129 | "eslint-plugin-react": "7.11.1", |
125 | "expect.js": "0.3.1", | 130 | "expect.js": "0.3.1", |
@@ -132,6 +137,7 @@ | |||
132 | "hex-rgb": "3.0.0", | 137 | "hex-rgb": "3.0.0", |
133 | "html-webpack-plugin": "4.0.0-beta.5", | 138 | "html-webpack-plugin": "4.0.0-beta.5", |
134 | "husky": "^1.1.4", | 139 | "husky": "^1.1.4", |
140 | "jest": "24.7.1", | ||
135 | "kebab-case": "1.0.0", | 141 | "kebab-case": "1.0.0", |
136 | "lerna": "^3.8.0", | 142 | "lerna": "^3.8.0", |
137 | "mobx-react-devtools": "6.0.3", | 143 | "mobx-react-devtools": "6.0.3", |
diff --git a/packages/theme/src/themes/dark/index.ts b/packages/theme/src/themes/dark/index.ts index fd04b106c..bd9f001e8 100644 --- a/packages/theme/src/themes/dark/index.ts +++ b/packages/theme/src/themes/dark/index.ts | |||
@@ -1,5 +1,5 @@ | |||
1 | import color from 'color'; | 1 | import color from 'color'; |
2 | import { merge, cloneDeep } from 'lodash'; | 2 | import { cloneDeep, merge } from 'lodash'; |
3 | 3 | ||
4 | import * as defaultStyles from '../default'; | 4 | import * as defaultStyles from '../default'; |
5 | import * as legacyStyles from '../legacy'; | 5 | import * as legacyStyles from '../legacy'; |
@@ -112,21 +112,9 @@ export const workspaces = merge({}, defaultStyles.workspaces, { | |||
112 | }, | 112 | }, |
113 | }); | 113 | }); |
114 | 114 | ||
115 | // // Workspace settings | 115 | // Announcements |
116 | // export const workspaceSettings = merge({}, defaultStyles.workspaceSettings, { | 116 | export const announcements = merge({}, defaultStyles.announcements, { |
117 | // listItemBorderColor: legacyStyles.darkThemeGrayDarker, | 117 | spotlight: { |
118 | // listItemHoverBgColor: legacyStyles.darkThemeGrayDarker, | 118 | background: legacyStyles.darkThemeGrayDark, |
119 | // }); | 119 | }, |
120 | // | 120 | }); |
121 | // // Workspace Drawer | ||
122 | // export const workspaceDrawerBackground = color(colorBackground).lighten(0.3).hex(); | ||
123 | // export const workspaceDrawerAddButtonColor = legacyStyles.darkThemeGrayLighter; | ||
124 | // export const workspaceDrawerAddButtonHoverColor = legacyStyles.darkThemeGraySmoke; | ||
125 | // export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).lighten(0.2).hex(); | ||
126 | // export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).lighten(0.2).hex(); | ||
127 | // export const workspaceDrawerItemActiveBackground = defaultStyles.brandPrimary; | ||
128 | // export const workspaceDrawerItemNameColor = colorText; | ||
129 | // export const workspaceDrawerItemNameActiveColor = 'white'; | ||
130 | // export const workspaceDrawerServicesColor = color(colorText).darken(0.5).hex(); | ||
131 | // export const workspaceDrawerServicesActiveColor = color(defaultStyles.brandPrimary).lighten(0.5).hex(); | ||
132 | // | ||
diff --git a/packages/theme/src/themes/default/index.ts b/packages/theme/src/themes/default/index.ts index d0493b82f..0f02fa3c8 100644 --- a/packages/theme/src/themes/default/index.ts +++ b/packages/theme/src/themes/default/index.ts | |||
@@ -201,22 +201,9 @@ export const workspaces = { | |||
201 | }, | 201 | }, |
202 | }; | 202 | }; |
203 | 203 | ||
204 | // export const workspaceSettings = { | 204 | // Announcements |
205 | // listItemHeight: 57, | 205 | export const announcements = { |
206 | // listItemBorderColor: legacyStyles.themeGrayLightest, | 206 | spotlight: { |
207 | // listItemHoverBgColor: legacyStyles.themeGrayLightest, | 207 | background: legacyStyles.themeGrayLightest, |
208 | // }; | 208 | }, |
209 | // | 209 | }; |
210 | // // Workspace Drawer | ||
211 | // export const workspaceDrawerWidth = 300; | ||
212 | // export const workspaceDrawerPadding = 20; | ||
213 | // export const workspaceDrawerBackground = color(colorBackground).lighten(0.1).hex(); | ||
214 | // export const workspaceDrawerAddButtonColor = legacyStyles.themeGrayLight; | ||
215 | // export const workspaceDrawerAddButtonHoverColor = color(legacyStyles.themeGrayLight).lighten(0.1).hex(); | ||
216 | // export const workspaceDrawerItemHoverBackground = color(workspaceDrawerBackground).darken(0.01).hex(); | ||
217 | // export const workspaceDrawerItemActiveBackground = legacyStyles.themeGrayLightest; | ||
218 | // export const workspaceDrawerItemBorder = color(workspaceDrawerBackground).darken(0.05).hex(); | ||
219 | // export const workspaceDrawerItemNameColor = colorText; | ||
220 | // export const workspaceDrawerItemNameActiveColor = colorText; | ||
221 | // export const workspaceDrawerServicesColor = color(colorText).lighten(1.5).hex(); | ||
222 | // export const workspaceDrawerServicesActiveColor = workspaceDrawerServicesColor; | ||
diff --git a/src/actions/index.js b/src/actions/index.js index 00f843cd6..fc525afeb 100644 --- a/src/actions/index.js +++ b/src/actions/index.js | |||
@@ -11,6 +11,7 @@ import payment from './payment'; | |||
11 | import news from './news'; | 11 | import news from './news'; |
12 | import settings from './settings'; | 12 | import settings from './settings'; |
13 | import requests from './requests'; | 13 | import requests from './requests'; |
14 | import announcements from '../features/announcements/actions'; | ||
14 | import workspaces from '../features/workspaces/actions'; | 15 | import workspaces from '../features/workspaces/actions'; |
15 | 16 | ||
16 | const actions = Object.assign({}, { | 17 | const actions = Object.assign({}, { |
@@ -28,5 +29,6 @@ const actions = Object.assign({}, { | |||
28 | 29 | ||
29 | export default Object.assign( | 30 | export default Object.assign( |
30 | defineActions(actions, PropTypes.checkPropTypes), | 31 | defineActions(actions, PropTypes.checkPropTypes), |
32 | { announcements }, | ||
31 | { workspaces }, | 33 | { workspaces }, |
32 | ); | 34 | ); |
diff --git a/src/actions/lib/actions.js b/src/actions/lib/actions.js index 2bc7d2711..b38db9946 100644 --- a/src/actions/lib/actions.js +++ b/src/actions/lib/actions.js | |||
@@ -1,7 +1,7 @@ | |||
1 | export const createActionsFromDefinitions = (actionDefinitions, validate) => { | 1 | export const createActionsFromDefinitions = (actionDefinitions, validate) => { |
2 | const actions = {}; | 2 | const actions = {}; |
3 | Object.keys(actionDefinitions).forEach((actionName) => { | 3 | Object.keys(actionDefinitions).forEach((actionName) => { |
4 | const action = (params) => { | 4 | const action = (params = {}) => { |
5 | const schema = actionDefinitions[actionName]; | 5 | const schema = actionDefinitions[actionName]; |
6 | validate(schema, params, actionName); | 6 | validate(schema, params, actionName); |
7 | action.notify(params); | 7 | action.notify(params); |
diff --git a/src/actions/service.js b/src/actions/service.js index ceaabc31e..68c62d594 100644 --- a/src/actions/service.js +++ b/src/actions/service.js | |||
@@ -4,7 +4,9 @@ import ServiceModel from '../models/Service'; | |||
4 | export default { | 4 | export default { |
5 | setActive: { | 5 | setActive: { |
6 | serviceId: PropTypes.string.isRequired, | 6 | serviceId: PropTypes.string.isRequired, |
7 | keepActiveRoute: PropTypes.bool, | ||
7 | }, | 8 | }, |
9 | blurActive: {}, | ||
8 | setActiveNext: {}, | 10 | setActiveNext: {}, |
9 | setActivePrev: {}, | 11 | setActivePrev: {}, |
10 | showAddServiceInterface: { | 12 | showAddServiceInterface: { |
diff --git a/src/api/PaymentApi.js b/src/api/PaymentApi.js index 3f6bb442e..7325151e9 100644 --- a/src/api/PaymentApi.js +++ b/src/api/PaymentApi.js | |||
@@ -11,12 +11,4 @@ export default class PaymentApi { | |||
11 | getHostedPage(planId) { | 11 | getHostedPage(planId) { |
12 | return this.server.getHostedPage(planId); | 12 | return this.server.getHostedPage(planId); |
13 | } | 13 | } |
14 | |||
15 | getDashboardUrl() { | ||
16 | return this.server.getPaymentDashboardUrl(); | ||
17 | } | ||
18 | |||
19 | getOrders() { | ||
20 | return this.server.getSubscriptionOrders(); | ||
21 | } | ||
22 | } | 14 | } |
diff --git a/src/api/server/ServerApi.js b/src/api/server/ServerApi.js index bafeef005..a9ce202ff 100644 --- a/src/api/server/ServerApi.js +++ b/src/api/server/ServerApi.js | |||
@@ -268,7 +268,7 @@ export default class ServerApi { | |||
268 | const data = await request.json(); | 268 | const data = await request.json(); |
269 | 269 | ||
270 | const features = data; | 270 | const features = data; |
271 | console.debug('ServerApi::getDefaultFeatures resolves', features); | 271 | debug('ServerApi::getDefaultFeatures resolves', features); |
272 | return features; | 272 | return features; |
273 | } | 273 | } |
274 | 274 | ||
@@ -280,7 +280,7 @@ export default class ServerApi { | |||
280 | const data = await request.json(); | 280 | const data = await request.json(); |
281 | 281 | ||
282 | const features = data; | 282 | const features = data; |
283 | console.debug('ServerApi::getFeatures resolves', features); | 283 | debug('ServerApi::getFeatures resolves', features); |
284 | return features; | 284 | return features; |
285 | } | 285 | } |
286 | 286 | ||
@@ -418,23 +418,6 @@ export default class ServerApi { | |||
418 | return data; | 418 | return data; |
419 | } | 419 | } |
420 | 420 | ||
421 | async getPaymentDashboardUrl() { | ||
422 | const request = await sendAuthRequest(`${API_URL}/me/billing`); | ||
423 | if (!request.ok) throw request; | ||
424 | const data = await request.json(); | ||
425 | debug('ServerApi::getPaymentDashboardUrl resolves', data); | ||
426 | return data; | ||
427 | } | ||
428 | |||
429 | async getSubscriptionOrders() { | ||
430 | const request = await sendAuthRequest(`${API_URL}/me/subscription`); | ||
431 | if (!request.ok) throw request; | ||
432 | const data = await request.json(); | ||
433 | const orders = this._mapOrderModels(data); | ||
434 | debug('ServerApi::getSubscriptionOrders resolves', orders); | ||
435 | return orders; | ||
436 | } | ||
437 | |||
438 | // News | 421 | // News |
439 | async getLatestNews() { | 422 | async getLatestNews() { |
440 | const url = `${API_URL}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`; | 423 | const url = `${API_URL}/news?platform=${os.platform()}&arch=${os.arch()}&version=${app.getVersion()}`; |
diff --git a/src/app.js b/src/app.js index fb9f1c6ab..cb3e37c64 100644 --- a/src/app.js +++ b/src/app.js | |||
@@ -27,6 +27,7 @@ import RecipesScreen from './containers/settings/RecipesScreen'; | |||
27 | import ServicesScreen from './containers/settings/ServicesScreen'; | 27 | import ServicesScreen from './containers/settings/ServicesScreen'; |
28 | import EditServiceScreen from './containers/settings/EditServiceScreen'; | 28 | import EditServiceScreen from './containers/settings/EditServiceScreen'; |
29 | import AccountScreen from './containers/settings/AccountScreen'; | 29 | import AccountScreen from './containers/settings/AccountScreen'; |
30 | import TeamScreen from './containers/settings/TeamScreen'; | ||
30 | import EditUserScreen from './containers/settings/EditUserScreen'; | 31 | import EditUserScreen from './containers/settings/EditUserScreen'; |
31 | import EditSettingsScreen from './containers/settings/EditSettingsScreen'; | 32 | import EditSettingsScreen from './containers/settings/EditSettingsScreen'; |
32 | import InviteSettingsScreen from './containers/settings/InviteScreen'; | 33 | import InviteSettingsScreen from './containers/settings/InviteScreen'; |
@@ -42,6 +43,8 @@ import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopup | |||
42 | import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; | 43 | import WorkspacesScreen from './features/workspaces/containers/WorkspacesScreen'; |
43 | import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; | 44 | import EditWorkspaceScreen from './features/workspaces/containers/EditWorkspaceScreen'; |
44 | import { WORKSPACES_ROUTES } from './features/workspaces'; | 45 | import { WORKSPACES_ROUTES } from './features/workspaces'; |
46 | import AnnouncementScreen from './features/announcements/components/AnnouncementScreen'; | ||
47 | import { ANNOUNCEMENTS_ROUTES } from './features/announcements'; | ||
45 | 48 | ||
46 | // Add Polyfills | 49 | // Add Polyfills |
47 | smoothScroll.polyfill(); | 50 | smoothScroll.polyfill(); |
@@ -72,6 +75,7 @@ window.addEventListener('load', () => { | |||
72 | <I18N> | 75 | <I18N> |
73 | <Router history={history}> | 76 | <Router history={history}> |
74 | <Route path="/" component={AppLayoutContainer}> | 77 | <Route path="/" component={AppLayoutContainer}> |
78 | <Route path={ANNOUNCEMENTS_ROUTES.TARGET} component={AnnouncementScreen} /> | ||
75 | <Route path="/settings" component={SettingsWindow}> | 79 | <Route path="/settings" component={SettingsWindow}> |
76 | <IndexRedirect to="/settings/recipes" /> | 80 | <IndexRedirect to="/settings/recipes" /> |
77 | <Route path="/settings/recipes" component={RecipesScreen} /> | 81 | <Route path="/settings/recipes" component={RecipesScreen} /> |
@@ -82,6 +86,7 @@ window.addEventListener('load', () => { | |||
82 | <Route path={WORKSPACES_ROUTES.EDIT} component={EditWorkspaceScreen} /> | 86 | <Route path={WORKSPACES_ROUTES.EDIT} component={EditWorkspaceScreen} /> |
83 | <Route path="/settings/user" component={AccountScreen} /> | 87 | <Route path="/settings/user" component={AccountScreen} /> |
84 | <Route path="/settings/user/edit" component={EditUserScreen} /> | 88 | <Route path="/settings/user/edit" component={EditUserScreen} /> |
89 | <Route path="/settings/team" component={TeamScreen} /> | ||
85 | <Route path="/settings/app" component={EditSettingsScreen} /> | 90 | <Route path="/settings/app" component={EditSettingsScreen} /> |
86 | <Route path="/settings/invite" component={InviteSettingsScreen} /> | 91 | <Route path="/settings/invite" component={InviteSettingsScreen} /> |
87 | </Route> | 92 | </Route> |
diff --git a/src/components/layout/AppLayout.js b/src/components/layout/AppLayout.js index b7f7722dd..b31c00f54 100644 --- a/src/components/layout/AppLayout.js +++ b/src/components/layout/AppLayout.js | |||
@@ -16,6 +16,7 @@ import ErrorBoundary from '../util/ErrorBoundary'; | |||
16 | import { isWindows } from '../../environment'; | 16 | import { isWindows } from '../../environment'; |
17 | import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; | 17 | import WorkspaceSwitchingIndicator from '../../features/workspaces/components/WorkspaceSwitchingIndicator'; |
18 | import { workspaceStore } from '../../features/workspaces'; | 18 | import { workspaceStore } from '../../features/workspaces'; |
19 | import { announcementActions } from '../../features/announcements/actions'; | ||
19 | 20 | ||
20 | function createMarkup(HTMLString) { | 21 | function createMarkup(HTMLString) { |
21 | return { __html: HTMLString }; | 22 | return { __html: HTMLString }; |
@@ -71,6 +72,7 @@ class AppLayout extends Component { | |||
71 | // isOnline: PropTypes.bool.isRequired, | 72 | // isOnline: PropTypes.bool.isRequired, |
72 | showServicesUpdatedInfoBar: PropTypes.bool.isRequired, | 73 | showServicesUpdatedInfoBar: PropTypes.bool.isRequired, |
73 | appUpdateIsDownloaded: PropTypes.bool.isRequired, | 74 | appUpdateIsDownloaded: PropTypes.bool.isRequired, |
75 | nextAppReleaseVersion: PropTypes.string, | ||
74 | removeNewsItem: PropTypes.func.isRequired, | 76 | removeNewsItem: PropTypes.func.isRequired, |
75 | reloadServicesAfterUpdate: PropTypes.func.isRequired, | 77 | reloadServicesAfterUpdate: PropTypes.func.isRequired, |
76 | installAppUpdate: PropTypes.func.isRequired, | 78 | installAppUpdate: PropTypes.func.isRequired, |
@@ -84,6 +86,7 @@ class AppLayout extends Component { | |||
84 | 86 | ||
85 | static defaultProps = { | 87 | static defaultProps = { |
86 | children: [], | 88 | children: [], |
89 | nextAppReleaseVersion: null, | ||
87 | }; | 90 | }; |
88 | 91 | ||
89 | static contextTypes = { | 92 | static contextTypes = { |
@@ -102,6 +105,7 @@ class AppLayout extends Component { | |||
102 | news, | 105 | news, |
103 | showServicesUpdatedInfoBar, | 106 | showServicesUpdatedInfoBar, |
104 | appUpdateIsDownloaded, | 107 | appUpdateIsDownloaded, |
108 | nextAppReleaseVersion, | ||
105 | removeNewsItem, | 109 | removeNewsItem, |
106 | reloadServicesAfterUpdate, | 110 | reloadServicesAfterUpdate, |
107 | installAppUpdate, | 111 | installAppUpdate, |
@@ -178,19 +182,23 @@ class AppLayout extends Component { | |||
178 | <span className="mdi mdi-information" /> | 182 | <span className="mdi mdi-information" /> |
179 | {intl.formatMessage(messages.updateAvailable)} | 183 | {intl.formatMessage(messages.updateAvailable)} |
180 | {' '} | 184 | {' '} |
181 | <a href="https://meetfranz.com/changelog" target="_blank"> | 185 | <button |
186 | className="info-bar__inline-button" | ||
187 | type="button" | ||
188 | onClick={() => announcementActions.show({ targetVersion: nextAppReleaseVersion })} | ||
189 | > | ||
182 | <u>{intl.formatMessage(messages.changelog)}</u> | 190 | <u>{intl.formatMessage(messages.changelog)}</u> |
183 | </a> | 191 | </button> |
184 | </InfoBar> | 192 | </InfoBar> |
185 | )} | 193 | )} |
186 | {isDelayAppScreenVisible && (<DelayApp />)} | 194 | {isDelayAppScreenVisible && (<DelayApp />)} |
187 | <BasicAuth /> | 195 | <BasicAuth /> |
188 | <ShareFranz /> | 196 | <ShareFranz /> |
189 | {services} | 197 | {services} |
198 | {children} | ||
190 | </div> | 199 | </div> |
191 | </div> | 200 | </div> |
192 | </div> | 201 | </div> |
193 | {children} | ||
194 | </div> | 202 | </div> |
195 | </ErrorBoundary> | 203 | </ErrorBoundary> |
196 | ); | 204 | ); |
diff --git a/src/components/settings/account/AccountDashboard.js b/src/components/settings/account/AccountDashboard.js index 181b95c8c..3f6964b6b 100644 --- a/src/components/settings/account/AccountDashboard.js +++ b/src/components/settings/account/AccountDashboard.js | |||
@@ -3,12 +3,11 @@ import PropTypes from 'prop-types'; | |||
3 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; | 3 | import { observer, PropTypes as MobxPropTypes } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 4 | import { defineMessages, intlShape } from 'react-intl'; |
5 | import ReactTooltip from 'react-tooltip'; | 5 | import ReactTooltip from 'react-tooltip'; |
6 | import moment from 'moment'; | 6 | import { ProBadge } from '@meetfranz/ui'; |
7 | 7 | ||
8 | import Loader from '../../ui/Loader'; | 8 | import Loader from '../../ui/Loader'; |
9 | import Button from '../../ui/Button'; | 9 | import Button from '../../ui/Button'; |
10 | import Infobox from '../../ui/Infobox'; | 10 | import Infobox from '../../ui/Infobox'; |
11 | import Link from '../../ui/Link'; | ||
12 | import SubscriptionForm from '../../../containers/subscription/SubscriptionFormScreen'; | 11 | import SubscriptionForm from '../../../containers/subscription/SubscriptionFormScreen'; |
13 | 12 | ||
14 | const messages = defineMessages({ | 13 | const messages = defineMessages({ |
@@ -24,10 +23,6 @@ const messages = defineMessages({ | |||
24 | id: 'settings.account.headlineUpgrade', | 23 | id: 'settings.account.headlineUpgrade', |
25 | defaultMessage: '!!!Upgrade your Account', | 24 | defaultMessage: '!!!Upgrade your Account', |
26 | }, | 25 | }, |
27 | headlineInvoices: { | ||
28 | id: 'settings.account.headlineInvoices', | ||
29 | defaultMessage: '!!Invoices', | ||
30 | }, | ||
31 | headlineDangerZone: { | 26 | headlineDangerZone: { |
32 | id: 'settings.account.headlineDangerZone', | 27 | id: 'settings.account.headlineDangerZone', |
33 | defaultMessage: '!!Danger Zone', | 28 | defaultMessage: '!!Danger Zone', |
@@ -48,6 +43,10 @@ const messages = defineMessages({ | |||
48 | id: 'settings.account.account.editButton', | 43 | id: 'settings.account.account.editButton', |
49 | defaultMessage: '!!!Edit Account', | 44 | defaultMessage: '!!!Edit Account', |
50 | }, | 45 | }, |
46 | invoicesButton: { | ||
47 | id: 'settings.account.headlineInvoices', | ||
48 | defaultMessage: '!!Invoices', | ||
49 | }, | ||
51 | invoiceDownload: { | 50 | invoiceDownload: { |
52 | id: 'settings.account.invoiceDownload', | 51 | id: 'settings.account.invoiceDownload', |
53 | defaultMessage: '!!!Download', | 52 | defaultMessage: '!!!Download', |
@@ -77,19 +76,17 @@ const messages = defineMessages({ | |||
77 | export default @observer class AccountDashboard extends Component { | 76 | export default @observer class AccountDashboard extends Component { |
78 | static propTypes = { | 77 | static propTypes = { |
79 | user: MobxPropTypes.observableObject.isRequired, | 78 | user: MobxPropTypes.observableObject.isRequired, |
80 | orders: MobxPropTypes.arrayOrObservableArray.isRequired, | ||
81 | isLoading: PropTypes.bool.isRequired, | 79 | isLoading: PropTypes.bool.isRequired, |
82 | isLoadingOrdersInfo: PropTypes.bool.isRequired, | ||
83 | isLoadingPlans: PropTypes.bool.isRequired, | 80 | isLoadingPlans: PropTypes.bool.isRequired, |
84 | isCreatingPaymentDashboardUrl: PropTypes.bool.isRequired, | ||
85 | userInfoRequestFailed: PropTypes.bool.isRequired, | 81 | userInfoRequestFailed: PropTypes.bool.isRequired, |
86 | retryUserInfoRequest: PropTypes.func.isRequired, | 82 | retryUserInfoRequest: PropTypes.func.isRequired, |
87 | openDashboard: PropTypes.func.isRequired, | ||
88 | openExternalUrl: PropTypes.func.isRequired, | ||
89 | onCloseSubscriptionWindow: PropTypes.func.isRequired, | 83 | onCloseSubscriptionWindow: PropTypes.func.isRequired, |
90 | deleteAccount: PropTypes.func.isRequired, | 84 | deleteAccount: PropTypes.func.isRequired, |
91 | isLoadingDeleteAccount: PropTypes.bool.isRequired, | 85 | isLoadingDeleteAccount: PropTypes.bool.isRequired, |
92 | isDeleteAccountSuccessful: PropTypes.bool.isRequired, | 86 | isDeleteAccountSuccessful: PropTypes.bool.isRequired, |
87 | openEditAccount: PropTypes.func.isRequired, | ||
88 | openBilling: PropTypes.func.isRequired, | ||
89 | openInvoices: PropTypes.func.isRequired, | ||
93 | }; | 90 | }; |
94 | 91 | ||
95 | static contextTypes = { | 92 | static contextTypes = { |
@@ -99,12 +96,7 @@ export default @observer class AccountDashboard extends Component { | |||
99 | render() { | 96 | render() { |
100 | const { | 97 | const { |
101 | user, | 98 | user, |
102 | orders, | ||
103 | isLoading, | 99 | isLoading, |
104 | isCreatingPaymentDashboardUrl, | ||
105 | openDashboard, | ||
106 | openExternalUrl, | ||
107 | isLoadingOrdersInfo, | ||
108 | isLoadingPlans, | 100 | isLoadingPlans, |
109 | userInfoRequestFailed, | 101 | userInfoRequestFailed, |
110 | retryUserInfoRequest, | 102 | retryUserInfoRequest, |
@@ -112,6 +104,9 @@ export default @observer class AccountDashboard extends Component { | |||
112 | deleteAccount, | 104 | deleteAccount, |
113 | isLoadingDeleteAccount, | 105 | isLoadingDeleteAccount, |
114 | isDeleteAccountSuccessful, | 106 | isDeleteAccountSuccessful, |
107 | openEditAccount, | ||
108 | openBilling, | ||
109 | openInvoices, | ||
115 | } = this.props; | 110 | } = this.props; |
116 | const { intl } = this.context; | 111 | const { intl } = this.context; |
117 | 112 | ||
@@ -149,80 +144,53 @@ export default @observer class AccountDashboard extends Component { | |||
149 | src="./assets/images/logo.svg" | 144 | src="./assets/images/logo.svg" |
150 | alt="" | 145 | alt="" |
151 | /> | 146 | /> |
152 | {user.isPremium && ( | ||
153 | <span | ||
154 | className="account__avatar-premium emoji" | ||
155 | data-tip="Premium Supporter Account" | ||
156 | > | ||
157 | <img src="./assets/images/emoji/star.png" alt="" /> | ||
158 | </span> | ||
159 | )} | ||
160 | </div> | 147 | </div> |
161 | <div className="account__info"> | 148 | <div className="account__info"> |
162 | <h2> | 149 | <h2> |
163 | {`${user.firstname} ${user.lastname}`} | 150 | <span className="username">{`${user.firstname} ${user.lastname}`}</span> |
151 | {user.isPremium && ( | ||
152 | <> | ||
153 | {' '} | ||
154 | <ProBadge /> | ||
155 | <span className="badge badge--premium">{intl.formatMessage(messages.accountTypePremium)}</span> | ||
156 | </> | ||
157 | )} | ||
164 | </h2> | 158 | </h2> |
165 | {user.organization && `${user.organization}, `} | 159 | {user.organization && `${user.organization}, `} |
166 | {user.email} | 160 | {user.email} |
167 | <br /> | ||
168 | {user.isPremium && ( | 161 | {user.isPremium && ( |
169 | <span className="badge badge--premium">{intl.formatMessage(messages.accountTypePremium)}</span> | 162 | <div className="manage-user-links"> |
163 | <Button | ||
164 | label={intl.formatMessage(messages.accountEditButton)} | ||
165 | className="franz-form__button--inverted" | ||
166 | onClick={openEditAccount} | ||
167 | /> | ||
168 | {user.isSubscriptionOwner && ( | ||
169 | <> | ||
170 | <Button | ||
171 | label={intl.formatMessage(messages.manageSubscriptionButtonLabel)} | ||
172 | className="franz-form__button--inverted" | ||
173 | onClick={openBilling} | ||
174 | /> | ||
175 | <Button | ||
176 | label={intl.formatMessage(messages.invoicesButton)} | ||
177 | className="franz-form__button--inverted" | ||
178 | onClick={openInvoices} | ||
179 | /> | ||
180 | </> | ||
181 | )} | ||
182 | </div> | ||
170 | )} | 183 | )} |
171 | </div> | 184 | </div> |
172 | <Link to="/settings/user/edit" className="button"> | 185 | {!user.isPremium && ( |
173 | {intl.formatMessage(messages.accountEditButton)} | 186 | <Button |
174 | </Link> | 187 | label={intl.formatMessage(messages.accountEditButton)} |
175 | {user.emailValidated} | 188 | className="franz-form__button--inverted" |
176 | </div> | 189 | onClick={openEditAccount} |
177 | </div> | 190 | /> |
178 | )} | ||
179 | |||
180 | {user.isSubscriptionOwner && ( | ||
181 | isLoadingOrdersInfo ? ( | ||
182 | <Loader /> | ||
183 | ) : ( | ||
184 | <div className="account franz-form"> | ||
185 | {orders.length > 0 && ( | ||
186 | <Fragment> | ||
187 | <div className="account__box"> | ||
188 | <h2>{intl.formatMessage(messages.headlineSubscription)}</h2> | ||
189 | <div className="account__subscription"> | ||
190 | {orders[0].name} | ||
191 | <span className="badge">{orders[0].price}</span> | ||
192 | <Button | ||
193 | label={intl.formatMessage(messages.manageSubscriptionButtonLabel)} | ||
194 | className="account__subscription-button franz-form__button--inverted" | ||
195 | loaded={!isCreatingPaymentDashboardUrl} | ||
196 | onClick={() => openDashboard()} | ||
197 | /> | ||
198 | </div> | ||
199 | </div> | ||
200 | <div className="account__box"> | ||
201 | <h2>{intl.formatMessage(messages.headlineInvoices)}</h2> | ||
202 | <table className="invoices"> | ||
203 | <tbody> | ||
204 | {orders.map(order => ( | ||
205 | <tr key={order.id}> | ||
206 | <td className="invoices__date"> | ||
207 | {moment(order.date).format('DD.MM.YYYY')} | ||
208 | </td> | ||
209 | <td className="invoices__action"> | ||
210 | <button | ||
211 | type="button" | ||
212 | onClick={() => openExternalUrl(order.invoiceUrl)} | ||
213 | > | ||
214 | {intl.formatMessage(messages.invoiceDownload)} | ||
215 | </button> | ||
216 | </td> | ||
217 | </tr> | ||
218 | ))} | ||
219 | </tbody> | ||
220 | </table> | ||
221 | </div> | ||
222 | </Fragment> | ||
223 | )} | 191 | )} |
224 | </div> | 192 | </div> |
225 | ) | 193 | </div> |
226 | )} | 194 | )} |
227 | 195 | ||
228 | {!user.isPremium && ( | 196 | {!user.isPremium && ( |
diff --git a/src/components/settings/navigation/SettingsNavigation.js b/src/components/settings/navigation/SettingsNavigation.js index 993b0a44a..df4b3b3b2 100644 --- a/src/components/settings/navigation/SettingsNavigation.js +++ b/src/components/settings/navigation/SettingsNavigation.js | |||
@@ -7,6 +7,7 @@ import { ProBadge } from '@meetfranz/ui'; | |||
7 | import Link from '../../ui/Link'; | 7 | import Link from '../../ui/Link'; |
8 | import { workspaceStore } from '../../../features/workspaces'; | 8 | import { workspaceStore } from '../../../features/workspaces'; |
9 | import UIStore from '../../../stores/UIStore'; | 9 | import UIStore from '../../../stores/UIStore'; |
10 | import UserStore from '../../../stores/UserStore'; | ||
10 | 11 | ||
11 | const messages = defineMessages({ | 12 | const messages = defineMessages({ |
12 | availableServices: { | 13 | availableServices: { |
@@ -25,6 +26,10 @@ const messages = defineMessages({ | |||
25 | id: 'settings.navigation.account', | 26 | id: 'settings.navigation.account', |
26 | defaultMessage: '!!!Account', | 27 | defaultMessage: '!!!Account', |
27 | }, | 28 | }, |
29 | team: { | ||
30 | id: 'settings.navigation.team', | ||
31 | defaultMessage: '!!!Manage Team', | ||
32 | }, | ||
28 | settings: { | 33 | settings: { |
29 | id: 'settings.navigation.settings', | 34 | id: 'settings.navigation.settings', |
30 | defaultMessage: '!!!Settings', | 35 | defaultMessage: '!!!Settings', |
@@ -43,6 +48,7 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp | |||
43 | static propTypes = { | 48 | static propTypes = { |
44 | stores: PropTypes.shape({ | 49 | stores: PropTypes.shape({ |
45 | ui: PropTypes.instanceOf(UIStore).isRequired, | 50 | ui: PropTypes.instanceOf(UIStore).isRequired, |
51 | user: PropTypes.instanceOf(UserStore).isRequired, | ||
46 | }).isRequired, | 52 | }).isRequired, |
47 | serviceCount: PropTypes.number.isRequired, | 53 | serviceCount: PropTypes.number.isRequired, |
48 | workspaceCount: PropTypes.number.isRequired, | 54 | workspaceCount: PropTypes.number.isRequired, |
@@ -55,6 +61,7 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp | |||
55 | render() { | 61 | render() { |
56 | const { serviceCount, workspaceCount, stores } = this.props; | 62 | const { serviceCount, workspaceCount, stores } = this.props; |
57 | const { isDarkThemeActive } = stores.ui; | 63 | const { isDarkThemeActive } = stores.ui; |
64 | const { router, user } = stores; | ||
58 | const { intl } = this.context; | 65 | const { intl } = this.context; |
59 | 66 | ||
60 | return ( | 67 | return ( |
@@ -98,6 +105,16 @@ export default @inject('stores') @observer class SettingsNavigation extends Comp | |||
98 | {intl.formatMessage(messages.account)} | 105 | {intl.formatMessage(messages.account)} |
99 | </Link> | 106 | </Link> |
100 | <Link | 107 | <Link |
108 | to="/settings/team" | ||
109 | className="settings-navigation__link" | ||
110 | activeClassName="is-active" | ||
111 | > | ||
112 | {intl.formatMessage(messages.team)} | ||
113 | {!user.data.isPremium && ( | ||
114 | <ProBadge inverted={!isDarkThemeActive && router.location.pathname === '/settings/team'} /> | ||
115 | )} | ||
116 | </Link> | ||
117 | <Link | ||
101 | to="/settings/app" | 118 | to="/settings/app" |
102 | className="settings-navigation__link" | 119 | className="settings-navigation__link" |
103 | activeClassName="is-active" | 120 | activeClassName="is-active" |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index 8429d0ecb..efd453356 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -81,6 +81,10 @@ const messages = defineMessages({ | |||
81 | id: 'settings.app.restartRequired', | 81 | id: 'settings.app.restartRequired', |
82 | defaultMessage: '!!!Changes require restart', | 82 | defaultMessage: '!!!Changes require restart', |
83 | }, | 83 | }, |
84 | languageDisclaimer: { | ||
85 | id: 'settings.app.languageDisclaimer', | ||
86 | defaultMessage: '!!!Official translations are English & German. All other languages are community based translations.', | ||
87 | }, | ||
84 | }); | 88 | }); |
85 | 89 | ||
86 | export default @observer class EditSettingsForm extends Component { | 90 | export default @observer class EditSettingsForm extends Component { |
@@ -239,6 +243,10 @@ export default @observer class EditSettingsForm extends Component { | |||
239 | {intl.formatMessage(messages.currentVersion)} | 243 | {intl.formatMessage(messages.currentVersion)} |
240 | {' '} | 244 | {' '} |
241 | {remote.app.getVersion()} | 245 | {remote.app.getVersion()} |
246 | <p className="settings__message"> | ||
247 | <span className="mdi mdi-information" /> | ||
248 | {intl.formatMessage(messages.languageDisclaimer)} | ||
249 | </p> | ||
242 | </form> | 250 | </form> |
243 | </div> | 251 | </div> |
244 | </div> | 252 | </div> |
diff --git a/src/components/settings/team/TeamDashboard.js b/src/components/settings/team/TeamDashboard.js new file mode 100644 index 000000000..82c517fcb --- /dev/null +++ b/src/components/settings/team/TeamDashboard.js | |||
@@ -0,0 +1,152 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { observer } from 'mobx-react'; | ||
4 | import { defineMessages, intlShape } from 'react-intl'; | ||
5 | import ReactTooltip from 'react-tooltip'; | ||
6 | import injectSheet from 'react-jss'; | ||
7 | |||
8 | import Loader from '../../ui/Loader'; | ||
9 | import Button from '../../ui/Button'; | ||
10 | import Infobox from '../../ui/Infobox'; | ||
11 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; | ||
12 | |||
13 | const messages = defineMessages({ | ||
14 | headline: { | ||
15 | id: 'settings.team.headline', | ||
16 | defaultMessage: '!!!Team', | ||
17 | }, | ||
18 | contentHeadline: { | ||
19 | id: 'settings.team.contentHeadline', | ||
20 | defaultMessage: '!!!Franz for Teams', | ||
21 | }, | ||
22 | intro: { | ||
23 | id: 'settings.team.intro', | ||
24 | defaultMessage: '!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.', | ||
25 | }, | ||
26 | copy: { | ||
27 | id: 'settings.team.copy', | ||
28 | defaultMessage: '!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!', | ||
29 | }, | ||
30 | manageButton: { | ||
31 | id: 'settings.team.manageAction', | ||
32 | defaultMessage: '!!!Manage your Team on meetfranz.com', | ||
33 | }, | ||
34 | upgradeButton: { | ||
35 | id: 'settings.team.upgradeAction', | ||
36 | defaultMessage: '!!!Upgrade your Account', | ||
37 | }, | ||
38 | }); | ||
39 | |||
40 | const styles = { | ||
41 | cta: { | ||
42 | margin: [40, 'auto'], | ||
43 | }, | ||
44 | container: { | ||
45 | display: 'flex', | ||
46 | flexDirection: 'column', | ||
47 | height: 'auto', | ||
48 | |||
49 | '@media(min-width: 800px)': { | ||
50 | flexDirection: 'row', | ||
51 | }, | ||
52 | }, | ||
53 | content: { | ||
54 | height: 'auto', | ||
55 | order: 1, | ||
56 | |||
57 | '@media(min-width: 800px)': { | ||
58 | order: 0, | ||
59 | }, | ||
60 | }, | ||
61 | image: { | ||
62 | display: 'block', | ||
63 | height: 150, | ||
64 | order: 0, | ||
65 | margin: [0, 'auto', 40, 'auto'], | ||
66 | |||
67 | '@media(min-width: 800px)': { | ||
68 | marginLeft: 40, | ||
69 | order: 1, | ||
70 | }, | ||
71 | }, | ||
72 | }; | ||
73 | |||
74 | |||
75 | export default @injectSheet(styles) @observer class TeamDashboard extends Component { | ||
76 | static propTypes = { | ||
77 | isLoading: PropTypes.bool.isRequired, | ||
78 | userInfoRequestFailed: PropTypes.bool.isRequired, | ||
79 | retryUserInfoRequest: PropTypes.func.isRequired, | ||
80 | openTeamManagement: PropTypes.func.isRequired, | ||
81 | classes: PropTypes.object.isRequired, | ||
82 | }; | ||
83 | |||
84 | static contextTypes = { | ||
85 | intl: intlShape, | ||
86 | }; | ||
87 | |||
88 | render() { | ||
89 | const { | ||
90 | isLoading, | ||
91 | userInfoRequestFailed, | ||
92 | retryUserInfoRequest, | ||
93 | openTeamManagement, | ||
94 | classes, | ||
95 | } = this.props; | ||
96 | const { intl } = this.context; | ||
97 | |||
98 | return ( | ||
99 | <div className="settings__main"> | ||
100 | <div className="settings__header"> | ||
101 | <span className="settings__header-item"> | ||
102 | {intl.formatMessage(messages.headline)} | ||
103 | </span> | ||
104 | </div> | ||
105 | <div className="settings__body"> | ||
106 | {isLoading && ( | ||
107 | <Loader /> | ||
108 | )} | ||
109 | |||
110 | {!isLoading && userInfoRequestFailed && ( | ||
111 | <Infobox | ||
112 | icon="alert" | ||
113 | type="danger" | ||
114 | ctaLabel={intl.formatMessage(messages.tryReloadUserInfoRequest)} | ||
115 | ctaLoading={isLoading} | ||
116 | ctaOnClick={retryUserInfoRequest} | ||
117 | > | ||
118 | {intl.formatMessage(messages.userInfoRequestFailed)} | ||
119 | </Infobox> | ||
120 | )} | ||
121 | |||
122 | {!userInfoRequestFailed && ( | ||
123 | <> | ||
124 | {!isLoading && ( | ||
125 | <> | ||
126 | <PremiumFeatureContainer> | ||
127 | <> | ||
128 | <h1>{intl.formatMessage(messages.contentHeadline)}</h1> | ||
129 | <div className={classes.container}> | ||
130 | <div className={classes.content}> | ||
131 | <p>{intl.formatMessage(messages.intro)}</p> | ||
132 | <p>{intl.formatMessage(messages.copy)}</p> | ||
133 | </div> | ||
134 | <img className={classes.image} src="https://cdn.franzinfra.com/announcements/assets/teams.png" alt="Franz for Teams" /> | ||
135 | </div> | ||
136 | <Button | ||
137 | label={intl.formatMessage(messages.manageButton)} | ||
138 | onClick={openTeamManagement} | ||
139 | className={classes.cta} | ||
140 | /> | ||
141 | </> | ||
142 | </PremiumFeatureContainer> | ||
143 | </> | ||
144 | )} | ||
145 | </> | ||
146 | )} | ||
147 | </div> | ||
148 | <ReactTooltip place="right" type="dark" effect="solid" /> | ||
149 | </div> | ||
150 | ); | ||
151 | } | ||
152 | } | ||
diff --git a/src/components/subscription/SubscriptionForm.js b/src/components/subscription/SubscriptionForm.js index 7a818d100..50f1e0522 100644 --- a/src/components/subscription/SubscriptionForm.js +++ b/src/components/subscription/SubscriptionForm.js | |||
@@ -51,6 +51,10 @@ const messages = defineMessages({ | |||
51 | id: 'subscription.features.spellchecker', | 51 | id: 'subscription.features.spellchecker', |
52 | defaultMessage: '!!!Support for Spellchecker', | 52 | defaultMessage: '!!!Support for Spellchecker', |
53 | }, | 53 | }, |
54 | workspaces: { | ||
55 | id: 'subscription.features.workspaces', | ||
56 | defaultMessage: '!!!Organize your services in workspaces', | ||
57 | }, | ||
54 | ads: { | 58 | ads: { |
55 | id: 'subscription.features.ads', | 59 | id: 'subscription.features.ads', |
56 | defaultMessage: '!!!No ads, ever!', | 60 | defaultMessage: '!!!No ads, ever!', |
@@ -171,6 +175,9 @@ export default @observer class SubscriptionForm extends Component { | |||
171 | {intl.formatMessage(messages.proxy)} | 175 | {intl.formatMessage(messages.proxy)} |
172 | </li> | 176 | </li> |
173 | <li> | 177 | <li> |
178 | {intl.formatMessage(messages.workspaces)} | ||
179 | </li> | ||
180 | <li> | ||
174 | {intl.formatMessage(messages.ads)} | 181 | {intl.formatMessage(messages.ads)} |
175 | </li> | 182 | </li> |
176 | </ul> | 183 | </ul> |
diff --git a/src/config.js b/src/config.js index 242675762..5bc318545 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -9,9 +9,21 @@ const app = process.type === 'renderer' ? electron.remote.app : electron.app; | |||
9 | const systemPreferences = process.type === 'renderer' ? electron.remote.systemPreferences : electron.systemPreferences; | 9 | const systemPreferences = process.type === 'renderer' ? electron.remote.systemPreferences : electron.systemPreferences; |
10 | 10 | ||
11 | export const CHECK_INTERVAL = ms('1h'); // How often should we perform checks | 11 | export const CHECK_INTERVAL = ms('1h'); // How often should we perform checks |
12 | |||
12 | export const LOCAL_API = 'http://localhost:3000'; | 13 | export const LOCAL_API = 'http://localhost:3000'; |
13 | export const DEV_API = 'https://dev.franzinfra.com'; | 14 | export const DEV_API = 'https://dev.franzinfra.com'; |
14 | export const LIVE_API = 'https://api.franzinfra.com'; | 15 | export const LIVE_API = 'https://api.franzinfra.com'; |
16 | |||
17 | export const LOCAL_WS_API = 'ws://localhost:3000'; | ||
18 | export const DEV_WS_API = 'wss://dev.franzinfra.com'; | ||
19 | export const LIVE_WS_API = 'wss://api.franzinfra.com'; | ||
20 | |||
21 | export const LOCAL_API_WEBSITE = 'http://localhost:3333'; | ||
22 | export const DEV_API_WEBSITE = 'https://meetfranz.com'; | ||
23 | export const LIVE_API_WEBSITE = 'https://meetfranz.com'; | ||
24 | |||
25 | export const STATS_API = 'https://stats.franzinfra.com'; | ||
26 | |||
15 | export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; | 27 | export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; |
16 | 28 | ||
17 | export const DEFAULT_APP_SETTINGS = { | 29 | export const DEFAULT_APP_SETTINGS = { |
@@ -41,6 +53,7 @@ export const DEFAULT_FEATURES_CONFIG = { | |||
41 | }, | 53 | }, |
42 | isServiceProxyEnabled: false, | 54 | isServiceProxyEnabled: false, |
43 | isServiceProxyPremiumFeature: true, | 55 | isServiceProxyPremiumFeature: true, |
56 | isAnnouncementsEnabled: true, | ||
44 | isWorkspacePremiumFeature: true, | 57 | isWorkspacePremiumFeature: true, |
45 | isWorkspaceEnabled: false, | 58 | isWorkspaceEnabled: false, |
46 | }; | 59 | }; |
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index 2d855c78f..d290a6094 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -135,6 +135,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
135 | isOnline={app.isOnline} | 135 | isOnline={app.isOnline} |
136 | showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} | 136 | showServicesUpdatedInfoBar={ui.showServicesUpdatedInfoBar} |
137 | appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} | 137 | appUpdateIsDownloaded={app.updateStatus === app.updateStatusTypes.DOWNLOADED} |
138 | nextAppReleaseVersion={app.nextAppReleaseVersion} | ||
138 | sidebar={sidebar} | 139 | sidebar={sidebar} |
139 | workspacesDrawer={workspacesDrawer} | 140 | workspacesDrawer={workspacesDrawer} |
140 | services={servicesContainer} | 141 | services={servicesContainer} |
diff --git a/src/containers/settings/AccountScreen.js b/src/containers/settings/AccountScreen.js index ce1b9c333..b3f967353 100644 --- a/src/containers/settings/AccountScreen.js +++ b/src/containers/settings/AccountScreen.js | |||
@@ -1,4 +1,3 @@ | |||
1 | import { remote } from 'electron'; | ||
2 | import React, { Component } from 'react'; | 1 | import React, { Component } from 'react'; |
3 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
4 | import { inject, observer } from 'mobx-react'; | 3 | import { inject, observer } from 'mobx-react'; |
@@ -9,84 +8,52 @@ import AppStore from '../../stores/AppStore'; | |||
9 | 8 | ||
10 | import AccountDashboard from '../../components/settings/account/AccountDashboard'; | 9 | import AccountDashboard from '../../components/settings/account/AccountDashboard'; |
11 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | 10 | import ErrorBoundary from '../../components/util/ErrorBoundary'; |
12 | 11 | import { WEBSITE } from '../../environment'; | |
13 | const { BrowserWindow } = remote; | ||
14 | 12 | ||
15 | export default @inject('stores', 'actions') @observer class AccountScreen extends Component { | 13 | export default @inject('stores', 'actions') @observer class AccountScreen extends Component { |
16 | componentWillMount() { | ||
17 | const { | ||
18 | user, | ||
19 | } = this.props.stores; | ||
20 | |||
21 | user.getUserInfoRequest.invalidate({ immediately: true }); | ||
22 | } | ||
23 | |||
24 | onCloseWindow() { | 14 | onCloseWindow() { |
25 | const { user, payment } = this.props.stores; | 15 | const { user } = this.props.stores; |
26 | user.getUserInfoRequest.invalidate({ immediately: true }); | 16 | user.getUserInfoRequest.invalidate({ immediately: true }); |
27 | payment.ordersDataRequest.invalidate({ immediately: true }); | ||
28 | } | 17 | } |
29 | 18 | ||
30 | reloadData() { | 19 | reloadData() { |
31 | const { user, payment } = this.props.stores; | 20 | const { user, payment } = this.props.stores; |
32 | 21 | ||
33 | user.getUserInfoRequest.reload(); | 22 | user.getUserInfoRequest.reload(); |
34 | payment.ordersDataRequest.reload(); | ||
35 | payment.plansRequest.reload(); | 23 | payment.plansRequest.reload(); |
36 | } | 24 | } |
37 | 25 | ||
38 | async handlePaymentDashboard() { | 26 | handleWebsiteLink(route) { |
39 | const { actions, stores } = this.props; | 27 | const { actions, stores } = this.props; |
40 | 28 | ||
41 | actions.payment.createDashboardUrl(); | 29 | const url = `${WEBSITE}${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`; |
42 | 30 | console.log(url); | |
43 | const dashboard = await stores.payment.createDashboardUrlRequest; | ||
44 | |||
45 | if (dashboard.url) { | ||
46 | const paymentWindow = new BrowserWindow({ | ||
47 | title: '🔒 Franz Subscription Dashboard', | ||
48 | parent: remote.getCurrentWindow(), | ||
49 | modal: false, | ||
50 | width: 900, | ||
51 | minWidth: 600, | ||
52 | webPreferences: { | ||
53 | nodeIntegration: false, | ||
54 | }, | ||
55 | }); | ||
56 | paymentWindow.loadURL(dashboard.url); | ||
57 | 31 | ||
58 | paymentWindow.on('closed', () => { | 32 | actions.app.openExternalUrl({ url }); |
59 | this.onCloseWindow(); | ||
60 | }); | ||
61 | } | ||
62 | } | 33 | } |
63 | 34 | ||
64 | render() { | 35 | render() { |
65 | const { user, payment } = this.props.stores; | 36 | const { user, payment } = this.props.stores; |
66 | const { openExternalUrl } = this.props.actions.app; | ||
67 | const { user: userActions } = this.props.actions; | 37 | const { user: userActions } = this.props.actions; |
68 | 38 | ||
69 | const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; | 39 | const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; |
70 | const isLoadingOrdersInfo = payment.ordersDataRequest.isExecuting; | ||
71 | const isLoadingPlans = payment.plansRequest.isExecuting; | 40 | const isLoadingPlans = payment.plansRequest.isExecuting; |
72 | 41 | ||
73 | return ( | 42 | return ( |
74 | <ErrorBoundary> | 43 | <ErrorBoundary> |
75 | <AccountDashboard | 44 | <AccountDashboard |
76 | user={user.data} | 45 | user={user.data} |
77 | orders={payment.orders} | ||
78 | isLoading={isLoadingUserInfo} | 46 | isLoading={isLoadingUserInfo} |
79 | isLoadingOrdersInfo={isLoadingOrdersInfo} | ||
80 | isLoadingPlans={isLoadingPlans} | 47 | isLoadingPlans={isLoadingPlans} |
81 | userInfoRequestFailed={user.getUserInfoRequest.wasExecuted && user.getUserInfoRequest.isError} | 48 | userInfoRequestFailed={user.getUserInfoRequest.wasExecuted && user.getUserInfoRequest.isError} |
82 | retryUserInfoRequest={() => this.reloadData()} | 49 | retryUserInfoRequest={() => this.reloadData()} |
83 | isCreatingPaymentDashboardUrl={payment.createDashboardUrlRequest.isExecuting} | ||
84 | openDashboard={price => this.handlePaymentDashboard(price)} | ||
85 | openExternalUrl={url => openExternalUrl({ url })} | ||
86 | onCloseSubscriptionWindow={() => this.onCloseWindow()} | 50 | onCloseSubscriptionWindow={() => this.onCloseWindow()} |
87 | deleteAccount={userActions.delete} | 51 | deleteAccount={userActions.delete} |
88 | isLoadingDeleteAccount={user.deleteAccountRequest.isExecuting} | 52 | isLoadingDeleteAccount={user.deleteAccountRequest.isExecuting} |
89 | isDeleteAccountSuccessful={user.deleteAccountRequest.wasExecuted && !user.deleteAccountRequest.isError} | 53 | isDeleteAccountSuccessful={user.deleteAccountRequest.wasExecuted && !user.deleteAccountRequest.isError} |
54 | openEditAccount={() => this.handleWebsiteLink('/user/profile')} | ||
55 | openBilling={() => this.handleWebsiteLink('/user/billing')} | ||
56 | openInvoices={() => this.handleWebsiteLink('/user/invoices')} | ||
90 | /> | 57 | /> |
91 | </ErrorBoundary> | 58 | </ErrorBoundary> |
92 | ); | 59 | ); |
diff --git a/src/containers/settings/TeamScreen.js b/src/containers/settings/TeamScreen.js new file mode 100644 index 000000000..c69d5ad08 --- /dev/null +++ b/src/containers/settings/TeamScreen.js | |||
@@ -0,0 +1,57 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import PropTypes from 'prop-types'; | ||
3 | import { inject, observer } from 'mobx-react'; | ||
4 | |||
5 | import UserStore from '../../stores/UserStore'; | ||
6 | import AppStore from '../../stores/AppStore'; | ||
7 | |||
8 | import TeamDashboard from '../../components/settings/team/TeamDashboard'; | ||
9 | import ErrorBoundary from '../../components/util/ErrorBoundary'; | ||
10 | import { WEBSITE } from '../../environment'; | ||
11 | |||
12 | export default @inject('stores', 'actions') @observer class TeamScreen extends Component { | ||
13 | handleWebsiteLink(route) { | ||
14 | const { actions, stores } = this.props; | ||
15 | |||
16 | const url = `${WEBSITE}${route}?authToken=${stores.user.authToken}&utm_source=app&utm_medium=account_dashboard`; | ||
17 | console.log(url); | ||
18 | |||
19 | actions.app.openExternalUrl({ url }); | ||
20 | } | ||
21 | |||
22 | render() { | ||
23 | const { user } = this.props.stores; | ||
24 | |||
25 | const isLoadingUserInfo = user.getUserInfoRequest.isExecuting; | ||
26 | |||
27 | return ( | ||
28 | <ErrorBoundary> | ||
29 | <TeamDashboard | ||
30 | isLoading={isLoadingUserInfo} | ||
31 | userInfoRequestFailed={user.getUserInfoRequest.wasExecuted && user.getUserInfoRequest.isError} | ||
32 | retryUserInfoRequest={() => this.reloadData()} | ||
33 | openTeamManagement={() => this.handleWebsiteLink('/user/team')} | ||
34 | /> | ||
35 | </ErrorBoundary> | ||
36 | ); | ||
37 | } | ||
38 | } | ||
39 | |||
40 | TeamScreen.wrappedComponent.propTypes = { | ||
41 | stores: PropTypes.shape({ | ||
42 | user: PropTypes.instanceOf(UserStore).isRequired, | ||
43 | app: PropTypes.instanceOf(AppStore).isRequired, | ||
44 | }).isRequired, | ||
45 | actions: PropTypes.shape({ | ||
46 | payment: PropTypes.shape({ | ||
47 | createDashboardUrl: PropTypes.func.isRequired, | ||
48 | }).isRequired, | ||
49 | app: PropTypes.shape({ | ||
50 | openExternalUrl: PropTypes.func.isRequired, | ||
51 | }).isRequired, | ||
52 | user: PropTypes.shape({ | ||
53 | update: PropTypes.func.isRequired, | ||
54 | delete: PropTypes.func.isRequired, | ||
55 | }).isRequired, | ||
56 | }).isRequired, | ||
57 | }; | ||
diff --git a/src/electron/ipc-api/autoUpdate.js b/src/electron/ipc-api/autoUpdate.js index 74b718734..9a04c1958 100644 --- a/src/electron/ipc-api/autoUpdate.js +++ b/src/electron/ipc-api/autoUpdate.js | |||
@@ -30,9 +30,12 @@ export default (params) => { | |||
30 | params.mainWindow.webContents.send('autoUpdate', { available: false }); | 30 | params.mainWindow.webContents.send('autoUpdate', { available: false }); |
31 | }); | 31 | }); |
32 | 32 | ||
33 | autoUpdater.on('update-available', () => { | 33 | autoUpdater.on('update-available', (event) => { |
34 | debug('update-available'); | 34 | debug('update-available'); |
35 | params.mainWindow.webContents.send('autoUpdate', { available: true }); | 35 | params.mainWindow.webContents.send('autoUpdate', { |
36 | version: event.version, | ||
37 | available: true, | ||
38 | }); | ||
36 | }); | 39 | }); |
37 | 40 | ||
38 | autoUpdater.on('download-progress', (progressObj) => { | 41 | autoUpdater.on('download-progress', (progressObj) => { |
diff --git a/src/environment.js b/src/environment.js index d67fd6adb..ae7a67e4d 100644 --- a/src/environment.js +++ b/src/environment.js | |||
@@ -1,6 +1,16 @@ | |||
1 | import isDev from 'electron-is-dev'; | 1 | import isDev from 'electron-is-dev'; |
2 | 2 | ||
3 | import { LIVE_API, DEV_API, LOCAL_API } from './config'; | 3 | import { |
4 | LIVE_API, | ||
5 | DEV_API, | ||
6 | LOCAL_API, | ||
7 | LOCAL_API_WEBSITE, | ||
8 | DEV_API_WEBSITE, | ||
9 | LIVE_API_WEBSITE, | ||
10 | LIVE_WS_API, | ||
11 | LOCAL_WS_API, | ||
12 | DEV_WS_API, | ||
13 | } from './config'; | ||
4 | 14 | ||
5 | export const isDevMode = isDev; | 15 | export const isDevMode = isDev; |
6 | export const useLiveAPI = process.env.LIVE_API; | 16 | export const useLiveAPI = process.env.LIVE_API; |
@@ -19,13 +29,23 @@ export const ctrlKey = isMac ? '⌘' : 'Ctrl'; | |||
19 | export const cmdKey = isMac ? 'Cmd' : 'Ctrl'; | 29 | export const cmdKey = isMac ? 'Cmd' : 'Ctrl'; |
20 | 30 | ||
21 | let api; | 31 | let api; |
32 | let wsApi; | ||
33 | let web; | ||
22 | if (!isDevMode || (isDevMode && useLiveAPI)) { | 34 | if (!isDevMode || (isDevMode && useLiveAPI)) { |
23 | api = LIVE_API; | 35 | api = LIVE_API; |
36 | wsApi = LIVE_WS_API; | ||
37 | web = LIVE_API_WEBSITE; | ||
24 | } else if (isDevMode && useLocalAPI) { | 38 | } else if (isDevMode && useLocalAPI) { |
25 | api = LOCAL_API; | 39 | api = LOCAL_API; |
40 | wsApi = LOCAL_WS_API; | ||
41 | web = LOCAL_API_WEBSITE; | ||
26 | } else { | 42 | } else { |
27 | api = DEV_API; | 43 | api = DEV_API; |
44 | wsApi = DEV_WS_API; | ||
45 | web = DEV_API_WEBSITE; | ||
28 | } | 46 | } |
29 | 47 | ||
30 | export const API = api; | 48 | export const API = api; |
31 | export const API_VERSION = 'v1'; | 49 | export const API_VERSION = 'v1'; |
50 | export const WS_API = wsApi; | ||
51 | export const WEBSITE = web; | ||
diff --git a/src/features/announcements/actions.js b/src/features/announcements/actions.js new file mode 100644 index 000000000..bab496314 --- /dev/null +++ b/src/features/announcements/actions.js | |||
@@ -0,0 +1,10 @@ | |||
1 | import PropTypes from 'prop-types'; | ||
2 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; | ||
3 | |||
4 | export const announcementActions = createActionsFromDefinitions({ | ||
5 | show: { | ||
6 | targetVersion: PropTypes.string, | ||
7 | }, | ||
8 | }, PropTypes.checkPropTypes); | ||
9 | |||
10 | export default announcementActions; | ||
diff --git a/src/features/announcements/api.js b/src/features/announcements/api.js new file mode 100644 index 000000000..a581bd8de --- /dev/null +++ b/src/features/announcements/api.js | |||
@@ -0,0 +1,33 @@ | |||
1 | import { remote } from 'electron'; | ||
2 | import Request from '../../stores/lib/Request'; | ||
3 | import { API, API_VERSION } from '../../environment'; | ||
4 | |||
5 | const debug = require('debug')('Franz:feature:announcements:api'); | ||
6 | |||
7 | export const announcementsApi = { | ||
8 | async getCurrentVersion() { | ||
9 | debug('getting current version of electron app'); | ||
10 | return Promise.resolve(remote.app.getVersion()); | ||
11 | }, | ||
12 | |||
13 | async getChangelog(version) { | ||
14 | debug('fetching release changelog from Github'); | ||
15 | const url = `https://api.github.com/repos/meetfranz/franz/releases/tags/v${version}`; | ||
16 | const request = await window.fetch(url, { method: 'GET' }); | ||
17 | if (!request.ok) return null; | ||
18 | const data = await request.json(); | ||
19 | return data.body; | ||
20 | }, | ||
21 | |||
22 | async getAnnouncement(version) { | ||
23 | debug('fetching release announcement from api'); | ||
24 | const url = `${API}/${API_VERSION}/announcements/${version}`; | ||
25 | const response = await window.fetch(url, { method: 'GET' }); | ||
26 | if (!response.ok) return null; | ||
27 | return response.json(); | ||
28 | }, | ||
29 | }; | ||
30 | |||
31 | export const getCurrentVersionRequest = new Request(announcementsApi, 'getCurrentVersion'); | ||
32 | export const getChangelogRequest = new Request(announcementsApi, 'getChangelog'); | ||
33 | export const getAnnouncementRequest = new Request(announcementsApi, 'getAnnouncement'); | ||
diff --git a/src/features/announcements/components/AnnouncementScreen.js b/src/features/announcements/components/AnnouncementScreen.js new file mode 100644 index 000000000..e7c5fe395 --- /dev/null +++ b/src/features/announcements/components/AnnouncementScreen.js | |||
@@ -0,0 +1,286 @@ | |||
1 | import React, { Component } from 'react'; | ||
2 | import marked from 'marked'; | ||
3 | import PropTypes from 'prop-types'; | ||
4 | import { inject, observer } from 'mobx-react'; | ||
5 | import { defineMessages, intlShape } from 'react-intl'; | ||
6 | import injectSheet from 'react-jss'; | ||
7 | import { Button } from '@meetfranz/forms'; | ||
8 | |||
9 | import { announcementsStore } from '../index'; | ||
10 | import UIStore from '../../../stores/UIStore'; | ||
11 | import { gaEvent } from '../../../lib/analytics'; | ||
12 | |||
13 | const renderer = new marked.Renderer(); | ||
14 | |||
15 | renderer.link = (href, title, text) => `<a target="_blank" href="${href}" title="${title}">${text}</a>`; | ||
16 | |||
17 | const markedOptions = { sanitize: true, renderer }; | ||
18 | |||
19 | const messages = defineMessages({ | ||
20 | headline: { | ||
21 | id: 'feature.announcements.changelog.headline', | ||
22 | defaultMessage: '!!!Changes in Franz {version}', | ||
23 | }, | ||
24 | }); | ||
25 | |||
26 | const smallScreen = '1000px'; | ||
27 | |||
28 | const styles = theme => ({ | ||
29 | container: { | ||
30 | background: theme.colorBackground, | ||
31 | position: 'absolute', | ||
32 | top: 0, | ||
33 | zIndex: 140, | ||
34 | width: '100%', | ||
35 | height: '100%', | ||
36 | overflowY: 'auto', | ||
37 | }, | ||
38 | headline: { | ||
39 | color: theme.colorHeadline, | ||
40 | margin: [25, 0, 40], | ||
41 | // 'max-width': 500, | ||
42 | 'text-align': 'center', | ||
43 | 'line-height': '1.3em', | ||
44 | }, | ||
45 | announcement: { | ||
46 | height: 'auto', | ||
47 | |||
48 | [`@media(min-width: ${smallScreen})`]: { | ||
49 | display: 'flex', | ||
50 | flexDirection: 'column', | ||
51 | justifyContent: 'center', | ||
52 | height: '100vh', | ||
53 | }, | ||
54 | }, | ||
55 | main: { | ||
56 | display: 'flex', | ||
57 | flexDirection: 'column', | ||
58 | flexGrow: 1, | ||
59 | justifyContent: 'center', | ||
60 | |||
61 | '& h1': { | ||
62 | margin: [40, 0, 15], | ||
63 | fontSize: 70, | ||
64 | color: theme.styleTypes.primary.accent, | ||
65 | textAlign: 'center', | ||
66 | |||
67 | [`@media(min-width: ${smallScreen})`]: { | ||
68 | marginTop: 0, | ||
69 | }, | ||
70 | }, | ||
71 | '& h2': { | ||
72 | fontSize: 30, | ||
73 | fontWeight: 300, | ||
74 | color: theme.colorText, | ||
75 | textAlign: 'center', | ||
76 | marginBottom: 60, | ||
77 | }, | ||
78 | }, | ||
79 | mainBody: { | ||
80 | display: 'flex', | ||
81 | flexDirection: 'column', | ||
82 | alignItems: 'center', | ||
83 | width: 'calc(100% - 80px)', | ||
84 | height: 'auto', | ||
85 | margin: '0 auto', | ||
86 | [`@media(min-width: ${smallScreen})`]: { | ||
87 | flexDirection: 'row', | ||
88 | justifyContent: 'center', | ||
89 | }, | ||
90 | }, | ||
91 | mainImage: { | ||
92 | minWidth: 250, | ||
93 | maxWidth: 400, | ||
94 | margin: '0 auto', | ||
95 | marginBottom: 40, | ||
96 | '& img': { | ||
97 | width: '100%', | ||
98 | }, | ||
99 | [`@media(min-width: ${smallScreen})`]: { | ||
100 | margin: 0, | ||
101 | }, | ||
102 | }, | ||
103 | mainText: { | ||
104 | height: 'auto', | ||
105 | maxWidth: 600, | ||
106 | textAlign: 'center', | ||
107 | '& p': { | ||
108 | lineHeight: '1.5em', | ||
109 | }, | ||
110 | [`@media(min-width: ${smallScreen})`]: { | ||
111 | textAlign: 'left', | ||
112 | }, | ||
113 | }, | ||
114 | mainCtaButton: { | ||
115 | textAlign: 'center', | ||
116 | marginTop: 40, | ||
117 | [`@media(min-width: ${smallScreen})`]: { | ||
118 | textAlign: 'left', | ||
119 | }, | ||
120 | }, | ||
121 | spotlight: { | ||
122 | height: 'auto', | ||
123 | background: theme.announcements.spotlight.background, | ||
124 | padding: [40, 0], | ||
125 | marginTop: 80, | ||
126 | [`@media(min-width: ${smallScreen})`]: { | ||
127 | marginTop: 0, | ||
128 | justifyContent: 'center', | ||
129 | alignItems: 'flex-start', | ||
130 | display: 'flex', | ||
131 | flexDirection: 'row', | ||
132 | }, | ||
133 | }, | ||
134 | spotlightTopicContainer: { | ||
135 | textAlign: 'center', | ||
136 | marginBottom: 20, | ||
137 | |||
138 | [`@media(min-width: ${smallScreen})`]: { | ||
139 | marginBottom: 0, | ||
140 | minWidth: 250, | ||
141 | maxWidth: 330, | ||
142 | width: '100%', | ||
143 | textAlign: 'right', | ||
144 | marginRight: 60, | ||
145 | }, | ||
146 | }, | ||
147 | spotlightContentContainer: { | ||
148 | textAlign: 'center', | ||
149 | [`@media(min-width: ${smallScreen})`]: { | ||
150 | height: 'auto', | ||
151 | maxWidth: 600, | ||
152 | paddingRight: 40, | ||
153 | textAlign: 'left', | ||
154 | }, | ||
155 | '& p': { | ||
156 | lineHeight: '1.5em', | ||
157 | }, | ||
158 | }, | ||
159 | spotlightTopic: { | ||
160 | fontSize: 20, | ||
161 | marginBottom: 5, | ||
162 | letterSpacing: 0, | ||
163 | fontWeight: 100, | ||
164 | }, | ||
165 | spotlightSubject: { | ||
166 | fontSize: 20, | ||
167 | }, | ||
168 | changelog: { | ||
169 | padding: [0, 60], | ||
170 | maxWidth: 700, | ||
171 | margin: [100, 'auto'], | ||
172 | height: 'auto', | ||
173 | |||
174 | '& h3': { | ||
175 | fontSize: '24px', | ||
176 | margin: '1.5em 0 1em 0', | ||
177 | }, | ||
178 | '& li': { | ||
179 | marginBottom: '1em', | ||
180 | lineHeight: '1.4em', | ||
181 | }, | ||
182 | '& div': { | ||
183 | height: 'auto', | ||
184 | }, | ||
185 | }, | ||
186 | }); | ||
187 | |||
188 | |||
189 | @inject('stores', 'actions') @injectSheet(styles) @observer | ||
190 | class AnnouncementScreen extends Component { | ||
191 | static propTypes = { | ||
192 | classes: PropTypes.object.isRequired, | ||
193 | stores: PropTypes.shape({ | ||
194 | ui: PropTypes.instanceOf(UIStore).isRequired, | ||
195 | }).isRequired, | ||
196 | }; | ||
197 | |||
198 | static contextTypes = { | ||
199 | intl: intlShape, | ||
200 | }; | ||
201 | |||
202 | render() { | ||
203 | const { classes, stores } = this.props; | ||
204 | const { intl } = this.context; | ||
205 | const { changelog, announcement } = announcementsStore; | ||
206 | const themeImage = stores.ui.isDarkThemeActive ? 'dark' : 'light'; | ||
207 | return ( | ||
208 | <div className={classes.container}> | ||
209 | {announcement && ( | ||
210 | <div className={classes.announcement}> | ||
211 | <div className={classes.main}> | ||
212 | <h1>{announcement.main.headline}</h1> | ||
213 | <h2>{announcement.main.subHeadline}</h2> | ||
214 | <div className={classes.mainBody}> | ||
215 | <div className={classes.mainImage}> | ||
216 | <img | ||
217 | src={announcement.main.image[themeImage]} | ||
218 | alt="" | ||
219 | /> | ||
220 | </div> | ||
221 | <div className={classes.mainText}> | ||
222 | <div | ||
223 | dangerouslySetInnerHTML={{ | ||
224 | __html: marked(announcement.main.text, markedOptions), | ||
225 | }} | ||
226 | /> | ||
227 | <div className={classes.mainCtaButton}> | ||
228 | <Button | ||
229 | label={announcement.main.cta.label} | ||
230 | onClick={() => { | ||
231 | const { analytics } = announcement.main.cta; | ||
232 | window.location.href = `#${announcement.main.cta.href}`; | ||
233 | gaEvent(analytics.category, analytics.action, announcement.main.cta.label); | ||
234 | }} | ||
235 | /> | ||
236 | </div> | ||
237 | </div> | ||
238 | </div> | ||
239 | </div> | ||
240 | {announcement.spotlight && ( | ||
241 | <div className={classes.spotlight}> | ||
242 | <div className={classes.spotlightTopicContainer}> | ||
243 | <h2 className={classes.spotlightTopic}>{announcement.spotlight.title}</h2> | ||
244 | <h3 className={classes.spotlightSubject}>{announcement.spotlight.subject}</h3> | ||
245 | </div> | ||
246 | <div className={classes.spotlightContentContainer}> | ||
247 | <div | ||
248 | dangerouslySetInnerHTML={{ | ||
249 | __html: marked(announcement.spotlight.text, markedOptions), | ||
250 | }} | ||
251 | /> | ||
252 | <div className={classes.mainCtaButton}> | ||
253 | <Button | ||
254 | label={announcement.spotlight.cta.label} | ||
255 | onClick={() => { | ||
256 | const { analytics } = announcement.spotlight.cta; | ||
257 | window.location.href = `#${announcement.spotlight.cta.href}`; | ||
258 | gaEvent(analytics.category, analytics.action, announcement.spotlight.cta.label); | ||
259 | }} | ||
260 | /> | ||
261 | </div> | ||
262 | </div> | ||
263 | </div> | ||
264 | )} | ||
265 | </div> | ||
266 | )} | ||
267 | {changelog && ( | ||
268 | <div className={classes.changelog}> | ||
269 | <h1 className={classes.headline}> | ||
270 | {intl.formatMessage(messages.headline, { | ||
271 | version: announcementsStore.targetVersion, | ||
272 | })} | ||
273 | </h1> | ||
274 | <div | ||
275 | dangerouslySetInnerHTML={{ | ||
276 | __html: marked(changelog, markedOptions), | ||
277 | }} | ||
278 | /> | ||
279 | </div> | ||
280 | )} | ||
281 | </div> | ||
282 | ); | ||
283 | } | ||
284 | } | ||
285 | |||
286 | export default AnnouncementScreen; | ||
diff --git a/src/features/announcements/index.js b/src/features/announcements/index.js new file mode 100644 index 000000000..f14e7c9a5 --- /dev/null +++ b/src/features/announcements/index.js | |||
@@ -0,0 +1,36 @@ | |||
1 | import { reaction } from 'mobx'; | ||
2 | import { AnnouncementsStore } from './store'; | ||
3 | |||
4 | const debug = require('debug')('Franz:feature:announcements'); | ||
5 | |||
6 | export const GA_CATEGORY_ANNOUNCEMENTS = 'Announcements'; | ||
7 | |||
8 | export const announcementsStore = new AnnouncementsStore(); | ||
9 | |||
10 | export const ANNOUNCEMENTS_ROUTES = { | ||
11 | TARGET: '/announcements/:id', | ||
12 | }; | ||
13 | |||
14 | export default function initAnnouncements(stores, actions) { | ||
15 | // const { features } = stores; | ||
16 | |||
17 | // Toggle workspace feature | ||
18 | reaction( | ||
19 | () => ( | ||
20 | true | ||
21 | // features.features.isAnnouncementsEnabled | ||
22 | ), | ||
23 | (isEnabled) => { | ||
24 | if (isEnabled) { | ||
25 | debug('Initializing `announcements` feature'); | ||
26 | announcementsStore.start(stores, actions); | ||
27 | } else if (announcementsStore.isFeatureActive) { | ||
28 | debug('Disabling `announcements` feature'); | ||
29 | announcementsStore.stop(); | ||
30 | } | ||
31 | }, | ||
32 | { | ||
33 | fireImmediately: true, | ||
34 | }, | ||
35 | ); | ||
36 | } | ||
diff --git a/src/features/announcements/store.js b/src/features/announcements/store.js new file mode 100644 index 000000000..ad78a0979 --- /dev/null +++ b/src/features/announcements/store.js | |||
@@ -0,0 +1,144 @@ | |||
1 | import { | ||
2 | action, | ||
3 | computed, | ||
4 | observable, | ||
5 | } from 'mobx'; | ||
6 | import semver from 'semver'; | ||
7 | import localStorage from 'mobx-localstorage'; | ||
8 | |||
9 | import { FeatureStore } from '../utils/FeatureStore'; | ||
10 | import { ANNOUNCEMENTS_ROUTES, GA_CATEGORY_ANNOUNCEMENTS } from '.'; | ||
11 | import { getAnnouncementRequest, getChangelogRequest, getCurrentVersionRequest } from './api'; | ||
12 | import { announcementActions } from './actions'; | ||
13 | import { createActionBindings } from '../utils/ActionBinding'; | ||
14 | import { createReactions } from '../../stores/lib/Reaction'; | ||
15 | import { gaEvent } from '../../lib/analytics'; | ||
16 | import { matchRoute } from '../../helpers/routing-helpers'; | ||
17 | |||
18 | const LOCAL_STORAGE_KEY = 'announcements'; | ||
19 | |||
20 | const debug = require('debug')('Franz:feature:announcements:store'); | ||
21 | |||
22 | export class AnnouncementsStore extends FeatureStore { | ||
23 | @observable targetVersion = null; | ||
24 | |||
25 | @observable isFeatureActive = false; | ||
26 | |||
27 | @computed get changelog() { | ||
28 | return getChangelogRequest.result; | ||
29 | } | ||
30 | |||
31 | @computed get announcement() { | ||
32 | if (!this.stores || !getAnnouncementRequest.result) return null; | ||
33 | const { locale, defaultLocale } = this.stores.app; | ||
34 | const announcement = getAnnouncementRequest.result; | ||
35 | // User locale | ||
36 | if (announcement[locale]) return announcement[locale]; | ||
37 | // Default locale | ||
38 | if (announcement[defaultLocale]) return announcement[defaultLocale]; | ||
39 | // No locales specified | ||
40 | return announcement; | ||
41 | } | ||
42 | |||
43 | @computed get areNewsAvailable() { | ||
44 | const isChangelogAvailable = getChangelogRequest.wasExecuted && !!this.changelog; | ||
45 | const isAnnouncementAvailable = getAnnouncementRequest.wasExecuted && !!this.announcement; | ||
46 | return isChangelogAvailable || isAnnouncementAvailable; | ||
47 | } | ||
48 | |||
49 | @computed get settings() { | ||
50 | return localStorage.getItem(LOCAL_STORAGE_KEY) || {}; | ||
51 | } | ||
52 | |||
53 | @computed get lastSeenAnnouncementVersion() { | ||
54 | return this.settings.lastSeenAnnouncementVersion || null; | ||
55 | } | ||
56 | |||
57 | @computed get currentVersion() { | ||
58 | return getCurrentVersionRequest.result; | ||
59 | } | ||
60 | |||
61 | @computed get isNewUser() { | ||
62 | return this.stores.settings.stats.appStarts <= 1; | ||
63 | } | ||
64 | |||
65 | async start(stores, actions) { | ||
66 | debug('AnnouncementsStore::start'); | ||
67 | this.stores = stores; | ||
68 | this.actions = actions; | ||
69 | getCurrentVersionRequest.execute(); | ||
70 | |||
71 | this._registerActions(createActionBindings([ | ||
72 | [announcementActions.show, this._showAnnouncement], | ||
73 | ])); | ||
74 | |||
75 | this._reactions = createReactions([ | ||
76 | this._showAnnouncementOnRouteMatch, | ||
77 | this._showAnnouncementToUsersWhoUpdatedApp, | ||
78 | this._fetchAnnouncements, | ||
79 | ]); | ||
80 | this._registerReactions(this._reactions); | ||
81 | this.isFeatureActive = true; | ||
82 | } | ||
83 | |||
84 | stop() { | ||
85 | super.stop(); | ||
86 | debug('AnnouncementsStore::stop'); | ||
87 | this.isFeatureActive = false; | ||
88 | } | ||
89 | |||
90 | // ======= HELPERS ======= // | ||
91 | |||
92 | _updateSettings = (changes) => { | ||
93 | localStorage.setItem(LOCAL_STORAGE_KEY, { | ||
94 | ...this.settings, | ||
95 | ...changes, | ||
96 | }); | ||
97 | }; | ||
98 | |||
99 | // ======= ACTIONS ======= // | ||
100 | |||
101 | @action _showAnnouncement = ({ targetVersion } = {}) => { | ||
102 | const { router } = this.stores; | ||
103 | this.targetVersion = targetVersion || this.currentVersion; | ||
104 | this._updateSettings({ | ||
105 | lastSeenAnnouncementVersion: this.currentVersion, | ||
106 | }); | ||
107 | const targetRoute = `/announcements/${this.targetVersion}`; | ||
108 | if (router.location.pathname !== targetRoute) { | ||
109 | this.stores.router.push(targetRoute); | ||
110 | } | ||
111 | gaEvent(GA_CATEGORY_ANNOUNCEMENTS, 'show'); | ||
112 | }; | ||
113 | |||
114 | // ======= REACTIONS ======== | ||
115 | |||
116 | _showAnnouncementToUsersWhoUpdatedApp = () => { | ||
117 | const { announcement, isNewUser } = this; | ||
118 | // Check if there is an announcement and don't show announcements to new users | ||
119 | if (!announcement || isNewUser) return; | ||
120 | |||
121 | // Check if the user has already used current version (= has seen the announcement) | ||
122 | const { currentVersion, lastSeenAnnouncementVersion } = this; | ||
123 | if (semver.gt(currentVersion, lastSeenAnnouncementVersion || '0.0.0')) { | ||
124 | debug(`${currentVersion} > ${lastSeenAnnouncementVersion}: announcement is shown`); | ||
125 | this._showAnnouncement(); | ||
126 | } | ||
127 | }; | ||
128 | |||
129 | _fetchAnnouncements = () => { | ||
130 | const targetVersion = this.targetVersion || this.currentVersion; | ||
131 | if (!targetVersion) return; | ||
132 | getChangelogRequest.reset().execute(targetVersion); | ||
133 | getAnnouncementRequest.reset().execute(targetVersion); | ||
134 | }; | ||
135 | |||
136 | _showAnnouncementOnRouteMatch = () => { | ||
137 | const { router } = this.stores; | ||
138 | const match = matchRoute(ANNOUNCEMENTS_ROUTES.TARGET, router.location.pathname); | ||
139 | if (match) { | ||
140 | const targetVersion = match.id; | ||
141 | this._showAnnouncement({ targetVersion }); | ||
142 | } | ||
143 | } | ||
144 | } | ||
diff --git a/src/features/settingsWS/actions.js b/src/features/settingsWS/actions.js new file mode 100755 index 000000000..631670c8a --- /dev/null +++ b/src/features/settingsWS/actions.js | |||
@@ -0,0 +1,10 @@ | |||
1 | import PropTypes from 'prop-types'; | ||
2 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; | ||
3 | |||
4 | export const settingsWSActions = createActionsFromDefinitions({ | ||
5 | greet: { | ||
6 | name: PropTypes.string.isRequired, | ||
7 | }, | ||
8 | }, PropTypes.checkPropTypes); | ||
9 | |||
10 | export default settingsWSActions; | ||
diff --git a/src/features/settingsWS/index.js b/src/features/settingsWS/index.js new file mode 100755 index 000000000..2064d2973 --- /dev/null +++ b/src/features/settingsWS/index.js | |||
@@ -0,0 +1,29 @@ | |||
1 | import { reaction } from 'mobx'; | ||
2 | import { SettingsWSStore } from './store'; | ||
3 | |||
4 | const debug = require('debug')('Franz:feature:settingsWS'); | ||
5 | |||
6 | export const settingsStore = new SettingsWSStore(); | ||
7 | |||
8 | export default function initSettingsWebSocket(stores, actions) { | ||
9 | const { features } = stores; | ||
10 | |||
11 | // Toggle SettingsWebSocket feature | ||
12 | reaction( | ||
13 | () => ( | ||
14 | features.features.isSettingsWSEnabled | ||
15 | ), | ||
16 | (isEnabled) => { | ||
17 | if (isEnabled) { | ||
18 | debug('Initializing `settingsWS` feature'); | ||
19 | settingsStore.start(stores, actions); | ||
20 | } else if (settingsStore) { | ||
21 | debug('Disabling `settingsWS` feature'); | ||
22 | settingsStore.stop(); | ||
23 | } | ||
24 | }, | ||
25 | { | ||
26 | fireImmediately: true, | ||
27 | }, | ||
28 | ); | ||
29 | } | ||
diff --git a/src/features/settingsWS/state.js b/src/features/settingsWS/state.js new file mode 100755 index 000000000..7b16b2b6e --- /dev/null +++ b/src/features/settingsWS/state.js | |||
@@ -0,0 +1,13 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | |||
3 | const defaultState = { | ||
4 | isFeatureActive: false, | ||
5 | }; | ||
6 | |||
7 | export const settingsWSState = observable(defaultState); | ||
8 | |||
9 | export function resetState() { | ||
10 | Object.assign(settingsWSState, defaultState); | ||
11 | } | ||
12 | |||
13 | export default settingsWSState; | ||
diff --git a/src/features/settingsWS/store.js b/src/features/settingsWS/store.js new file mode 100755 index 000000000..167a70d10 --- /dev/null +++ b/src/features/settingsWS/store.js | |||
@@ -0,0 +1,130 @@ | |||
1 | import { observable } from 'mobx'; | ||
2 | import WebSocket from 'ws'; | ||
3 | import ms from 'ms'; | ||
4 | |||
5 | import { FeatureStore } from '../utils/FeatureStore'; | ||
6 | import { createReactions } from '../../stores/lib/Reaction'; | ||
7 | import { WS_API } from '../../environment'; | ||
8 | |||
9 | const debug = require('debug')('Franz:feature:settingsWS:store'); | ||
10 | |||
11 | export class SettingsWSStore extends FeatureStore { | ||
12 | stores = null; | ||
13 | |||
14 | actions = null; | ||
15 | |||
16 | ws = null; | ||
17 | |||
18 | pingTimeout = null; | ||
19 | |||
20 | reconnectTimeout = null; | ||
21 | |||
22 | @observable connected = false; | ||
23 | |||
24 | start(stores, actions) { | ||
25 | this.stores = stores; | ||
26 | this.actions = actions; | ||
27 | |||
28 | this._registerReactions(createReactions([ | ||
29 | this._initialize.bind(this), | ||
30 | this._reconnect.bind(this), | ||
31 | this._close.bind(this), | ||
32 | ])); | ||
33 | } | ||
34 | |||
35 | connect() { | ||
36 | try { | ||
37 | const wsURL = `${WS_API}/ws/${this.stores.user.data.id}`; | ||
38 | debug('Setting up WebSocket to', wsURL); | ||
39 | |||
40 | this.ws = new WebSocket(wsURL); | ||
41 | |||
42 | this.ws.on('open', () => { | ||
43 | debug('Opened WebSocket'); | ||
44 | this.send({ | ||
45 | action: 'authorize', | ||
46 | token: this.stores.user.authToken, | ||
47 | }); | ||
48 | |||
49 | this.connected = true; | ||
50 | |||
51 | this.heartbeat(); | ||
52 | }); | ||
53 | |||
54 | this.ws.on('message', (data) => { | ||
55 | const resp = JSON.parse(data); | ||
56 | debug('Received message', resp); | ||
57 | |||
58 | if (resp.id) { | ||
59 | this.stores.user.getUserInfoRequest.patch((result) => { | ||
60 | if (!result) return; | ||
61 | |||
62 | debug('Patching user object with new values'); | ||
63 | Object.assign(result, resp); | ||
64 | }); | ||
65 | } | ||
66 | }); | ||
67 | |||
68 | this.ws.on('ping', this.heartbeat.bind(this)); | ||
69 | } catch (err) { | ||
70 | console.err(err); | ||
71 | } | ||
72 | } | ||
73 | |||
74 | heartbeat() { | ||
75 | debug('Heartbeat'); | ||
76 | clearTimeout(this.pingTimeout); | ||
77 | |||
78 | this.pingTimeout = setTimeout(() => { | ||
79 | debug('Terminating connection, reconnecting in 35'); | ||
80 | this.ws.terminate(); | ||
81 | |||
82 | this.connected = false; | ||
83 | }, ms('35s')); | ||
84 | } | ||
85 | |||
86 | send(data) { | ||
87 | if (this.ws && this.ws.readyState === 1) { | ||
88 | this.ws.send(JSON.stringify(data)); | ||
89 | debug('Sending data', data); | ||
90 | } else { | ||
91 | debug('WebSocket is not initialized'); | ||
92 | } | ||
93 | } | ||
94 | |||
95 | // Reactions | ||
96 | |||
97 | _initialize() { | ||
98 | if (this.stores.user.data.id && !this.ws) { | ||
99 | this.connect(); | ||
100 | } | ||
101 | } | ||
102 | |||
103 | _reconnect() { | ||
104 | if (!this.connected) { | ||
105 | debug('Trying to reconnect in 30s'); | ||
106 | this.reconnectTimeout = setInterval(() => { | ||
107 | debug('Trying to reconnect'); | ||
108 | this.connect(); | ||
109 | }, ms('30s')); | ||
110 | } else { | ||
111 | debug('Clearing reconnect interval'); | ||
112 | clearInterval(this.reconnectTimeout); | ||
113 | } | ||
114 | } | ||
115 | |||
116 | _close() { | ||
117 | if (!this.stores.user.isLoggedIn) { | ||
118 | debug('Stopping reactions'); | ||
119 | this._stopReactions(); | ||
120 | |||
121 | if (this.ws) { | ||
122 | debug('Terminating connection'); | ||
123 | this.ws.terminate(); | ||
124 | this.ws = null; | ||
125 | } | ||
126 | } | ||
127 | } | ||
128 | } | ||
129 | |||
130 | export default SettingsWSStore; | ||
diff --git a/src/features/shareFranz/index.js b/src/features/shareFranz/index.js index 3a8ec95d3..87deacef4 100644 --- a/src/features/shareFranz/index.js +++ b/src/features/shareFranz/index.js | |||
@@ -35,7 +35,7 @@ export default function initialize(stores) { | |||
35 | () => stores.user.isLoggedIn, | 35 | () => stores.user.isLoggedIn, |
36 | () => { | 36 | () => { |
37 | setTimeout(() => { | 37 | setTimeout(() => { |
38 | if (stores.settings.stats.appStarts % 30 === 0) { | 38 | if (stores.settings.stats.appStarts % 50 === 0) { |
39 | if (delayAppState.isDelayAppScreenVisible) { | 39 | if (delayAppState.isDelayAppScreenVisible) { |
40 | debug('Delaying share modal by 5 minutes'); | 40 | debug('Delaying share modal by 5 minutes'); |
41 | setTimeout(() => showModal(), ms('5m')); | 41 | setTimeout(() => showModal(), ms('5m')); |
diff --git a/src/features/utils/ActionBinding.js b/src/features/utils/ActionBinding.js new file mode 100644 index 000000000..497aa071b --- /dev/null +++ b/src/features/utils/ActionBinding.js | |||
@@ -0,0 +1,29 @@ | |||
1 | export default class ActionBinding { | ||
2 | action; | ||
3 | |||
4 | isActive = false; | ||
5 | |||
6 | constructor(action) { | ||
7 | this.action = action; | ||
8 | } | ||
9 | |||
10 | start() { | ||
11 | if (!this.isActive) { | ||
12 | const { action } = this; | ||
13 | action[0].listen(action[1]); | ||
14 | this.isActive = true; | ||
15 | } | ||
16 | } | ||
17 | |||
18 | stop() { | ||
19 | if (this.isActive) { | ||
20 | const { action } = this; | ||
21 | action[0].off(action[1]); | ||
22 | this.isActive = false; | ||
23 | } | ||
24 | } | ||
25 | } | ||
26 | |||
27 | export const createActionBindings = actions => ( | ||
28 | actions.map(a => new ActionBinding(a)) | ||
29 | ); | ||
diff --git a/src/features/utils/FeatureStore.js b/src/features/utils/FeatureStore.js index 66b66a104..0bc10e176 100644 --- a/src/features/utils/FeatureStore.js +++ b/src/features/utils/FeatureStore.js | |||
@@ -1,21 +1,40 @@ | |||
1 | import Reaction from '../../stores/lib/Reaction'; | ||
2 | |||
3 | export class FeatureStore { | 1 | export class FeatureStore { |
4 | _actions = null; | 2 | _actions = []; |
3 | |||
4 | _reactions = []; | ||
5 | |||
6 | stop() { | ||
7 | this._stopActions(); | ||
8 | this._stopReactions(); | ||
9 | } | ||
10 | |||
11 | // ACTIONS | ||
12 | |||
13 | _registerActions(actions) { | ||
14 | this._actions = actions; | ||
15 | this._startActions(); | ||
16 | } | ||
5 | 17 | ||
6 | _reactions = null; | 18 | _startActions(actions = this._actions) { |
19 | actions.forEach(a => a.start()); | ||
20 | } | ||
21 | |||
22 | _stopActions(actions = this._actions) { | ||
23 | actions.forEach(a => a.stop()); | ||
24 | } | ||
25 | |||
26 | // REACTIONS | ||
27 | |||
28 | _registerReactions(reactions) { | ||
29 | this._reactions = reactions; | ||
30 | this._startReactions(); | ||
31 | } | ||
7 | 32 | ||
8 | _listenToActions(actions) { | 33 | _startReactions(reactions = this._reactions) { |
9 | if (this._actions) this._actions.forEach(a => a[0].off(a[1])); | 34 | reactions.forEach(r => r.start()); |
10 | this._actions = []; | ||
11 | actions.forEach(a => this._actions.push(a)); | ||
12 | this._actions.forEach(a => a[0].listen(a[1])); | ||
13 | } | 35 | } |
14 | 36 | ||
15 | _startReactions(reactions) { | 37 | _stopReactions(reactions = this._reactions) { |
16 | if (this._reactions) this._reactions.forEach(r => r.stop()); | 38 | reactions.forEach(r => r.stop()); |
17 | this._reactions = []; | ||
18 | reactions.forEach(r => this._reactions.push(new Reaction(r))); | ||
19 | this._reactions.forEach(r => r.start()); | ||
20 | } | 39 | } |
21 | } | 40 | } |
diff --git a/src/features/utils/FeatureStore.test.js b/src/features/utils/FeatureStore.test.js new file mode 100644 index 000000000..92308bf52 --- /dev/null +++ b/src/features/utils/FeatureStore.test.js | |||
@@ -0,0 +1,92 @@ | |||
1 | import PropTypes from 'prop-types'; | ||
2 | import { observable } from 'mobx'; | ||
3 | import { FeatureStore } from './FeatureStore'; | ||
4 | import { createActionsFromDefinitions } from '../../actions/lib/actions'; | ||
5 | import { createActionBindings } from './ActionBinding'; | ||
6 | import { createReactions } from '../../stores/lib/Reaction'; | ||
7 | |||
8 | const actions = createActionsFromDefinitions({ | ||
9 | countUp: {}, | ||
10 | }, PropTypes.checkPropTypes); | ||
11 | |||
12 | class TestFeatureStore extends FeatureStore { | ||
13 | @observable count = 0; | ||
14 | |||
15 | reactionInvokedCount = 0; | ||
16 | |||
17 | start() { | ||
18 | this._registerActions(createActionBindings([ | ||
19 | [actions.countUp, this._countUp], | ||
20 | ])); | ||
21 | this._registerReactions(createReactions([ | ||
22 | this._countReaction, | ||
23 | ])); | ||
24 | } | ||
25 | |||
26 | _countUp = () => { | ||
27 | this.count += 1; | ||
28 | }; | ||
29 | |||
30 | _countReaction = () => { | ||
31 | this.reactionInvokedCount += 1; | ||
32 | } | ||
33 | } | ||
34 | |||
35 | describe('FeatureStore', () => { | ||
36 | let store = null; | ||
37 | |||
38 | beforeEach(() => { | ||
39 | store = new TestFeatureStore(); | ||
40 | }); | ||
41 | |||
42 | describe('registering actions', () => { | ||
43 | it('starts the actions', () => { | ||
44 | store.start(); | ||
45 | actions.countUp(); | ||
46 | expect(store.count).toBe(1); | ||
47 | }); | ||
48 | it('starts the reactions', () => { | ||
49 | store.start(); | ||
50 | actions.countUp(); | ||
51 | expect(store.reactionInvokedCount).toBe(1); | ||
52 | }); | ||
53 | }); | ||
54 | |||
55 | describe('stopping the store', () => { | ||
56 | it('stops the actions', () => { | ||
57 | store.start(); | ||
58 | actions.countUp(); | ||
59 | store.stop(); | ||
60 | actions.countUp(); | ||
61 | expect(store.count).toBe(1); | ||
62 | }); | ||
63 | it('stops the reactions', () => { | ||
64 | store.start(); | ||
65 | actions.countUp(); | ||
66 | store.stop(); | ||
67 | store.count += 1; | ||
68 | expect(store.reactionInvokedCount).toBe(1); | ||
69 | }); | ||
70 | }); | ||
71 | |||
72 | describe('toggling the store', () => { | ||
73 | it('restarts the actions correctly', () => { | ||
74 | store.start(); | ||
75 | actions.countUp(); | ||
76 | store.stop(); | ||
77 | actions.countUp(); | ||
78 | store.start(); | ||
79 | actions.countUp(); | ||
80 | expect(store.count).toBe(2); | ||
81 | }); | ||
82 | it('restarts the reactions correctly', () => { | ||
83 | store.start(); | ||
84 | actions.countUp(); | ||
85 | store.stop(); | ||
86 | actions.countUp(); | ||
87 | store.start(); | ||
88 | actions.countUp(); | ||
89 | expect(store.count).toBe(2); | ||
90 | }); | ||
91 | }); | ||
92 | }); | ||
diff --git a/src/features/workspaces/components/CreateWorkspaceForm.js b/src/features/workspaces/components/CreateWorkspaceForm.js index 2c00ea63c..cddbb2b04 100644 --- a/src/features/workspaces/components/CreateWorkspaceForm.js +++ b/src/features/workspaces/components/CreateWorkspaceForm.js | |||
@@ -7,7 +7,7 @@ import injectSheet from 'react-jss'; | |||
7 | import Form from '../../../lib/Form'; | 7 | import Form from '../../../lib/Form'; |
8 | import { required } from '../../../helpers/validation-helpers'; | 8 | import { required } from '../../../helpers/validation-helpers'; |
9 | import { gaEvent } from '../../../lib/analytics'; | 9 | import { gaEvent } from '../../../lib/analytics'; |
10 | import { GA_CATEGORY_WORKSPACES } from '../index'; | 10 | import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../index'; |
11 | 11 | ||
12 | const messages = defineMessages({ | 12 | const messages = defineMessages({ |
13 | submitButton: { | 13 | submitButton: { |
@@ -82,7 +82,7 @@ class CreateWorkspaceForm extends Component { | |||
82 | {...form.$('name').bind()} | 82 | {...form.$('name').bind()} |
83 | showLabel={false} | 83 | showLabel={false} |
84 | onEnterKey={this.submitForm.bind(this, form)} | 84 | onEnterKey={this.submitForm.bind(this, form)} |
85 | focus | 85 | focus={workspaceStore.isUserAllowedToUseFeature} |
86 | /> | 86 | /> |
87 | <Button | 87 | <Button |
88 | className={classes.submitButton} | 88 | className={classes.submitButton} |
diff --git a/src/features/workspaces/components/EditWorkspaceForm.js b/src/features/workspaces/components/EditWorkspaceForm.js index bba4485ff..e602ebd5a 100644 --- a/src/features/workspaces/components/EditWorkspaceForm.js +++ b/src/features/workspaces/components/EditWorkspaceForm.js | |||
@@ -1,4 +1,4 @@ | |||
1 | import React, { Component } from 'react'; | 1 | import React, { Component, Fragment } from 'react'; |
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { observer } from 'mobx-react'; | 3 | import { observer } from 'mobx-react'; |
4 | import { defineMessages, intlShape } from 'react-intl'; | 4 | import { defineMessages, intlShape } from 'react-intl'; |
@@ -36,6 +36,14 @@ const messages = defineMessages({ | |||
36 | id: 'settings.workspace.form.servicesInWorkspaceHeadline', | 36 | id: 'settings.workspace.form.servicesInWorkspaceHeadline', |
37 | defaultMessage: '!!!Services in this Workspace', | 37 | defaultMessage: '!!!Services in this Workspace', |
38 | }, | 38 | }, |
39 | noServicesAdded: { | ||
40 | id: 'settings.services.noServicesAdded', | ||
41 | defaultMessage: '!!!You haven\'t added any services yet.', | ||
42 | }, | ||
43 | discoverServices: { | ||
44 | id: 'settings.services.discoverServices', | ||
45 | defaultMessage: '!!!Discover services', | ||
46 | }, | ||
39 | }); | 47 | }); |
40 | 48 | ||
41 | const styles = () => ({ | 49 | const styles = () => ({ |
@@ -150,14 +158,29 @@ class EditWorkspaceForm extends Component { | |||
150 | </div> | 158 | </div> |
151 | <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> | 159 | <h2>{intl.formatMessage(messages.servicesInWorkspaceHeadline)}</h2> |
152 | <div className={classes.serviceList}> | 160 | <div className={classes.serviceList}> |
153 | {services.map(s => ( | 161 | {services.length === 0 ? ( |
154 | <WorkspaceServiceListItem | 162 | <div className="align-middle settings__empty-state"> |
155 | key={s.id} | 163 | {/* ===== Empty state ===== */} |
156 | service={s} | 164 | <p className="settings__empty-text"> |
157 | isInWorkspace={workspaceServices.includes(s.id)} | 165 | <span className="emoji"> |
158 | onToggle={() => this.toggleService(s)} | 166 | <img src="./assets/images/emoji/sad.png" alt="" /> |
159 | /> | 167 | </span> |
160 | ))} | 168 | {intl.formatMessage(messages.noServicesAdded)} |
169 | </p> | ||
170 | <Link to="/settings/recipes" className="button">{intl.formatMessage(messages.discoverServices)}</Link> | ||
171 | </div> | ||
172 | ) : ( | ||
173 | <Fragment> | ||
174 | {services.map(s => ( | ||
175 | <WorkspaceServiceListItem | ||
176 | key={s.id} | ||
177 | service={s} | ||
178 | isInWorkspace={workspaceServices.includes(s.id)} | ||
179 | onToggle={() => this.toggleService(s)} | ||
180 | /> | ||
181 | ))} | ||
182 | </Fragment> | ||
183 | )} | ||
161 | </div> | 184 | </div> |
162 | </div> | 185 | </div> |
163 | <div className="settings__controls"> | 186 | <div className="settings__controls"> |
diff --git a/src/features/workspaces/components/WorkspacesDashboard.js b/src/features/workspaces/components/WorkspacesDashboard.js index dd4381a15..09c98ab8c 100644 --- a/src/features/workspaces/components/WorkspacesDashboard.js +++ b/src/features/workspaces/components/WorkspacesDashboard.js | |||
@@ -170,18 +170,32 @@ class WorkspacesDashboard extends Component { | |||
170 | {intl.formatMessage(messages.workspacesRequestFailed)} | 170 | {intl.formatMessage(messages.workspacesRequestFailed)} |
171 | </Infobox> | 171 | </Infobox> |
172 | ) : ( | 172 | ) : ( |
173 | <table className={classes.table}> | 173 | <Fragment> |
174 | {/* ===== Workspaces list ===== */} | 174 | {workspaces.length === 0 ? ( |
175 | <tbody> | 175 | <div className="align-middle settings__empty-state"> |
176 | {workspaces.map(workspace => ( | 176 | {/* ===== Workspaces empty state ===== */} |
177 | <WorkspaceItem | 177 | <p className="settings__empty-text"> |
178 | key={workspace.id} | 178 | <span className="emoji"> |
179 | workspace={workspace} | 179 | <img src="./assets/images/emoji/sad.png" alt="" /> |
180 | onItemClick={w => onWorkspaceClick(w)} | 180 | </span> |
181 | /> | 181 | {intl.formatMessage(messages.noServicesAdded)} |
182 | ))} | 182 | </p> |
183 | </tbody> | 183 | </div> |
184 | </table> | 184 | ) : ( |
185 | <table className={classes.table}> | ||
186 | {/* ===== Workspaces list ===== */} | ||
187 | <tbody> | ||
188 | {workspaces.map(workspace => ( | ||
189 | <WorkspaceItem | ||
190 | key={workspace.id} | ||
191 | workspace={workspace} | ||
192 | onItemClick={w => onWorkspaceClick(w)} | ||
193 | /> | ||
194 | ))} | ||
195 | </tbody> | ||
196 | </table> | ||
197 | )} | ||
198 | </Fragment> | ||
185 | )} | 199 | )} |
186 | </Fragment> | 200 | </Fragment> |
187 | )} | 201 | )} |
diff --git a/src/features/workspaces/store.js b/src/features/workspaces/store.js index ea601700e..51a7f3651 100644 --- a/src/features/workspaces/store.js +++ b/src/features/workspaces/store.js | |||
@@ -14,6 +14,8 @@ import { | |||
14 | updateWorkspaceRequest, | 14 | updateWorkspaceRequest, |
15 | } from './api'; | 15 | } from './api'; |
16 | import { WORKSPACES_ROUTES } from './index'; | 16 | import { WORKSPACES_ROUTES } from './index'; |
17 | import { createReactions } from '../../stores/lib/Reaction'; | ||
18 | import { createActionBindings } from '../utils/ActionBinding'; | ||
17 | 19 | ||
18 | const debug = require('debug')('Franz:feature:workspaces:store'); | 20 | const debug = require('debug')('Franz:feature:workspaces:store'); |
19 | 21 | ||
@@ -51,37 +53,78 @@ export default class WorkspacesStore extends FeatureStore { | |||
51 | return getUserWorkspacesRequest.wasExecuted && this.workspaces.length > 0; | 53 | return getUserWorkspacesRequest.wasExecuted && this.workspaces.length > 0; |
52 | } | 54 | } |
53 | 55 | ||
56 | @computed get isUserAllowedToUseFeature() { | ||
57 | return !this.isPremiumUpgradeRequired; | ||
58 | } | ||
59 | |||
60 | @computed get isAnyWorkspaceActive() { | ||
61 | return !!this.activeWorkspace; | ||
62 | } | ||
63 | |||
64 | // ========== PRIVATE PROPERTIES ========= // | ||
65 | |||
66 | _wasDrawerOpenBeforeSettingsRoute = null; | ||
67 | |||
68 | _freeUserActions = []; | ||
69 | |||
70 | _premiumUserActions = []; | ||
71 | |||
72 | _allActions = []; | ||
73 | |||
74 | _freeUserReactions = []; | ||
75 | |||
76 | _premiumUserReactions = []; | ||
77 | |||
78 | _allReactions = []; | ||
79 | |||
80 | // ========== PUBLIC API ========= // | ||
81 | |||
54 | start(stores, actions) { | 82 | start(stores, actions) { |
55 | debug('WorkspacesStore::start'); | 83 | debug('WorkspacesStore::start'); |
56 | this.stores = stores; | 84 | this.stores = stores; |
57 | this.actions = actions; | 85 | this.actions = actions; |
58 | 86 | ||
59 | this._listenToActions([ | 87 | // ACTIONS |
88 | |||
89 | this._freeUserActions = createActionBindings([ | ||
90 | [workspaceActions.toggleWorkspaceDrawer, this._toggleWorkspaceDrawer], | ||
91 | [workspaceActions.openWorkspaceSettings, this._openWorkspaceSettings], | ||
92 | ]); | ||
93 | this._premiumUserActions = createActionBindings([ | ||
60 | [workspaceActions.edit, this._edit], | 94 | [workspaceActions.edit, this._edit], |
61 | [workspaceActions.create, this._create], | 95 | [workspaceActions.create, this._create], |
62 | [workspaceActions.delete, this._delete], | 96 | [workspaceActions.delete, this._delete], |
63 | [workspaceActions.update, this._update], | 97 | [workspaceActions.update, this._update], |
64 | [workspaceActions.activate, this._setActiveWorkspace], | 98 | [workspaceActions.activate, this._setActiveWorkspace], |
65 | [workspaceActions.deactivate, this._deactivateActiveWorkspace], | 99 | [workspaceActions.deactivate, this._deactivateActiveWorkspace], |
66 | [workspaceActions.toggleWorkspaceDrawer, this._toggleWorkspaceDrawer], | ||
67 | [workspaceActions.openWorkspaceSettings, this._openWorkspaceSettings], | ||
68 | ]); | 100 | ]); |
101 | this._allActions = this._freeUserActions.concat(this._premiumUserActions); | ||
102 | this._registerActions(this._allActions); | ||
69 | 103 | ||
70 | this._startReactions([ | 104 | // REACTIONS |
71 | this._setWorkspaceBeingEditedReaction, | 105 | |
72 | this._setActiveServiceOnWorkspaceSwitchReaction, | 106 | this._freeUserReactions = createReactions([ |
107 | this._stopPremiumActionsAndReactions, | ||
108 | this._openDrawerWithSettingsReaction, | ||
73 | this._setFeatureEnabledReaction, | 109 | this._setFeatureEnabledReaction, |
74 | this._setIsPremiumFeatureReaction, | 110 | this._setIsPremiumFeatureReaction, |
75 | this._activateLastUsedWorkspaceReaction, | ||
76 | this._openDrawerWithSettingsReaction, | ||
77 | this._cleanupInvalidServiceReferences, | 111 | this._cleanupInvalidServiceReferences, |
78 | ]); | 112 | ]); |
113 | this._premiumUserReactions = createReactions([ | ||
114 | this._setActiveServiceOnWorkspaceSwitchReaction, | ||
115 | this._activateLastUsedWorkspaceReaction, | ||
116 | this._setWorkspaceBeingEditedReaction, | ||
117 | ]); | ||
118 | this._allReactions = this._freeUserReactions.concat(this._premiumUserReactions); | ||
119 | |||
120 | this._registerReactions(this._allReactions); | ||
79 | 121 | ||
80 | getUserWorkspacesRequest.execute(); | 122 | getUserWorkspacesRequest.execute(); |
81 | this.isFeatureActive = true; | 123 | this.isFeatureActive = true; |
82 | } | 124 | } |
83 | 125 | ||
84 | stop() { | 126 | stop() { |
127 | super.stop(); | ||
85 | debug('WorkspacesStore::stop'); | 128 | debug('WorkspacesStore::stop'); |
86 | this.isFeatureActive = false; | 129 | this.isFeatureActive = false; |
87 | this.activeWorkspace = null; | 130 | this.activeWorkspace = null; |
@@ -104,9 +147,7 @@ export default class WorkspacesStore extends FeatureStore { | |||
104 | return workspace.services.map(id => services.one(id)).filter(s => !!s); | 147 | return workspace.services.map(id => services.one(id)).filter(s => !!s); |
105 | } | 148 | } |
106 | 149 | ||
107 | // ========== PRIVATE ========= // | 150 | // ========== PRIVATE METHODS ========= // |
108 | |||
109 | _wasDrawerOpenBeforeSettingsRoute = null; | ||
110 | 151 | ||
111 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); | 152 | _getWorkspaceById = id => this.workspaces.find(w => w.id === id); |
112 | 153 | ||
@@ -192,6 +233,14 @@ export default class WorkspacesStore extends FeatureStore { | |||
192 | this.actions.ui.openSettings({ path: 'workspaces' }); | 233 | this.actions.ui.openSettings({ path: 'workspaces' }); |
193 | }; | 234 | }; |
194 | 235 | ||
236 | @action reorderServicesOfActiveWorkspace = async ({ oldIndex, newIndex }) => { | ||
237 | const { activeWorkspace } = this; | ||
238 | const { services } = activeWorkspace; | ||
239 | // Move services from the old to the new position | ||
240 | services.splice(newIndex, 0, services.splice(oldIndex, 1)[0]); | ||
241 | await updateWorkspaceRequest.execute(activeWorkspace); | ||
242 | }; | ||
243 | |||
195 | // Reactions | 244 | // Reactions |
196 | 245 | ||
197 | _setFeatureEnabledReaction = () => { | 246 | _setFeatureEnabledReaction = () => { |
@@ -218,13 +267,15 @@ export default class WorkspacesStore extends FeatureStore { | |||
218 | _setActiveServiceOnWorkspaceSwitchReaction = () => { | 267 | _setActiveServiceOnWorkspaceSwitchReaction = () => { |
219 | if (!this.isFeatureActive) return; | 268 | if (!this.isFeatureActive) return; |
220 | if (this.activeWorkspace) { | 269 | if (this.activeWorkspace) { |
221 | const services = this.stores.services.allDisplayed; | 270 | const activeService = this.stores.services.active; |
222 | const activeService = services.find(s => s.isActive); | ||
223 | const workspaceServices = this.getWorkspaceServices(this.activeWorkspace); | 271 | const workspaceServices = this.getWorkspaceServices(this.activeWorkspace); |
224 | if (workspaceServices.length <= 0) return; | 272 | if (workspaceServices.length <= 0) return; |
225 | const isActiveServiceInWorkspace = workspaceServices.includes(activeService); | 273 | const isActiveServiceInWorkspace = workspaceServices.includes(activeService); |
226 | if (!isActiveServiceInWorkspace) { | 274 | if (!isActiveServiceInWorkspace) { |
227 | this.actions.service.setActive({ serviceId: workspaceServices[0].id }); | 275 | this.actions.service.setActive({ |
276 | serviceId: workspaceServices[0].id, | ||
277 | keepActiveRoute: true, | ||
278 | }); | ||
228 | } | 279 | } |
229 | } | 280 | } |
230 | }; | 281 | }; |
@@ -273,4 +324,14 @@ export default class WorkspacesStore extends FeatureStore { | |||
273 | getUserWorkspacesRequest.execute(); | 324 | getUserWorkspacesRequest.execute(); |
274 | } | 325 | } |
275 | }; | 326 | }; |
327 | |||
328 | _stopPremiumActionsAndReactions = () => { | ||
329 | if (!this.isUserAllowedToUseFeature) { | ||
330 | this._stopActions(this._premiumUserActions); | ||
331 | this._stopReactions(this._premiumUserReactions); | ||
332 | } else { | ||
333 | this._startActions(this._premiumUserActions); | ||
334 | this._startReactions(this._premiumUserReactions); | ||
335 | } | ||
336 | } | ||
276 | } | 337 | } |
diff --git a/src/i18n/locales/ca.json b/src/i18n/locales/ca.json index dabe4ba16..b2aaaa070 100644 --- a/src/i18n/locales/ca.json +++ b/src/i18n/locales/ca.json | |||
@@ -1,15 +1,16 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Recarrega", | 2 | "app.errorHandler.action" : "Recarrega", |
3 | "app.errorHandler.headline" : "Quelcom ha anat malament", | 3 | "app.errorHandler.headline" : "Quelcom ha anat malament", |
4 | "feature.announcements.changelog.headline" : "Canvis en Franz {version}", | ||
4 | "feature.delayApp.action" : "Aconsegueix una llicència de suport per a Franz", | 5 | "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", | 6 | "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", | 7 | "feature.delayApp.text" : "Franz continuarà en {seconds} segons", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Envia com a correu", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Compartir en Facebook", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "No es pot connectar amb els serveis en lÃnia de Franz", | 15 | "global.api.unhealthy" : "No es pot connectar amb els serveis en lÃnia de Franz", |
15 | "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", | 16 | "global.notConnectedToTheInternet" : "No esteu connectat a Internet.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Accedir", | 44 | "login.submit.label" : "Accedir", |
44 | "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", | 45 | "login.tokenExpired" : "La teva sessió ha caducat, torna a iniciar la sessió.", |
45 | "menu.app.about" : "Sobre Franz", | 46 | "menu.app.about" : "Sobre Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Amaga", | 48 | "menu.app.hide" : "Amaga", |
47 | "menu.app.hideOthers" : "Amaga altres", | 49 | "menu.app.hideOthers" : "Amaga altres", |
48 | "menu.app.quit" : "Surt", | 50 | "menu.app.quit" : "Surt", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Finestra", | 89 | "menu.window" : "Finestra", |
88 | "menu.window.close" : "Tanca", | 90 | "menu.window.close" : "Tanca", |
89 | "menu.window.minimize" : "Minimitza", | 91 | "menu.window.minimize" : "Minimitza", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Tots els serveis", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Correu electrònic", | 97 | "password.email.label" : "Correu electrònic", |
91 | "password.headline" : "Restablir contrasenya", | 98 | "password.headline" : "Restablir contrasenya", |
92 | "password.link.login" : "Inicia la sessió al teu compte", | 99 | "password.link.login" : "Inicia la sessió al teu compte", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh no!", | 117 | "service.errorHandler.headline" : "Oh no!", |
111 | "service.errorHandler.message" : "Error", | 118 | "service.errorHandler.message" : "Error", |
112 | "service.errorHandler.text" : "{name} ha fallat al carregar", | 119 | "service.errorHandler.text" : "{name} ha fallat al carregar", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Introducció", | 121 | "services.getStarted" : "Introducció", |
114 | "services.welcome" : "Benvingut a Franz", | 122 | "services.welcome" : "Benvingut a Franz", |
115 | "settings.account.account.editButton" : "Editar Compte", | 123 | "settings.account.account.editButton" : "Editar Compte", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "General", | 164 | "settings.app.headlineGeneral" : "General", |
157 | "settings.app.headlineLanguage" : "Idioma", | 165 | "settings.app.headlineLanguage" : "Idioma", |
158 | "settings.app.headlineUpdates" : "Actualitzacions", | 166 | "settings.app.headlineUpdates" : "Actualitzacions", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Els canvis requereixen reiniciar", | 168 | "settings.app.restartRequired" : "Els canvis requereixen reiniciar", |
160 | "settings.app.subheadlineCache" : "Memòria cau", | 169 | "settings.app.subheadlineCache" : "Memòria cau", |
161 | "settings.app.translationHelp" : "Ajuda'ns a traduir Franz en la teva llengua.", | 170 | "settings.app.translationHelp" : "Ajuda'ns a traduir Franz en la teva llengua.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Convidar amics", | 177 | "settings.navigation.inviteFriends" : "Convidar amics", |
169 | "settings.navigation.logout" : "Sortir", | 178 | "settings.navigation.logout" : "Sortir", |
170 | "settings.navigation.settings" : "Configuració", | 179 | "settings.navigation.settings" : "Configuració", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Els vostres serveis", | 181 | "settings.navigation.yourServices" : "Els vostres serveis", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Tots els serveis", | 183 | "settings.recipes.all" : "Tots els serveis", |
173 | "settings.recipes.dev" : "Desenvolupament", | 184 | "settings.recipes.dev" : "Desenvolupament", |
174 | "settings.recipes.headline" : "Serveis disponibles", | 185 | "settings.recipes.headline" : "Serveis disponibles", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", | 237 | "settings.services.tooltip.isMuted" : "Tots els sons estan desactivats", |
227 | "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", | 238 | "settings.services.tooltip.notificationsDisabled" : "Les notificacions estan desactivades", |
228 | "settings.services.updatedInfo" : "S'han desat els canvis", | 239 | "settings.services.updatedInfo" : "S'han desat els canvis", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Equip", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Empresa", | 246 | "settings.user.form.accountType.company" : "Empresa", |
230 | "settings.user.form.accountType.individual" : "Individual", | 247 | "settings.user.form.accountType.individual" : "Individual", |
231 | "settings.user.form.accountType.label" : "Tipus de compte", | 248 | "settings.user.form.accountType.label" : "Tipus de compte", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Nom", | 252 | "settings.user.form.firstname" : "Nom", |
236 | "settings.user.form.lastname" : "Cognoms", | 253 | "settings.user.form.lastname" : "Cognoms", |
237 | "settings.user.form.newPassword" : "Nova contrasenya", | 254 | "settings.user.form.newPassword" : "Nova contrasenya", |
255 | "settings.workspace.add.form.name" : "Nom", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Nom", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Torna a provar-ho", | ||
266 | "settings.workspaces.updatedInfo" : "S'han desat els canvis", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Afegeix nou servei", | 270 | "sidebar.addNewService" : "Afegeix nou servei", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Desactivar notificacions i à udio", | 272 | "sidebar.muteApp" : "Desactivar notificacions i à udio", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Configuració", | 274 | "sidebar.settings" : "Configuració", |
241 | "sidebar.unmuteApp" : "Activar notificacions i à udio", | 275 | "sidebar.unmuteApp" : "Activar notificacions i à udio", |
242 | "signup.company.label" : "Empresa", | 276 | "signup.company.label" : "Empresa", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Afegir serveis allotjats com Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Afegir serveis allotjats com Mattermost", |
259 | "subscription.features.proxy" : "Suport de Proxy per a serveis", | 293 | "subscription.features.proxy" : "Suport de Proxy per a serveis", |
260 | "subscription.features.spellchecker" : "Suport per corrector ortogrà fic", | 294 | "subscription.features.spellchecker" : "Suport per corrector ortogrà fic", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "El compte de pagament Franz Premium Supporter inclou", | 296 | "subscription.includedFeatures" : "El compte de pagament Franz Premium Supporter inclou", |
262 | "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament", | 297 | "subscription.paymentSessionError" : "No s'ha pogut inicialitzar el formulari de pagament", |
263 | "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz", | 298 | "subscription.submit.label" : "Vull donar suport al desenvolupament de Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} es requerit", | 316 | "validation.required" : "{field} es requerit", |
282 | "validation.url" : "{field} es una URL no và lida", | 317 | "validation.url" : "{field} es una URL no và lida", |
283 | "welcome.loginButton" : "Inicia sessió al teu compte", | 318 | "welcome.loginButton" : "Inicia sessió al teu compte", |
284 | "welcome.signupButton" : "Crea un compte gratuït" | 319 | "welcome.signupButton" : "Crea un compte gratuït", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Tots els serveis", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/cs.json b/src/i18n/locales/cs.json index f0b0b7c81..aadfeffbc 100644 --- a/src/i18n/locales/cs.json +++ b/src/i18n/locales/cs.json | |||
@@ -1,15 +1,16 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Obnovit", | 2 | "app.errorHandler.action" : "Obnovit", |
3 | "app.errorHandler.headline" : "Něco se pokazilo", | 3 | "app.errorHandler.headline" : "Něco se pokazilo", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "PodpoÅ™ Franz a zÃskej Supporter licenci", | 5 | "feature.delayApp.action" : "PodpoÅ™ Franz a zÃskej Supporter licenci", |
5 | "feature.delayApp.headline" : "Kup si Franz Supporter licenci a nebudeÅ¡ už muset Äekat", | 6 | "feature.delayApp.headline" : "Kup si Franz Supporter licenci a nebudeÅ¡ už muset Äekat", |
6 | "feature.delayApp.text" : "Franz bude pokraÄovat v {seconds} sekundách.", | 7 | "feature.delayApp.text" : "Franz bude pokraÄovat v {seconds} sekundách.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Poslat jako e-mail", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "SdÃlet na Facebooku", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "SdÃlet na Twitteru", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám", | 15 | "global.api.unhealthy" : "Nemůžeme připojit Franz k online službám", |
15 | "global.notConnectedToTheInternet" : "Připojenà k internetu nenà k dispozici.", | 16 | "global.notConnectedToTheInternet" : "Připojenà k internetu nenà k dispozici.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Přihlásit se", | 44 | "login.submit.label" : "Přihlásit se", |
44 | "login.tokenExpired" : "Sezenà vyprÅ¡elo, prosÃm pÅ™ihlaste se znovu", | 45 | "login.tokenExpired" : "Sezenà vyprÅ¡elo, prosÃm pÅ™ihlaste se znovu", |
45 | "menu.app.about" : "O aplikaci", | 46 | "menu.app.about" : "O aplikaci", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Skrýt", | 48 | "menu.app.hide" : "Skrýt", |
47 | "menu.app.hideOthers" : "Skryt ostatnÃ", | 49 | "menu.app.hideOthers" : "Skryt ostatnÃ", |
48 | "menu.app.quit" : "UkonÄit", | 50 | "menu.app.quit" : "UkonÄit", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Okno", | 89 | "menu.window" : "Okno", |
88 | "menu.window.close" : "ZavÅ™Ãt", | 90 | "menu.window.close" : "ZavÅ™Ãt", |
89 | "menu.window.minimize" : "Minimalizovat", | 91 | "menu.window.minimize" : "Minimalizovat", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Všechny služby", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-mailová adresa", | 97 | "password.email.label" : "E-mailová adresa", |
91 | "password.headline" : "Obnovit heslo", | 98 | "password.headline" : "Obnovit heslo", |
92 | "password.link.login" : "PÅ™ihlásit se k úÄtu", | 99 | "password.link.login" : "PÅ™ihlásit se k úÄtu", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Ale ne!", | 117 | "service.errorHandler.headline" : "Ale ne!", |
111 | "service.errorHandler.message" : "Chyba", | 118 | "service.errorHandler.message" : "Chyba", |
112 | "service.errorHandler.text" : "{name} se nepodaÅ™ilo naÄÃst.", | 119 | "service.errorHandler.text" : "{name} se nepodaÅ™ilo naÄÃst.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "ZaÄnÄ›me", | 121 | "services.getStarted" : "ZaÄnÄ›me", |
114 | "services.welcome" : "VÃtejte v programu Franz", | 122 | "services.welcome" : "VÃtejte v programu Franz", |
115 | "settings.account.account.editButton" : "Upravit úÄet", | 123 | "settings.account.account.editButton" : "Upravit úÄet", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Obecné", | 164 | "settings.app.headlineGeneral" : "Obecné", |
157 | "settings.app.headlineLanguage" : "Jazyk", | 165 | "settings.app.headlineLanguage" : "Jazyk", |
158 | "settings.app.headlineUpdates" : "Aktualizace", | 166 | "settings.app.headlineUpdates" : "Aktualizace", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Změny vyžadujà restart", | 168 | "settings.app.restartRequired" : "Změny vyžadujà restart", |
160 | "settings.app.subheadlineCache" : "Mezipaměť", | 169 | "settings.app.subheadlineCache" : "Mezipaměť", |
161 | "settings.app.translationHelp" : "Pomozte nám přeložit Franz do svého jazyka.", | 170 | "settings.app.translationHelp" : "Pomozte nám přeložit Franz do svého jazyka.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Pozvi přátele", | 177 | "settings.navigation.inviteFriends" : "Pozvi přátele", |
169 | "settings.navigation.logout" : "Odhlásit", | 178 | "settings.navigation.logout" : "Odhlásit", |
170 | "settings.navigation.settings" : "NastavenÃ", | 179 | "settings.navigation.settings" : "NastavenÃ", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Vaše služby", | 181 | "settings.navigation.yourServices" : "Vaše služby", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Všechny služby", | 183 | "settings.recipes.all" : "Všechny služby", |
173 | "settings.recipes.dev" : "Vývoj", | 184 | "settings.recipes.dev" : "Vývoj", |
174 | "settings.recipes.headline" : "Dostupné služby", | 185 | "settings.recipes.headline" : "Dostupné služby", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny", | 237 | "settings.services.tooltip.isMuted" : "Všechny zvuky jsou ztišeny", |
227 | "settings.services.tooltip.notificationsDisabled" : "Oznámenà jsou zakázána", | 238 | "settings.services.tooltip.notificationsDisabled" : "Oznámenà jsou zakázána", |
228 | "settings.services.updatedInfo" : "Vaše změny byly uloženy", | 239 | "settings.services.updatedInfo" : "Vaše změny byly uloženy", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Tým", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "SpoleÄnost", | 246 | "settings.user.form.accountType.company" : "SpoleÄnost", |
230 | "settings.user.form.accountType.individual" : "Jednotlivec", | 247 | "settings.user.form.accountType.individual" : "Jednotlivec", |
231 | "settings.user.form.accountType.label" : "Druh úÄtu", | 248 | "settings.user.form.accountType.label" : "Druh úÄtu", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Jméno", | 252 | "settings.user.form.firstname" : "Jméno", |
236 | "settings.user.form.lastname" : "PÅ™ÃjmenÃ", | 253 | "settings.user.form.lastname" : "PÅ™ÃjmenÃ", |
237 | "settings.user.form.newPassword" : "Nové heslo", | 254 | "settings.user.form.newPassword" : "Nové heslo", |
255 | "settings.workspace.add.form.name" : "Jméno", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Jméno", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Zkusit opět", | ||
266 | "settings.workspaces.updatedInfo" : "Vaše změny byly uloženy", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Přidat novou službu", | 270 | "sidebar.addNewService" : "Přidat novou službu", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Vypnout upozorněnà a zvuky", | 272 | "sidebar.muteApp" : "Vypnout upozorněnà a zvuky", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "NastavenÃ", | 274 | "sidebar.settings" : "NastavenÃ", |
241 | "sidebar.unmuteApp" : "Zapnout upozorněnà a zvuky", | 275 | "sidebar.unmuteApp" : "Zapnout upozorněnà a zvuky", |
242 | "signup.company.label" : "SpoleÄnost", | 276 | "signup.company.label" : "SpoleÄnost", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Placený úÄet Premium Supporter Franz zahrnuje", | 296 | "subscription.includedFeatures" : "Placený úÄet Premium Supporter Franz zahrnuje", |
262 | "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od", | 297 | "subscription.paymentSessionError" : "Nebylo možné inicializovat platbu od", |
263 | "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz", | 298 | "subscription.submit.label" : "Chci podpořit vývoj aplikace Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} je povinné", | 316 | "validation.required" : "{field} je povinné", |
282 | "validation.url" : "{field} nenà validnà URL", | 317 | "validation.url" : "{field} nenà validnà URL", |
283 | "welcome.loginButton" : "PÅ™ihlášenà do vaÅ¡eho úÄtu", | 318 | "welcome.loginButton" : "PÅ™ihlášenà do vaÅ¡eho úÄtu", |
284 | "welcome.signupButton" : "VytvoÅ™it úÄet zdarma" | 319 | "welcome.signupButton" : "VytvoÅ™it úÄet zdarma", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Všechny služby", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/de.json b/src/i18n/locales/de.json index 06a03db65..bd5193177 100644 --- a/src/i18n/locales/de.json +++ b/src/i18n/locales/de.json | |||
@@ -1,41 +1,42 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Neu laden", | 2 | "app.errorHandler.action" : "Neu laden", |
3 | "app.errorHandler.headline" : "Es trat ein Fehler auf", | 3 | "app.errorHandler.headline" : "Es ist ein Fehler aufgetreten", |
4 | "feature.delayApp.action" : "Upgrade deinen Account", | 4 | "feature.announcements.changelog.headline" : "Was ist neu in Franz {version}", |
5 | "feature.delayApp.headline" : "Erspare dir das Warten mit einer Franz Supporter Lizenz", | 5 | "feature.delayApp.action" : "Hol dir Franz Premium!", |
6 | "feature.delayApp.text" : "Es geht in {seconds} Sekunden weiter.", | 6 | "feature.delayApp.headline" : "Erspare dir das Warten mit Franz Premium!", |
7 | "feature.delayApp.text" : "In {seconds} Sekunden geht's weiter!", | ||
7 | "feature.shareFranz.action.email" : "Als E-Mail senden", | 8 | "feature.shareFranz.action.email" : "Als E-Mail senden", |
8 | "feature.shareFranz.action.facebook" : "Auf Facebook teilen", | 9 | "feature.shareFranz.action.facebook" : "Auf Facebook teilen", |
9 | "feature.shareFranz.action.twitter" : "Auf Twitter teilen", | 10 | "feature.shareFranz.action.twitter" : "Auf Twitter teilen", |
10 | "feature.shareFranz.headline" : "Gemeinsam ist Franz noch besser!", | 11 | "feature.shareFranz.headline" : "Gemeinsam ist Franz noch besser!", |
11 | "feature.shareFranz.shareText.email" : "Ich verwende Franz! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und viele mehr auf www.meetfranz.com", | 12 | "feature.shareFranz.shareText.email" : "Ich verwende Franz! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und viele mehr auf www.meetfranz.com", |
12 | "feature.shareFranz.shareText.twitter" : "Ich verwende Franz mit {count} Diensten! Hol dir jetzt die kostenlose App für WhatsApp, Messenger, Slack, Skype und mehr auf www.meetfranz.com \/cc @MeetFranz", | 13 | "feature.shareFranz.shareText.twitter" : "Ich habe {count} Services zu Franz hinzugefügt! Hol dir die kostenlose App für WhatsApp, Messenger, Slack, Skype und viele mehr auf www.meetfranz.com \/cc @FranzMessenger", |
13 | "feature.shareFranz.text" : "Bitte erzähle deinen Freunden und Kollegen wie toll du Franz findest.", | 14 | "feature.shareFranz.text" : "Bitte erzähle deinen Freunden und Kolleginnen, warum du Franz toll findest.", |
14 | "global.api.unhealthy" : "Verbindung mit dem Franz Online Service fehlgeschlagen", | 15 | "global.api.unhealthy" : "Verbindung zum Franz Online Service fehlgeschlagen", |
15 | "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", | 16 | "global.notConnectedToTheInternet" : "Du bist nicht mit dem Internet verbunden.", |
16 | "global.spellchecker.useDefault" : "Standard benutzen ({default})", | 17 | "global.spellchecker.useDefault" : "Standard benutzen ({default})", |
17 | "global.spellchecking.autodetect" : "Sprache automatisch erkennen", | 18 | "global.spellchecking.autodetect" : "Sprache automatisch erkennen", |
18 | "global.spellchecking.autodetect.short" : "Automatisch", | 19 | "global.spellchecking.autodetect.short" : "Automatisch", |
19 | "global.spellchecking.language" : "Sprache für Rechtschreibprüfung", | 20 | "global.spellchecking.language" : "Sprache für Rechtschreibprüfung", |
20 | "import.headline" : "Deine Franz 4 Dienste importieren", | 21 | "import.headline" : "Deine Franz-4-Dienste importieren", |
21 | "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", | 22 | "import.notSupportedHeadline" : "Dienste, die noch nicht von Franz 5 unterstützt werden", |
22 | "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", | 23 | "import.skip.label" : "Ich möchte Dienste selbst hinzufügen", |
23 | "import.submit.label" : "Dienste importieren", | 24 | "import.submit.label" : "Dienste importieren", |
24 | "infobar.buttonChangelog" : "Was ist neu?", | 25 | "infobar.buttonChangelog" : "Was gibt es Neues?", |
25 | "infobar.buttonInstallUpdate" : "Neu starten & Update installieren", | 26 | "infobar.buttonInstallUpdate" : "Neu starten & Update installieren", |
26 | "infobar.buttonReloadServices" : "Dienste neuladen", | 27 | "infobar.buttonReloadServices" : "Dienste neu laden", |
27 | "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", | 28 | "infobar.requiredRequestsFailed" : "Dienste und Benutzerinformationen konnten nicht geladen werden", |
28 | "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", | 29 | "infobar.servicesUpdated" : "Deine Dienste wurden aktualisiert.", |
29 | "infobar.updateAvailable" : "Eine neue Version von Franz ist verfügbar.", | 30 | "infobar.updateAvailable" : "Eine neue Version von Franz ist verfügbar!", |
30 | "invite.email.label" : "E-Mail-Adresse", | 31 | "invite.email.label" : "E-Mail-Adresse", |
31 | "invite.headline.friends" : "Lade 3 Freunde oder Kollegen ein", | 32 | "invite.headline.friends" : "Lade drei Freunde oder Kolleginnen ein!", |
32 | "invite.name.label" : "Name", | 33 | "invite.name.label" : "Name", |
33 | "invite.skip.label" : "Ich möchte das später tun", | 34 | "invite.skip.label" : "Jetzt nicht! Ich möchte das später tun.", |
34 | "invite.submit.label" : "Einladungen schicken", | 35 | "invite.submit.label" : "Einladungen schicken", |
35 | "invite.successInfo" : "Die Einladungen wurden erfolgreich gesendet.", | 36 | "invite.successInfo" : "Die Einladungen wurden erfolgreich versendet.", |
36 | "login.email.label" : "E-Mail-Adresse", | 37 | "login.email.label" : "E-Mail-Adresse", |
37 | "login.headline" : "Anmelden", | 38 | "login.headline" : "Anmelden", |
38 | "login.invalidCredentials" : "E-Mail Adresse oder Passwort ungültig", | 39 | "login.invalidCredentials" : "E-Mail-Adresse oder Passwort ungültig", |
39 | "login.link.password" : "Passwort zurücksetzen", | 40 | "login.link.password" : "Passwort zurücksetzen", |
40 | "login.link.signup" : "Kostenloses Konto erstellen", | 41 | "login.link.signup" : "Kostenloses Konto erstellen", |
41 | "login.password.label" : "Passwort", | 42 | "login.password.label" : "Passwort", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Anmelden", | 44 | "login.submit.label" : "Anmelden", |
44 | "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde Dich erneut an.", | 45 | "login.tokenExpired" : "Deine Sitzung ist abgelaufen, bitte melde Dich erneut an.", |
45 | "menu.app.about" : "Ãœber Franz", | 46 | "menu.app.about" : "Ãœber Franz", |
47 | "menu.app.announcement" : "Was ist neu?", | ||
46 | "menu.app.hide" : "Ausblenden", | 48 | "menu.app.hide" : "Ausblenden", |
47 | "menu.app.hideOthers" : "Andere ausblenden", | 49 | "menu.app.hideOthers" : "Andere ausblenden", |
48 | "menu.app.quit" : "Beenden", | 50 | "menu.app.quit" : "Beenden", |
@@ -87,12 +89,14 @@ | |||
87 | "menu.window" : "Fenster", | 89 | "menu.window" : "Fenster", |
88 | "menu.window.close" : "Schließen", | 90 | "menu.window.close" : "Schließen", |
89 | "menu.window.minimize" : "Minimieren", | 91 | "menu.window.minimize" : "Minimieren", |
90 | "menu.workspaces": "Workspaces", | 92 | "menu.workspaces" : "Workspaces", |
91 | "menu.workspaces.defaultWorkspace": "All services", | 93 | "menu.workspaces.addNewWorkspace" : "Neuen Workspace hinzufügen", |
92 | "menu.workspaces.addNewWorkspace": "Add New Workspace", | 94 | "menu.workspaces.closeWorkspaceDrawer" : "Workspaces öffnen", |
93 | "password.email.label" : "E-Mail Adresse", | 95 | "menu.workspaces.defaultWorkspace" : "Alle Dienste", |
96 | "menu.workspaces.openWorkspaceDrawer" : "Workspaces schließen", | ||
97 | "password.email.label" : "E-Mail-Adresse", | ||
94 | "password.headline" : "Passwort zurücksetzen", | 98 | "password.headline" : "Passwort zurücksetzen", |
95 | "password.link.login" : "An Deinem Konto anmelden", | 99 | "password.link.login" : "Mit deinem Konto anmelden", |
96 | "password.link.signup" : "Kostenloses Konto erstellen", | 100 | "password.link.signup" : "Kostenloses Konto erstellen", |
97 | "password.noUser" : "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden.", | 101 | "password.noUser" : "Es wurde kein Benutzer mit dieser E-Mail-Adresse gefunden.", |
98 | "password.submit.label" : "Absenden", | 102 | "password.submit.label" : "Absenden", |
@@ -102,28 +106,29 @@ | |||
102 | "pricing.link.skipPayment" : "Ich möchte die Entwicklung von Franz nicht unterstützen.", | 106 | "pricing.link.skipPayment" : "Ich möchte die Entwicklung von Franz nicht unterstützen.", |
103 | "pricing.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen.", | 107 | "pricing.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen.", |
104 | "pricing.support.label" : "Wie möchtest Du Franz unterstützen?", | 108 | "pricing.support.label" : "Wie möchtest Du Franz unterstützen?", |
105 | "service.crashHandler.action" : "{name} neuladen", | 109 | "service.crashHandler.action" : "{name} neu laden", |
106 | "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt", | 110 | "service.crashHandler.autoReload" : "{name} wird in {seconds} Sekunden automatisch wiederhergestellt", |
107 | "service.crashHandler.headline" : "Oh nein!", | 111 | "service.crashHandler.headline" : "Oh nein!", |
108 | "service.crashHandler.text" : "{name} hat einen Fehler verursacht.", | 112 | "service.crashHandler.text" : "{name} hat einen Fehler verursacht.", |
109 | "service.disabledHandler.action" : "{name} aktivieren", | 113 | "service.disabledHandler.action" : "{name} aktivieren", |
110 | "service.disabledHandler.headline" : "{name} ist deaktiviert", | 114 | "service.disabledHandler.headline" : "{name} ist deaktiviert", |
111 | "service.errorHandler.action" : "{name} neuladen", | 115 | "service.errorHandler.action" : "{name} neu laden", |
112 | "service.errorHandler.editAction" : "{name} bearbeiten", | 116 | "service.errorHandler.editAction" : "{name} bearbeiten", |
113 | "service.errorHandler.headline" : "Oh nein!", | 117 | "service.errorHandler.headline" : "Oh nein!", |
114 | "service.errorHandler.message" : "Fehler", | 118 | "service.errorHandler.message" : "Fehler", |
115 | "service.errorHandler.text" : "{name} konnte nicht geladen werden.", | 119 | "service.errorHandler.text" : "{name} konnte nicht geladen werden.", |
116 | "services.getStarted" : "Loslegen", | 120 | "service.webviewLoader.loading" : "Lade", |
117 | "services.welcome" : "Willkommen bei Franz.", | 121 | "services.getStarted" : "Los geht's!", |
122 | "services.welcome" : "Willkommen bei Franz!", | ||
118 | "settings.account.account.editButton" : "Konto bearbeiten", | 123 | "settings.account.account.editButton" : "Konto bearbeiten", |
119 | "settings.account.accountType.basic" : "Basis Konto", | 124 | "settings.account.accountType.basic" : "Basis-Konto", |
120 | "settings.account.accountType.premium" : "Premium-Supporter Konto", | 125 | "settings.account.accountType.premium" : "Premium Lizenz", |
121 | "settings.account.buttonSave" : "Profil aktualisieren", | 126 | "settings.account.buttonSave" : "Profil aktualisieren", |
122 | "settings.account.deleteAccount" : "Benutzerkonto löschen", | 127 | "settings.account.deleteAccount" : "Benutzerkonto löschen", |
123 | "settings.account.deleteEmailSent" : "Du hast eine Email zur Bestätigung der Löschung Deines Benutzerkontos erhalten. Dein Benutzerkonto und Deine Daten können nach der Löschung nicht wiederhergestellt werden!", | 128 | "settings.account.deleteEmailSent" : "Du hast eine E-Mail zur Bestätigung der Löschung Deines Benutzerkontos erhalten. Dein Benutzerkonto und Deine Daten können nach der Löschung nicht wiederhergestellt werden!", |
124 | "settings.account.deleteInfo" : "Wenn du dein Franz Benutzerkonto nicht mehr länger benötigst, kannst du hier deinen Account und alle dazugehörigen Daten löschen.", | 129 | "settings.account.deleteInfo" : "Wenn du dein Franz-Benutzerkonto nicht mehr länger benötigst, kannst du es hier mit allen dazugehörigen Daten löschen.", |
125 | "settings.account.headline" : "Konto", | 130 | "settings.account.headline" : "Konto", |
126 | "settings.account.headlineAccount" : "Konto Informationen", | 131 | "settings.account.headlineAccount" : "Konto-Informationen", |
127 | "settings.account.headlineDangerZone" : "Benutzerkonto löschen", | 132 | "settings.account.headlineDangerZone" : "Benutzerkonto löschen", |
128 | "settings.account.headlineInvoices" : "Rechnungen", | 133 | "settings.account.headlineInvoices" : "Rechnungen", |
129 | "settings.account.headlinePassword" : "Passwort ändern", | 134 | "settings.account.headlinePassword" : "Passwort ändern", |
@@ -144,7 +149,7 @@ | |||
144 | "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", | 149 | "settings.app.form.autoLaunchInBackground" : "Im Hintergrund öffnen", |
145 | "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", | 150 | "settings.app.form.autoLaunchOnStart" : "Franz beim Systemstart ausführen", |
146 | "settings.app.form.beta" : "Beta-Versionen einbeziehen", | 151 | "settings.app.form.beta" : "Beta-Versionen einbeziehen", |
147 | "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich (Dark Mode)", | 152 | "settings.app.form.darkMode" : "Die dunkle Seite erwartet dich! (Dark Mode)", |
148 | "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", | 153 | "settings.app.form.enableGPUAcceleration" : "Hardwarebeschleunigung aktivieren", |
149 | "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", | 154 | "settings.app.form.enableSpellchecking" : "Rechtschreibprüfung aktivieren", |
150 | "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", | 155 | "settings.app.form.enableSystemTray" : "Franz im Infobereich anzeigen", |
@@ -159,26 +164,28 @@ | |||
159 | "settings.app.headlineGeneral" : "Allgemeines", | 164 | "settings.app.headlineGeneral" : "Allgemeines", |
160 | "settings.app.headlineLanguage" : "Sprache", | 165 | "settings.app.headlineLanguage" : "Sprache", |
161 | "settings.app.headlineUpdates" : "Updates", | 166 | "settings.app.headlineUpdates" : "Updates", |
167 | "settings.app.languageDisclaimer" : "Offizielle Ãœbersetzungen: Englisch & Deutsch. Alle anderen Sprachen sind Ãœbersetzungen der Franz Community.", | ||
162 | "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam.", | 168 | "settings.app.restartRequired" : "Änderungen werden erst nach einem Neustart wirksam.", |
163 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
164 | "settings.app.translationHelp" : "Hilf uns, Franz in Deine Sprache zu übersetzen.", | 170 | "settings.app.translationHelp" : "Hilf uns, Franz in Deine Sprache zu übersetzen.", |
165 | "settings.app.updateStatusAvailable" : "Update verfügbar, lädt herunter...", | 171 | "settings.app.updateStatusAvailable" : "Update verfügbar, lädt herunter ...", |
166 | "settings.app.updateStatusSearching" : "Suche nach Updates", | 172 | "settings.app.updateStatusSearching" : "Suche nach Updates", |
167 | "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz", | 173 | "settings.app.updateStatusUpToDate" : "Du nutzt die aktuellste Version von Franz", |
168 | "settings.invite.headline" : "Lade 3 Deiner Freunde ein", | 174 | "settings.invite.headline" : "Lade drei Deiner Freunde ein", |
169 | "settings.navigation.account" : "Konto", | 175 | "settings.navigation.account" : "Konto", |
170 | "settings.navigation.availableServices" : "Verfügbare Dienste", | 176 | "settings.navigation.availableServices" : "Verfügbare Dienste", |
171 | "settings.navigation.inviteFriends" : "Freunde einladen", | 177 | "settings.navigation.inviteFriends" : "Freunde einladen", |
172 | "settings.navigation.logout" : "Abmelden", | 178 | "settings.navigation.logout" : "Abmelden", |
173 | "settings.navigation.settings" : "Einstellungen", | 179 | "settings.navigation.settings" : "Einstellungen", |
180 | "settings.navigation.team" : "Team verwalten", | ||
174 | "settings.navigation.yourServices" : "Deine Dienste", | 181 | "settings.navigation.yourServices" : "Deine Dienste", |
175 | "settings.navigation.yourWorkspaces": "Deine Workspaces", | 182 | "settings.navigation.yourWorkspaces" : "Deine Workspaces", |
176 | "settings.recipes.all" : "Alle Dienste", | 183 | "settings.recipes.all" : "Alle Dienste", |
177 | "settings.recipes.dev" : "Entwicklung", | 184 | "settings.recipes.dev" : "Entwicklung", |
178 | "settings.recipes.headline" : "Verfügbare Dienste", | 185 | "settings.recipes.headline" : "Verfügbare Dienste", |
179 | "settings.recipes.missingService" : "Fehlt ein Dienst?", | 186 | "settings.recipes.missingService" : "Fehlt ein Dienst?", |
180 | "settings.recipes.mostPopular" : "Am beliebtesten", | 187 | "settings.recipes.mostPopular" : "Am beliebtesten", |
181 | "settings.recipes.nothingFound" : "Entschuldigung, aber der von Dir gesuchte Dienst konnte nicht gefunden werden.", | 188 | "settings.recipes.nothingFound" : "Entschuldigung, der gesuchte Dienst konnte nicht gefunden werden.", |
182 | "settings.recipes.servicesSuccessfulAddedInfo" : "Dienst erfolgreich hinzugefügt", | 189 | "settings.recipes.servicesSuccessfulAddedInfo" : "Dienst erfolgreich hinzugefügt", |
183 | "settings.searchService" : "Dienst suchen", | 190 | "settings.searchService" : "Dienst suchen", |
184 | "settings.service.error.goBack" : "Zurück zu den Diensten", | 191 | "settings.service.error.goBack" : "Zurück zu den Diensten", |
@@ -187,7 +194,7 @@ | |||
187 | "settings.service.form.addServiceHeadline" : "{name} hinzufügen", | 194 | "settings.service.form.addServiceHeadline" : "{name} hinzufügen", |
188 | "settings.service.form.availableServices" : "Verfügbare Dienste", | 195 | "settings.service.form.availableServices" : "Verfügbare Dienste", |
189 | "settings.service.form.customUrl" : "Eigener Server", | 196 | "settings.service.form.customUrl" : "Eigener Server", |
190 | "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Franz Premium-Supporter Konto.", | 197 | "settings.service.form.customUrlPremiumInfo" : "Um einen selbst gehosteten Dienst hinzuzufügen, brauchst Du ein Franz Premium Konto.", |
191 | "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden", | 198 | "settings.service.form.customUrlUpgradeAccount" : "Dein Konto upgraden", |
192 | "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.", | 199 | "settings.service.form.customUrlValidationError" : "Dein {name}-Server konnte nicht verifiziert werden.", |
193 | "settings.service.form.deleteButton" : "Dienst löschen", | 200 | "settings.service.form.deleteButton" : "Dienst löschen", |
@@ -207,13 +214,13 @@ | |||
207 | "settings.service.form.indirectMessages" : "Nachrichten-Badge für alle neuen Nachrichten anzeigen", | 214 | "settings.service.form.indirectMessages" : "Nachrichten-Badge für alle neuen Nachrichten anzeigen", |
208 | "settings.service.form.isMutedInfo" : "Sämtliche Wiedergabe von Tönen wird deaktiviert", | 215 | "settings.service.form.isMutedInfo" : "Sämtliche Wiedergabe von Tönen wird deaktiviert", |
209 | "settings.service.form.name" : "Name", | 216 | "settings.service.form.name" : "Name", |
210 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Einstellungen", | 217 | "settings.service.form.proxy.headline" : "HTTP-\/HTTPS-Proxy-Einstellungen", |
211 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | 218 | "settings.service.form.proxy.host" : "Proxy Host\/IP", |
212 | "settings.service.form.proxy.info" : "Proxy Einstellungen werden nicht mit den Franz Servern synchronisiert.", | 219 | "settings.service.form.proxy.info" : "Proxy-Einstellungen werden nicht mit den Franz Servern synchronisiert.", |
213 | "settings.service.form.proxy.isEnabled" : "Proxy Server verwenden", | 220 | "settings.service.form.proxy.isEnabled" : "Proxy-Server verwenden", |
214 | "settings.service.form.proxy.password" : "Passwort (optional)", | 221 | "settings.service.form.proxy.password" : "Passwort (optional)", |
215 | "settings.service.form.proxy.port" : "Port", | 222 | "settings.service.form.proxy.port" : "Port", |
216 | "settings.service.form.proxy.restartInfo" : "Bitte starte Franz nach dem Ändern der Proxy Einstellungen neu.", | 223 | "settings.service.form.proxy.restartInfo" : "Bitte starte Franz nach dem Ändern der Proxy-Einstellungen neu.", |
217 | "settings.service.form.proxy.user" : "Benutzer (optional)", | 224 | "settings.service.form.proxy.user" : "Benutzer (optional)", |
218 | "settings.service.form.saveButton" : "Dienst speichern", | 225 | "settings.service.form.saveButton" : "Dienst speichern", |
219 | "settings.service.form.tabHosted" : "Gehostet", | 226 | "settings.service.form.tabHosted" : "Gehostet", |
@@ -230,14 +237,12 @@ | |||
230 | "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", | 237 | "settings.services.tooltip.isMuted" : "Alle Töne sind deaktiviert", |
231 | "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", | 238 | "settings.services.tooltip.notificationsDisabled" : "Benachrichtigungen deaktiviert", |
232 | "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", | 239 | "settings.services.updatedInfo" : "Deine Änderungen wurden gespeichert", |
233 | "settings.workspaces.headline": "Deine Workspaces", | 240 | "settings.team.contentHeadline" : "Franz für Teams", |
234 | "settings.workspace.add.form.submitButton": "Workspace erstellen", | 241 | "settings.team.copy" : "Mit Franz für Teams kannst du Kolleginnen und Kollegen per Email-Invite in dein Team einladen und ihre Abonnments in den Einstellungen deines Accounts verwalten. Verschwende keine Zeit mehr damit, Lizenzen für jedes Teammitglied einzeln einzurichten, vergiss mehrfache Rechnungen und unterschiedliche Abrechnungszeiträume - alles unter einem Dach.", |
235 | "settings.workspace.add.form.name": "Name", | 242 | "settings.team.headline" : "Team", |
236 | "settings.workspace.form.yourWorkspaces": "Deine Workspaces", | 243 | "settings.team.intro" : "Mit Franz für Teams kannst du Premium Lizenzen für Kolleginnen und Kollegen oder Freunde und Familienmitglieder kaufen und verwalten - so viele du willst.", |
237 | "settings.workspace.form.name": "Name", | 244 | "settings.team.manageAction" : "Verwalte dein Team auf meetfranz.com", |
238 | "settings.workspace.form.buttonDelete": "Workspace löschen", | 245 | "settings.team.upgradeAction" : "Account Upgrade durchführen", |
239 | "settings.workspace.form.buttonSave": "Workspace speichern", | ||
240 | "settings.workspace.form.servicesInWorkspaceHeadline": "Services in diesem Workspace", | ||
241 | "settings.user.form.accountType.company" : "Firma", | 246 | "settings.user.form.accountType.company" : "Firma", |
242 | "settings.user.form.accountType.individual" : "Einzelperson", | 247 | "settings.user.form.accountType.individual" : "Einzelperson", |
243 | "settings.user.form.accountType.label" : "Konto-Typ", | 248 | "settings.user.form.accountType.label" : "Konto-Typ", |
@@ -247,30 +252,48 @@ | |||
247 | "settings.user.form.firstname" : "Vorname", | 252 | "settings.user.form.firstname" : "Vorname", |
248 | "settings.user.form.lastname" : "Nachname", | 253 | "settings.user.form.lastname" : "Nachname", |
249 | "settings.user.form.newPassword" : "Neues Passwort", | 254 | "settings.user.form.newPassword" : "Neues Passwort", |
255 | "settings.workspace.add.form.name" : "Name", | ||
256 | "settings.workspace.add.form.submitButton" : "Workspace erstellen", | ||
257 | "settings.workspace.form.buttonDelete" : "Workspace löschen", | ||
258 | "settings.workspace.form.buttonSave" : "Workspace speichern", | ||
259 | "settings.workspace.form.name" : "Name", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in diesem Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Deine Workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace wurde gelöscht", | ||
263 | "settings.workspaces.headline" : "Deine Workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "Du hast noch keine Workspaces hinzugefügt", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Erneut versuchen", | ||
266 | "settings.workspaces.updatedInfo" : "Deine Änderungen wurden gespeichert", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Weniger ist mehr: Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Mit Franz Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Workspaces konnte nicht geladen werden", | ||
250 | "sidebar.addNewService" : "Neuen Dienst hinzufügen", | 270 | "sidebar.addNewService" : "Neuen Dienst hinzufügen", |
271 | "sidebar.closeWorkspaceDrawer" : "Workspaces schließen", | ||
251 | "sidebar.muteApp" : "Benachrichtigungen & Audio deaktivieren", | 272 | "sidebar.muteApp" : "Benachrichtigungen & Audio deaktivieren", |
273 | "sidebar.openWorkspaceDrawer" : "Workspaces öffnen", | ||
252 | "sidebar.settings" : "Einstellungen", | 274 | "sidebar.settings" : "Einstellungen", |
253 | "sidebar.unmuteApp" : "Benachrichtigungen & Audio aktivieren", | 275 | "sidebar.unmuteApp" : "Benachrichtigungen & Audio aktivieren", |
254 | "signup.company.label" : "Firma", | 276 | "signup.company.label" : "Firma", |
255 | "signup.email.label" : "E-Mail Adresse", | 277 | "signup.email.label" : "E-Mail-Adresse", |
256 | "signup.emailDuplicate" : "Es existiert bereits ein Benutzer mit dieser E-Mail Adresse.", | 278 | "signup.emailDuplicate" : "Es existiert bereits ein Benutzer mit dieser E-Mail Adresse.", |
257 | "signup.firstname.label" : "Vorname", | 279 | "signup.firstname.label" : "Vorname", |
258 | "signup.headline" : "Anmelden", | 280 | "signup.headline" : "Anmelden", |
259 | "signup.lastname.label" : "Nachname", | 281 | "signup.lastname.label" : "Nachname", |
260 | "signup.legal.info" : "Mit der Erstellung eines Franz Kontos akzeptierst Du die", | 282 | "signup.legal.info" : "Mit der Erstellung eines Franz-Kontos akzeptierst Du die", |
261 | "signup.legal.privacy" : "Datenschutzerklärung", | 283 | "signup.legal.privacy" : "Datenschutzerklärung", |
262 | "signup.legal.terms" : "Nutzungsbedingungen", | 284 | "signup.legal.terms" : "Nutzungsbedingungen", |
263 | "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.", | 285 | "signup.link.login" : "Du hast bereits ein Konto? Melde Dich an.", |
264 | "signup.password.label" : "Passwort", | 286 | "signup.password.label" : "Passwort", |
265 | "signup.submit.label" : "Konto erstellen", | 287 | "signup.submit.label" : "Konto erstellen", |
266 | "subscription.euTaxInfo" : "Preise sind exklusive Steuern.", | 288 | "subscription.euTaxInfo" : "Preise zuzüglich allfälliger Steuern", |
267 | "subscription.features.ads" : "Werbefrei auf Lebenszeit!", | 289 | "subscription.features.ads" : "Werbefrei auf Lebenszeit!", |
268 | "subscription.features.comingSoon" : "folgt bald", | 290 | "subscription.features.comingSoon" : "folgt bald", |
269 | "subscription.features.noInterruptions" : "Keine Wartezeiten um Franz zu verwenden", | 291 | "subscription.features.noInterruptions" : "Verwende Franz ohne Wartezeiten", |
270 | "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten, wie Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Integration von gehosteten Diensten wie Mattermost", |
271 | "subscription.features.proxy" : "Proxy Support für Dienste", | 293 | "subscription.features.proxy" : "Proxy Support für Dienste", |
272 | "subscription.features.spellchecker" : "Unterstützung für Rechtschreibprüfung", | 294 | "subscription.features.spellchecker" : "Unterstützung für Rechtschreibprüfung", |
273 | "subscription.includedFeatures" : "Bezahlte Franz Premium Support Konten beinhalten", | 295 | "subscription.features.workspaces" : "Organisiere deine Services in Workspaces", |
296 | "subscription.includedFeatures" : "Bezahlte Franz Premium Lizenzen beinhalten", | ||
274 | "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.", | 297 | "subscription.paymentSessionError" : "Das Zahlungs-Formular konnte nicht geladen werden.", |
275 | "subscription.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen", | 298 | "subscription.submit.label" : "Ich möchte die Entwicklung von Franz unterstützen", |
276 | "subscription.type.free" : "kostenlos", | 299 | "subscription.type.free" : "kostenlos", |
@@ -286,12 +309,23 @@ | |||
286 | "tabs.item.enableAudio" : "Audio aktivieren", | 309 | "tabs.item.enableAudio" : "Audio aktivieren", |
287 | "tabs.item.enableNotification" : "Benachrichtigungen aktivieren", | 310 | "tabs.item.enableNotification" : "Benachrichtigungen aktivieren", |
288 | "tabs.item.enableService" : "Dienst aktivieren", | 311 | "tabs.item.enableService" : "Dienst aktivieren", |
289 | "tabs.item.reload" : "Neuladen", | 312 | "tabs.item.reload" : "Neu laden", |
290 | "validation.email" : "{field} ist ungültig", | 313 | "validation.email" : "{field} ist ungültig", |
291 | "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten", | 314 | "validation.minLength" : "{field} muss mindestens {length} Zeichen enthalten", |
292 | "validation.oneRequired" : "Mindestens ein Wert wird benötigt", | 315 | "validation.oneRequired" : "Mindestens ein Wert wird benötigt", |
293 | "validation.required" : "{field} wird benötigt", | 316 | "validation.required" : "{field} wird benötigt", |
294 | "validation.url" : "{field} ist keine gültige URL", | 317 | "validation.url" : "{field} ist keine gültige URL", |
295 | "welcome.loginButton" : "Bei Franz einloggen", | 318 | "welcome.loginButton" : "Bei Franz einloggen", |
296 | "welcome.signupButton" : "Kostenloses Konto erstellen" | 319 | "welcome.signupButton" : "Kostenloses Konto erstellen", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Neuen Workspace hinzufügen", | ||
321 | "workspaceDrawer.allServices" : "Alle Dienste", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "Bearbeiten", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "Noch keine Services hinzugefügt", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Erstelle deinen ersten Workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium Feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Premium Account aktivieren", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "Mit Franz Workspaces hast du alles im Blick, was gerade wichtig ist - und nur das. Erstelle unterschiedliche Sets von Services, und wechsle jederzeit zwischen ihnen hin und her. Du entscheidest welche Services du wann und wo brauchst, um ungestört arbeiten zu können - oder zu Hause besser abzuschalten.", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Workspaces bearbeiten", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Wechsle zu" | ||
297 | } | 331 | } |
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 65799b614..9524238f0 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -625,78 +625,78 @@ | |||
625 | "defaultMessage": "!!!Your services have been updated.", | 625 | "defaultMessage": "!!!Your services have been updated.", |
626 | "end": { | 626 | "end": { |
627 | "column": 3, | 627 | "column": 3, |
628 | "line": 28 | 628 | "line": 29 |
629 | }, | 629 | }, |
630 | "file": "src/components/layout/AppLayout.js", | 630 | "file": "src/components/layout/AppLayout.js", |
631 | "id": "infobar.servicesUpdated", | 631 | "id": "infobar.servicesUpdated", |
632 | "start": { | 632 | "start": { |
633 | "column": 19, | 633 | "column": 19, |
634 | "line": 25 | 634 | "line": 26 |
635 | } | 635 | } |
636 | }, | 636 | }, |
637 | { | 637 | { |
638 | "defaultMessage": "!!!A new update for Franz is available.", | 638 | "defaultMessage": "!!!A new update for Franz is available.", |
639 | "end": { | 639 | "end": { |
640 | "column": 3, | 640 | "column": 3, |
641 | "line": 32 | 641 | "line": 33 |
642 | }, | 642 | }, |
643 | "file": "src/components/layout/AppLayout.js", | 643 | "file": "src/components/layout/AppLayout.js", |
644 | "id": "infobar.updateAvailable", | 644 | "id": "infobar.updateAvailable", |
645 | "start": { | 645 | "start": { |
646 | "column": 19, | 646 | "column": 19, |
647 | "line": 29 | 647 | "line": 30 |
648 | } | 648 | } |
649 | }, | 649 | }, |
650 | { | 650 | { |
651 | "defaultMessage": "!!!Reload services", | 651 | "defaultMessage": "!!!Reload services", |
652 | "end": { | 652 | "end": { |
653 | "column": 3, | 653 | "column": 3, |
654 | "line": 36 | 654 | "line": 37 |
655 | }, | 655 | }, |
656 | "file": "src/components/layout/AppLayout.js", | 656 | "file": "src/components/layout/AppLayout.js", |
657 | "id": "infobar.buttonReloadServices", | 657 | "id": "infobar.buttonReloadServices", |
658 | "start": { | 658 | "start": { |
659 | "column": 24, | 659 | "column": 24, |
660 | "line": 33 | 660 | "line": 34 |
661 | } | 661 | } |
662 | }, | 662 | }, |
663 | { | 663 | { |
664 | "defaultMessage": "!!!Changelog", | 664 | "defaultMessage": "!!!Changelog", |
665 | "end": { | 665 | "end": { |
666 | "column": 3, | 666 | "column": 3, |
667 | "line": 40 | 667 | "line": 41 |
668 | }, | 668 | }, |
669 | "file": "src/components/layout/AppLayout.js", | 669 | "file": "src/components/layout/AppLayout.js", |
670 | "id": "infobar.buttonChangelog", | 670 | "id": "infobar.buttonChangelog", |
671 | "start": { | 671 | "start": { |
672 | "column": 13, | 672 | "column": 13, |
673 | "line": 37 | 673 | "line": 38 |
674 | } | 674 | } |
675 | }, | 675 | }, |
676 | { | 676 | { |
677 | "defaultMessage": "!!!Restart & install update", | 677 | "defaultMessage": "!!!Restart & install update", |
678 | "end": { | 678 | "end": { |
679 | "column": 3, | 679 | "column": 3, |
680 | "line": 44 | 680 | "line": 45 |
681 | }, | 681 | }, |
682 | "file": "src/components/layout/AppLayout.js", | 682 | "file": "src/components/layout/AppLayout.js", |
683 | "id": "infobar.buttonInstallUpdate", | 683 | "id": "infobar.buttonInstallUpdate", |
684 | "start": { | 684 | "start": { |
685 | "column": 23, | 685 | "column": 23, |
686 | "line": 41 | 686 | "line": 42 |
687 | } | 687 | } |
688 | }, | 688 | }, |
689 | { | 689 | { |
690 | "defaultMessage": "!!!Could not load services and user information", | 690 | "defaultMessage": "!!!Could not load services and user information", |
691 | "end": { | 691 | "end": { |
692 | "column": 3, | 692 | "column": 3, |
693 | "line": 48 | 693 | "line": 49 |
694 | }, | 694 | }, |
695 | "file": "src/components/layout/AppLayout.js", | 695 | "file": "src/components/layout/AppLayout.js", |
696 | "id": "infobar.requiredRequestsFailed", | 696 | "id": "infobar.requiredRequestsFailed", |
697 | "start": { | 697 | "start": { |
698 | "column": 26, | 698 | "column": 26, |
699 | "line": 45 | 699 | "line": 46 |
700 | } | 700 | } |
701 | } | 701 | } |
702 | ], | 702 | ], |
@@ -1102,195 +1102,195 @@ | |||
1102 | "defaultMessage": "!!!Account", | 1102 | "defaultMessage": "!!!Account", |
1103 | "end": { | 1103 | "end": { |
1104 | "column": 3, | 1104 | "column": 3, |
1105 | "line": 18 | 1105 | "line": 17 |
1106 | }, | 1106 | }, |
1107 | "file": "src/components/settings/account/AccountDashboard.js", | 1107 | "file": "src/components/settings/account/AccountDashboard.js", |
1108 | "id": "settings.account.headline", | 1108 | "id": "settings.account.headline", |
1109 | "start": { | 1109 | "start": { |
1110 | "column": 12, | 1110 | "column": 12, |
1111 | "line": 15 | 1111 | "line": 14 |
1112 | } | 1112 | } |
1113 | }, | 1113 | }, |
1114 | { | 1114 | { |
1115 | "defaultMessage": "!!!Your Subscription", | 1115 | "defaultMessage": "!!!Your Subscription", |
1116 | "end": { | 1116 | "end": { |
1117 | "column": 3, | 1117 | "column": 3, |
1118 | "line": 22 | 1118 | "line": 21 |
1119 | }, | 1119 | }, |
1120 | "file": "src/components/settings/account/AccountDashboard.js", | 1120 | "file": "src/components/settings/account/AccountDashboard.js", |
1121 | "id": "settings.account.headlineSubscription", | 1121 | "id": "settings.account.headlineSubscription", |
1122 | "start": { | 1122 | "start": { |
1123 | "column": 24, | 1123 | "column": 24, |
1124 | "line": 19 | 1124 | "line": 18 |
1125 | } | 1125 | } |
1126 | }, | 1126 | }, |
1127 | { | 1127 | { |
1128 | "defaultMessage": "!!!Upgrade your Account", | 1128 | "defaultMessage": "!!!Upgrade your Account", |
1129 | "end": { | 1129 | "end": { |
1130 | "column": 3, | 1130 | "column": 3, |
1131 | "line": 26 | 1131 | "line": 25 |
1132 | }, | 1132 | }, |
1133 | "file": "src/components/settings/account/AccountDashboard.js", | 1133 | "file": "src/components/settings/account/AccountDashboard.js", |
1134 | "id": "settings.account.headlineUpgrade", | 1134 | "id": "settings.account.headlineUpgrade", |
1135 | "start": { | 1135 | "start": { |
1136 | "column": 19, | 1136 | "column": 19, |
1137 | "line": 23 | 1137 | "line": 22 |
1138 | } | ||
1139 | }, | ||
1140 | { | ||
1141 | "defaultMessage": "!!Invoices", | ||
1142 | "end": { | ||
1143 | "column": 3, | ||
1144 | "line": 30 | ||
1145 | }, | ||
1146 | "file": "src/components/settings/account/AccountDashboard.js", | ||
1147 | "id": "settings.account.headlineInvoices", | ||
1148 | "start": { | ||
1149 | "column": 20, | ||
1150 | "line": 27 | ||
1151 | } | 1138 | } |
1152 | }, | 1139 | }, |
1153 | { | 1140 | { |
1154 | "defaultMessage": "!!Danger Zone", | 1141 | "defaultMessage": "!!Danger Zone", |
1155 | "end": { | 1142 | "end": { |
1156 | "column": 3, | 1143 | "column": 3, |
1157 | "line": 34 | 1144 | "line": 29 |
1158 | }, | 1145 | }, |
1159 | "file": "src/components/settings/account/AccountDashboard.js", | 1146 | "file": "src/components/settings/account/AccountDashboard.js", |
1160 | "id": "settings.account.headlineDangerZone", | 1147 | "id": "settings.account.headlineDangerZone", |
1161 | "start": { | 1148 | "start": { |
1162 | "column": 22, | 1149 | "column": 22, |
1163 | "line": 31 | 1150 | "line": 26 |
1164 | } | 1151 | } |
1165 | }, | 1152 | }, |
1166 | { | 1153 | { |
1167 | "defaultMessage": "!!!Manage your subscription", | 1154 | "defaultMessage": "!!!Manage your subscription", |
1168 | "end": { | 1155 | "end": { |
1169 | "column": 3, | 1156 | "column": 3, |
1170 | "line": 38 | 1157 | "line": 33 |
1171 | }, | 1158 | }, |
1172 | "file": "src/components/settings/account/AccountDashboard.js", | 1159 | "file": "src/components/settings/account/AccountDashboard.js", |
1173 | "id": "settings.account.manageSubscription.label", | 1160 | "id": "settings.account.manageSubscription.label", |
1174 | "start": { | 1161 | "start": { |
1175 | "column": 33, | 1162 | "column": 33, |
1176 | "line": 35 | 1163 | "line": 30 |
1177 | } | 1164 | } |
1178 | }, | 1165 | }, |
1179 | { | 1166 | { |
1180 | "defaultMessage": "!!!Basic Account", | 1167 | "defaultMessage": "!!!Basic Account", |
1181 | "end": { | 1168 | "end": { |
1182 | "column": 3, | 1169 | "column": 3, |
1183 | "line": 42 | 1170 | "line": 37 |
1184 | }, | 1171 | }, |
1185 | "file": "src/components/settings/account/AccountDashboard.js", | 1172 | "file": "src/components/settings/account/AccountDashboard.js", |
1186 | "id": "settings.account.accountType.basic", | 1173 | "id": "settings.account.accountType.basic", |
1187 | "start": { | 1174 | "start": { |
1188 | "column": 20, | 1175 | "column": 20, |
1189 | "line": 39 | 1176 | "line": 34 |
1190 | } | 1177 | } |
1191 | }, | 1178 | }, |
1192 | { | 1179 | { |
1193 | "defaultMessage": "!!!Premium Supporter Account", | 1180 | "defaultMessage": "!!!Premium Supporter Account", |
1194 | "end": { | 1181 | "end": { |
1195 | "column": 3, | 1182 | "column": 3, |
1196 | "line": 46 | 1183 | "line": 41 |
1197 | }, | 1184 | }, |
1198 | "file": "src/components/settings/account/AccountDashboard.js", | 1185 | "file": "src/components/settings/account/AccountDashboard.js", |
1199 | "id": "settings.account.accountType.premium", | 1186 | "id": "settings.account.accountType.premium", |
1200 | "start": { | 1187 | "start": { |
1201 | "column": 22, | 1188 | "column": 22, |
1202 | "line": 43 | 1189 | "line": 38 |
1203 | } | 1190 | } |
1204 | }, | 1191 | }, |
1205 | { | 1192 | { |
1206 | "defaultMessage": "!!!Edit Account", | 1193 | "defaultMessage": "!!!Edit Account", |
1207 | "end": { | 1194 | "end": { |
1208 | "column": 3, | 1195 | "column": 3, |
1209 | "line": 50 | 1196 | "line": 45 |
1210 | }, | 1197 | }, |
1211 | "file": "src/components/settings/account/AccountDashboard.js", | 1198 | "file": "src/components/settings/account/AccountDashboard.js", |
1212 | "id": "settings.account.account.editButton", | 1199 | "id": "settings.account.account.editButton", |
1213 | "start": { | 1200 | "start": { |
1214 | "column": 21, | 1201 | "column": 21, |
1215 | "line": 47 | 1202 | "line": 42 |
1203 | } | ||
1204 | }, | ||
1205 | { | ||
1206 | "defaultMessage": "!!Invoices", | ||
1207 | "end": { | ||
1208 | "column": 3, | ||
1209 | "line": 49 | ||
1210 | }, | ||
1211 | "file": "src/components/settings/account/AccountDashboard.js", | ||
1212 | "id": "settings.account.headlineInvoices", | ||
1213 | "start": { | ||
1214 | "column": 18, | ||
1215 | "line": 46 | ||
1216 | } | 1216 | } |
1217 | }, | 1217 | }, |
1218 | { | 1218 | { |
1219 | "defaultMessage": "!!!Download", | 1219 | "defaultMessage": "!!!Download", |
1220 | "end": { | 1220 | "end": { |
1221 | "column": 3, | 1221 | "column": 3, |
1222 | "line": 54 | 1222 | "line": 53 |
1223 | }, | 1223 | }, |
1224 | "file": "src/components/settings/account/AccountDashboard.js", | 1224 | "file": "src/components/settings/account/AccountDashboard.js", |
1225 | "id": "settings.account.invoiceDownload", | 1225 | "id": "settings.account.invoiceDownload", |
1226 | "start": { | 1226 | "start": { |
1227 | "column": 19, | 1227 | "column": 19, |
1228 | "line": 51 | 1228 | "line": 50 |
1229 | } | 1229 | } |
1230 | }, | 1230 | }, |
1231 | { | 1231 | { |
1232 | "defaultMessage": "!!!Could not load user information", | 1232 | "defaultMessage": "!!!Could not load user information", |
1233 | "end": { | 1233 | "end": { |
1234 | "column": 3, | 1234 | "column": 3, |
1235 | "line": 58 | 1235 | "line": 57 |
1236 | }, | 1236 | }, |
1237 | "file": "src/components/settings/account/AccountDashboard.js", | 1237 | "file": "src/components/settings/account/AccountDashboard.js", |
1238 | "id": "settings.account.userInfoRequestFailed", | 1238 | "id": "settings.account.userInfoRequestFailed", |
1239 | "start": { | 1239 | "start": { |
1240 | "column": 25, | 1240 | "column": 25, |
1241 | "line": 55 | 1241 | "line": 54 |
1242 | } | 1242 | } |
1243 | }, | 1243 | }, |
1244 | { | 1244 | { |
1245 | "defaultMessage": "!!!Try again", | 1245 | "defaultMessage": "!!!Try again", |
1246 | "end": { | 1246 | "end": { |
1247 | "column": 3, | 1247 | "column": 3, |
1248 | "line": 62 | 1248 | "line": 61 |
1249 | }, | 1249 | }, |
1250 | "file": "src/components/settings/account/AccountDashboard.js", | 1250 | "file": "src/components/settings/account/AccountDashboard.js", |
1251 | "id": "settings.account.tryReloadUserInfoRequest", | 1251 | "id": "settings.account.tryReloadUserInfoRequest", |
1252 | "start": { | 1252 | "start": { |
1253 | "column": 28, | 1253 | "column": 28, |
1254 | "line": 59 | 1254 | "line": 58 |
1255 | } | 1255 | } |
1256 | }, | 1256 | }, |
1257 | { | 1257 | { |
1258 | "defaultMessage": "!!!Delete account", | 1258 | "defaultMessage": "!!!Delete account", |
1259 | "end": { | 1259 | "end": { |
1260 | "column": 3, | 1260 | "column": 3, |
1261 | "line": 66 | 1261 | "line": 65 |
1262 | }, | 1262 | }, |
1263 | "file": "src/components/settings/account/AccountDashboard.js", | 1263 | "file": "src/components/settings/account/AccountDashboard.js", |
1264 | "id": "settings.account.deleteAccount", | 1264 | "id": "settings.account.deleteAccount", |
1265 | "start": { | 1265 | "start": { |
1266 | "column": 17, | 1266 | "column": 17, |
1267 | "line": 63 | 1267 | "line": 62 |
1268 | } | 1268 | } |
1269 | }, | 1269 | }, |
1270 | { | 1270 | { |
1271 | "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", | 1271 | "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", |
1272 | "end": { | 1272 | "end": { |
1273 | "column": 3, | 1273 | "column": 3, |
1274 | "line": 70 | 1274 | "line": 69 |
1275 | }, | 1275 | }, |
1276 | "file": "src/components/settings/account/AccountDashboard.js", | 1276 | "file": "src/components/settings/account/AccountDashboard.js", |
1277 | "id": "settings.account.deleteInfo", | 1277 | "id": "settings.account.deleteInfo", |
1278 | "start": { | 1278 | "start": { |
1279 | "column": 14, | 1279 | "column": 14, |
1280 | "line": 67 | 1280 | "line": 66 |
1281 | } | 1281 | } |
1282 | }, | 1282 | }, |
1283 | { | 1283 | { |
1284 | "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | 1284 | "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", |
1285 | "end": { | 1285 | "end": { |
1286 | "column": 3, | 1286 | "column": 3, |
1287 | "line": 74 | 1287 | "line": 73 |
1288 | }, | 1288 | }, |
1289 | "file": "src/components/settings/account/AccountDashboard.js", | 1289 | "file": "src/components/settings/account/AccountDashboard.js", |
1290 | "id": "settings.account.deleteEmailSent", | 1290 | "id": "settings.account.deleteEmailSent", |
1291 | "start": { | 1291 | "start": { |
1292 | "column": 19, | 1292 | "column": 19, |
1293 | "line": 71 | 1293 | "line": 70 |
1294 | } | 1294 | } |
1295 | } | 1295 | } |
1296 | ], | 1296 | ], |
@@ -1302,91 +1302,104 @@ | |||
1302 | "defaultMessage": "!!!Available services", | 1302 | "defaultMessage": "!!!Available services", |
1303 | "end": { | 1303 | "end": { |
1304 | "column": 3, | 1304 | "column": 3, |
1305 | "line": 15 | 1305 | "line": 16 |
1306 | }, | 1306 | }, |
1307 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1307 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1308 | "id": "settings.navigation.availableServices", | 1308 | "id": "settings.navigation.availableServices", |
1309 | "start": { | 1309 | "start": { |
1310 | "column": 21, | 1310 | "column": 21, |
1311 | "line": 12 | 1311 | "line": 13 |
1312 | } | 1312 | } |
1313 | }, | 1313 | }, |
1314 | { | 1314 | { |
1315 | "defaultMessage": "!!!Your services", | 1315 | "defaultMessage": "!!!Your services", |
1316 | "end": { | 1316 | "end": { |
1317 | "column": 3, | 1317 | "column": 3, |
1318 | "line": 19 | 1318 | "line": 20 |
1319 | }, | 1319 | }, |
1320 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1320 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1321 | "id": "settings.navigation.yourServices", | 1321 | "id": "settings.navigation.yourServices", |
1322 | "start": { | 1322 | "start": { |
1323 | "column": 16, | 1323 | "column": 16, |
1324 | "line": 16 | 1324 | "line": 17 |
1325 | } | 1325 | } |
1326 | }, | 1326 | }, |
1327 | { | 1327 | { |
1328 | "defaultMessage": "!!!Your workspaces", | 1328 | "defaultMessage": "!!!Your workspaces", |
1329 | "end": { | 1329 | "end": { |
1330 | "column": 3, | 1330 | "column": 3, |
1331 | "line": 23 | 1331 | "line": 24 |
1332 | }, | 1332 | }, |
1333 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1333 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1334 | "id": "settings.navigation.yourWorkspaces", | 1334 | "id": "settings.navigation.yourWorkspaces", |
1335 | "start": { | 1335 | "start": { |
1336 | "column": 18, | 1336 | "column": 18, |
1337 | "line": 20 | 1337 | "line": 21 |
1338 | } | 1338 | } |
1339 | }, | 1339 | }, |
1340 | { | 1340 | { |
1341 | "defaultMessage": "!!!Account", | 1341 | "defaultMessage": "!!!Account", |
1342 | "end": { | 1342 | "end": { |
1343 | "column": 3, | 1343 | "column": 3, |
1344 | "line": 27 | 1344 | "line": 28 |
1345 | }, | 1345 | }, |
1346 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1346 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1347 | "id": "settings.navigation.account", | 1347 | "id": "settings.navigation.account", |
1348 | "start": { | 1348 | "start": { |
1349 | "column": 11, | 1349 | "column": 11, |
1350 | "line": 24 | 1350 | "line": 25 |
1351 | } | ||
1352 | }, | ||
1353 | { | ||
1354 | "defaultMessage": "!!!Manage Team", | ||
1355 | "end": { | ||
1356 | "column": 3, | ||
1357 | "line": 32 | ||
1358 | }, | ||
1359 | "file": "src/components/settings/navigation/SettingsNavigation.js", | ||
1360 | "id": "settings.navigation.team", | ||
1361 | "start": { | ||
1362 | "column": 8, | ||
1363 | "line": 29 | ||
1351 | } | 1364 | } |
1352 | }, | 1365 | }, |
1353 | { | 1366 | { |
1354 | "defaultMessage": "!!!Settings", | 1367 | "defaultMessage": "!!!Settings", |
1355 | "end": { | 1368 | "end": { |
1356 | "column": 3, | 1369 | "column": 3, |
1357 | "line": 31 | 1370 | "line": 36 |
1358 | }, | 1371 | }, |
1359 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1372 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1360 | "id": "settings.navigation.settings", | 1373 | "id": "settings.navigation.settings", |
1361 | "start": { | 1374 | "start": { |
1362 | "column": 12, | 1375 | "column": 12, |
1363 | "line": 28 | 1376 | "line": 33 |
1364 | } | 1377 | } |
1365 | }, | 1378 | }, |
1366 | { | 1379 | { |
1367 | "defaultMessage": "!!!Invite Friends", | 1380 | "defaultMessage": "!!!Invite Friends", |
1368 | "end": { | 1381 | "end": { |
1369 | "column": 3, | 1382 | "column": 3, |
1370 | "line": 35 | 1383 | "line": 40 |
1371 | }, | 1384 | }, |
1372 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1385 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1373 | "id": "settings.navigation.inviteFriends", | 1386 | "id": "settings.navigation.inviteFriends", |
1374 | "start": { | 1387 | "start": { |
1375 | "column": 17, | 1388 | "column": 17, |
1376 | "line": 32 | 1389 | "line": 37 |
1377 | } | 1390 | } |
1378 | }, | 1391 | }, |
1379 | { | 1392 | { |
1380 | "defaultMessage": "!!!Logout", | 1393 | "defaultMessage": "!!!Logout", |
1381 | "end": { | 1394 | "end": { |
1382 | "column": 3, | 1395 | "column": 3, |
1383 | "line": 39 | 1396 | "line": 44 |
1384 | }, | 1397 | }, |
1385 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 1398 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
1386 | "id": "settings.navigation.logout", | 1399 | "id": "settings.navigation.logout", |
1387 | "start": { | 1400 | "start": { |
1388 | "column": 10, | 1401 | "column": 10, |
1389 | "line": 36 | 1402 | "line": 41 |
1390 | } | 1403 | } |
1391 | } | 1404 | } |
1392 | ], | 1405 | ], |
@@ -2237,6 +2250,19 @@ | |||
2237 | "column": 29, | 2250 | "column": 29, |
2238 | "line": 80 | 2251 | "line": 80 |
2239 | } | 2252 | } |
2253 | }, | ||
2254 | { | ||
2255 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", | ||
2256 | "end": { | ||
2257 | "column": 3, | ||
2258 | "line": 87 | ||
2259 | }, | ||
2260 | "file": "src/components/settings/settings/EditSettingsForm.js", | ||
2261 | "id": "settings.app.languageDisclaimer", | ||
2262 | "start": { | ||
2263 | "column": 22, | ||
2264 | "line": 84 | ||
2265 | } | ||
2240 | } | 2266 | } |
2241 | ], | 2267 | ], |
2242 | "path": "src/components/settings/settings/EditSettingsForm.json" | 2268 | "path": "src/components/settings/settings/EditSettingsForm.json" |
@@ -2244,6 +2270,89 @@ | |||
2244 | { | 2270 | { |
2245 | "descriptors": [ | 2271 | "descriptors": [ |
2246 | { | 2272 | { |
2273 | "defaultMessage": "!!!Team", | ||
2274 | "end": { | ||
2275 | "column": 3, | ||
2276 | "line": 17 | ||
2277 | }, | ||
2278 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2279 | "id": "settings.team.headline", | ||
2280 | "start": { | ||
2281 | "column": 12, | ||
2282 | "line": 14 | ||
2283 | } | ||
2284 | }, | ||
2285 | { | ||
2286 | "defaultMessage": "!!!Franz for Teams", | ||
2287 | "end": { | ||
2288 | "column": 3, | ||
2289 | "line": 21 | ||
2290 | }, | ||
2291 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2292 | "id": "settings.team.contentHeadline", | ||
2293 | "start": { | ||
2294 | "column": 19, | ||
2295 | "line": 18 | ||
2296 | } | ||
2297 | }, | ||
2298 | { | ||
2299 | "defaultMessage": "!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
2300 | "end": { | ||
2301 | "column": 3, | ||
2302 | "line": 25 | ||
2303 | }, | ||
2304 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2305 | "id": "settings.team.intro", | ||
2306 | "start": { | ||
2307 | "column": 9, | ||
2308 | "line": 22 | ||
2309 | } | ||
2310 | }, | ||
2311 | { | ||
2312 | "defaultMessage": "!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
2313 | "end": { | ||
2314 | "column": 3, | ||
2315 | "line": 29 | ||
2316 | }, | ||
2317 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2318 | "id": "settings.team.copy", | ||
2319 | "start": { | ||
2320 | "column": 8, | ||
2321 | "line": 26 | ||
2322 | } | ||
2323 | }, | ||
2324 | { | ||
2325 | "defaultMessage": "!!!Manage your Team on meetfranz.com", | ||
2326 | "end": { | ||
2327 | "column": 3, | ||
2328 | "line": 33 | ||
2329 | }, | ||
2330 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2331 | "id": "settings.team.manageAction", | ||
2332 | "start": { | ||
2333 | "column": 16, | ||
2334 | "line": 30 | ||
2335 | } | ||
2336 | }, | ||
2337 | { | ||
2338 | "defaultMessage": "!!!Upgrade your Account", | ||
2339 | "end": { | ||
2340 | "column": 3, | ||
2341 | "line": 37 | ||
2342 | }, | ||
2343 | "file": "src/components/settings/team/TeamDashboard.js", | ||
2344 | "id": "settings.team.upgradeAction", | ||
2345 | "start": { | ||
2346 | "column": 17, | ||
2347 | "line": 34 | ||
2348 | } | ||
2349 | } | ||
2350 | ], | ||
2351 | "path": "src/components/settings/team/TeamDashboard.json" | ||
2352 | }, | ||
2353 | { | ||
2354 | "descriptors": [ | ||
2355 | { | ||
2247 | "defaultMessage": "!!!Account", | 2356 | "defaultMessage": "!!!Account", |
2248 | "end": { | 2357 | "end": { |
2249 | "column": 3, | 2358 | "column": 3, |
@@ -2457,42 +2566,55 @@ | |||
2457 | } | 2566 | } |
2458 | }, | 2567 | }, |
2459 | { | 2568 | { |
2460 | "defaultMessage": "!!!No ads, ever!", | 2569 | "defaultMessage": "!!!Organize your services in workspaces", |
2461 | "end": { | 2570 | "end": { |
2462 | "column": 3, | 2571 | "column": 3, |
2463 | "line": 57 | 2572 | "line": 57 |
2464 | }, | 2573 | }, |
2465 | "file": "src/components/subscription/SubscriptionForm.js", | 2574 | "file": "src/components/subscription/SubscriptionForm.js", |
2575 | "id": "subscription.features.workspaces", | ||
2576 | "start": { | ||
2577 | "column": 14, | ||
2578 | "line": 54 | ||
2579 | } | ||
2580 | }, | ||
2581 | { | ||
2582 | "defaultMessage": "!!!No ads, ever!", | ||
2583 | "end": { | ||
2584 | "column": 3, | ||
2585 | "line": 61 | ||
2586 | }, | ||
2587 | "file": "src/components/subscription/SubscriptionForm.js", | ||
2466 | "id": "subscription.features.ads", | 2588 | "id": "subscription.features.ads", |
2467 | "start": { | 2589 | "start": { |
2468 | "column": 7, | 2590 | "column": 7, |
2469 | "line": 54 | 2591 | "line": 58 |
2470 | } | 2592 | } |
2471 | }, | 2593 | }, |
2472 | { | 2594 | { |
2473 | "defaultMessage": "!!!coming soon", | 2595 | "defaultMessage": "!!!coming soon", |
2474 | "end": { | 2596 | "end": { |
2475 | "column": 3, | 2597 | "column": 3, |
2476 | "line": 61 | 2598 | "line": 65 |
2477 | }, | 2599 | }, |
2478 | "file": "src/components/subscription/SubscriptionForm.js", | 2600 | "file": "src/components/subscription/SubscriptionForm.js", |
2479 | "id": "subscription.features.comingSoon", | 2601 | "id": "subscription.features.comingSoon", |
2480 | "start": { | 2602 | "start": { |
2481 | "column": 14, | 2603 | "column": 14, |
2482 | "line": 58 | 2604 | "line": 62 |
2483 | } | 2605 | } |
2484 | }, | 2606 | }, |
2485 | { | 2607 | { |
2486 | "defaultMessage": "!!!EU residents: local sales tax may apply", | 2608 | "defaultMessage": "!!!EU residents: local sales tax may apply", |
2487 | "end": { | 2609 | "end": { |
2488 | "column": 3, | 2610 | "column": 3, |
2489 | "line": 65 | 2611 | "line": 69 |
2490 | }, | 2612 | }, |
2491 | "file": "src/components/subscription/SubscriptionForm.js", | 2613 | "file": "src/components/subscription/SubscriptionForm.js", |
2492 | "id": "subscription.euTaxInfo", | 2614 | "id": "subscription.euTaxInfo", |
2493 | "start": { | 2615 | "start": { |
2494 | "column": 13, | 2616 | "column": 13, |
2495 | "line": 62 | 2617 | "line": 66 |
2496 | } | 2618 | } |
2497 | } | 2619 | } |
2498 | ], | 2620 | ], |
@@ -3082,6 +3204,24 @@ | |||
3082 | { | 3204 | { |
3083 | "descriptors": [ | 3205 | "descriptors": [ |
3084 | { | 3206 | { |
3207 | "defaultMessage": "!!!Changes in Franz {version}", | ||
3208 | "end": { | ||
3209 | "column": 3, | ||
3210 | "line": 23 | ||
3211 | }, | ||
3212 | "file": "src/features/announcements/components/AnnouncementScreen.js", | ||
3213 | "id": "feature.announcements.changelog.headline", | ||
3214 | "start": { | ||
3215 | "column": 12, | ||
3216 | "line": 20 | ||
3217 | } | ||
3218 | } | ||
3219 | ], | ||
3220 | "path": "src/features/announcements/components/AnnouncementScreen.json" | ||
3221 | }, | ||
3222 | { | ||
3223 | "descriptors": [ | ||
3224 | { | ||
3085 | "defaultMessage": "!!!Please purchase license to skip waiting", | 3225 | "defaultMessage": "!!!Please purchase license to skip waiting", |
3086 | "end": { | 3226 | "end": { |
3087 | "column": 3, | 3227 | "column": 3, |
@@ -3316,6 +3456,32 @@ | |||
3316 | "column": 31, | 3456 | "column": 31, |
3317 | "line": 35 | 3457 | "line": 35 |
3318 | } | 3458 | } |
3459 | }, | ||
3460 | { | ||
3461 | "defaultMessage": "!!!You haven't added any services yet.", | ||
3462 | "end": { | ||
3463 | "column": 3, | ||
3464 | "line": 42 | ||
3465 | }, | ||
3466 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3467 | "id": "settings.services.noServicesAdded", | ||
3468 | "start": { | ||
3469 | "column": 19, | ||
3470 | "line": 39 | ||
3471 | } | ||
3472 | }, | ||
3473 | { | ||
3474 | "defaultMessage": "!!!Discover services", | ||
3475 | "end": { | ||
3476 | "column": 3, | ||
3477 | "line": 46 | ||
3478 | }, | ||
3479 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
3480 | "id": "settings.services.discoverServices", | ||
3481 | "start": { | ||
3482 | "column": 20, | ||
3483 | "line": 43 | ||
3484 | } | ||
3319 | } | 3485 | } |
3320 | ], | 3486 | ], |
3321 | "path": "src/features/workspaces/components/EditWorkspaceForm.json" | 3487 | "path": "src/features/workspaces/components/EditWorkspaceForm.json" |
@@ -3746,676 +3912,689 @@ | |||
3746 | "defaultMessage": "!!!Edit", | 3912 | "defaultMessage": "!!!Edit", |
3747 | "end": { | 3913 | "end": { |
3748 | "column": 3, | 3914 | "column": 3, |
3749 | "line": 16 | 3915 | "line": 18 |
3750 | }, | 3916 | }, |
3751 | "file": "src/lib/Menu.js", | 3917 | "file": "src/lib/Menu.js", |
3752 | "id": "menu.edit", | 3918 | "id": "menu.edit", |
3753 | "start": { | 3919 | "start": { |
3754 | "column": 8, | 3920 | "column": 8, |
3755 | "line": 13 | 3921 | "line": 15 |
3756 | } | 3922 | } |
3757 | }, | 3923 | }, |
3758 | { | 3924 | { |
3759 | "defaultMessage": "!!!Undo", | 3925 | "defaultMessage": "!!!Undo", |
3760 | "end": { | 3926 | "end": { |
3761 | "column": 3, | 3927 | "column": 3, |
3762 | "line": 20 | 3928 | "line": 22 |
3763 | }, | 3929 | }, |
3764 | "file": "src/lib/Menu.js", | 3930 | "file": "src/lib/Menu.js", |
3765 | "id": "menu.edit.undo", | 3931 | "id": "menu.edit.undo", |
3766 | "start": { | 3932 | "start": { |
3767 | "column": 8, | 3933 | "column": 8, |
3768 | "line": 17 | 3934 | "line": 19 |
3769 | } | 3935 | } |
3770 | }, | 3936 | }, |
3771 | { | 3937 | { |
3772 | "defaultMessage": "!!!Redo", | 3938 | "defaultMessage": "!!!Redo", |
3773 | "end": { | 3939 | "end": { |
3774 | "column": 3, | 3940 | "column": 3, |
3775 | "line": 24 | 3941 | "line": 26 |
3776 | }, | 3942 | }, |
3777 | "file": "src/lib/Menu.js", | 3943 | "file": "src/lib/Menu.js", |
3778 | "id": "menu.edit.redo", | 3944 | "id": "menu.edit.redo", |
3779 | "start": { | 3945 | "start": { |
3780 | "column": 8, | 3946 | "column": 8, |
3781 | "line": 21 | 3947 | "line": 23 |
3782 | } | 3948 | } |
3783 | }, | 3949 | }, |
3784 | { | 3950 | { |
3785 | "defaultMessage": "!!!Cut", | 3951 | "defaultMessage": "!!!Cut", |
3786 | "end": { | 3952 | "end": { |
3787 | "column": 3, | 3953 | "column": 3, |
3788 | "line": 28 | 3954 | "line": 30 |
3789 | }, | 3955 | }, |
3790 | "file": "src/lib/Menu.js", | 3956 | "file": "src/lib/Menu.js", |
3791 | "id": "menu.edit.cut", | 3957 | "id": "menu.edit.cut", |
3792 | "start": { | 3958 | "start": { |
3793 | "column": 7, | 3959 | "column": 7, |
3794 | "line": 25 | 3960 | "line": 27 |
3795 | } | 3961 | } |
3796 | }, | 3962 | }, |
3797 | { | 3963 | { |
3798 | "defaultMessage": "!!!Copy", | 3964 | "defaultMessage": "!!!Copy", |
3799 | "end": { | 3965 | "end": { |
3800 | "column": 3, | 3966 | "column": 3, |
3801 | "line": 32 | 3967 | "line": 34 |
3802 | }, | 3968 | }, |
3803 | "file": "src/lib/Menu.js", | 3969 | "file": "src/lib/Menu.js", |
3804 | "id": "menu.edit.copy", | 3970 | "id": "menu.edit.copy", |
3805 | "start": { | 3971 | "start": { |
3806 | "column": 8, | 3972 | "column": 8, |
3807 | "line": 29 | 3973 | "line": 31 |
3808 | } | 3974 | } |
3809 | }, | 3975 | }, |
3810 | { | 3976 | { |
3811 | "defaultMessage": "!!!Paste", | 3977 | "defaultMessage": "!!!Paste", |
3812 | "end": { | 3978 | "end": { |
3813 | "column": 3, | 3979 | "column": 3, |
3814 | "line": 36 | 3980 | "line": 38 |
3815 | }, | 3981 | }, |
3816 | "file": "src/lib/Menu.js", | 3982 | "file": "src/lib/Menu.js", |
3817 | "id": "menu.edit.paste", | 3983 | "id": "menu.edit.paste", |
3818 | "start": { | 3984 | "start": { |
3819 | "column": 9, | 3985 | "column": 9, |
3820 | "line": 33 | 3986 | "line": 35 |
3821 | } | 3987 | } |
3822 | }, | 3988 | }, |
3823 | { | 3989 | { |
3824 | "defaultMessage": "!!!Paste And Match Style", | 3990 | "defaultMessage": "!!!Paste And Match Style", |
3825 | "end": { | 3991 | "end": { |
3826 | "column": 3, | 3992 | "column": 3, |
3827 | "line": 40 | 3993 | "line": 42 |
3828 | }, | 3994 | }, |
3829 | "file": "src/lib/Menu.js", | 3995 | "file": "src/lib/Menu.js", |
3830 | "id": "menu.edit.pasteAndMatchStyle", | 3996 | "id": "menu.edit.pasteAndMatchStyle", |
3831 | "start": { | 3997 | "start": { |
3832 | "column": 22, | 3998 | "column": 22, |
3833 | "line": 37 | 3999 | "line": 39 |
3834 | } | 4000 | } |
3835 | }, | 4001 | }, |
3836 | { | 4002 | { |
3837 | "defaultMessage": "!!!Delete", | 4003 | "defaultMessage": "!!!Delete", |
3838 | "end": { | 4004 | "end": { |
3839 | "column": 3, | 4005 | "column": 3, |
3840 | "line": 44 | 4006 | "line": 46 |
3841 | }, | 4007 | }, |
3842 | "file": "src/lib/Menu.js", | 4008 | "file": "src/lib/Menu.js", |
3843 | "id": "menu.edit.delete", | 4009 | "id": "menu.edit.delete", |
3844 | "start": { | 4010 | "start": { |
3845 | "column": 10, | 4011 | "column": 10, |
3846 | "line": 41 | 4012 | "line": 43 |
3847 | } | 4013 | } |
3848 | }, | 4014 | }, |
3849 | { | 4015 | { |
3850 | "defaultMessage": "!!!Select All", | 4016 | "defaultMessage": "!!!Select All", |
3851 | "end": { | 4017 | "end": { |
3852 | "column": 3, | 4018 | "column": 3, |
3853 | "line": 48 | 4019 | "line": 50 |
3854 | }, | 4020 | }, |
3855 | "file": "src/lib/Menu.js", | 4021 | "file": "src/lib/Menu.js", |
3856 | "id": "menu.edit.selectAll", | 4022 | "id": "menu.edit.selectAll", |
3857 | "start": { | 4023 | "start": { |
3858 | "column": 13, | 4024 | "column": 13, |
3859 | "line": 45 | 4025 | "line": 47 |
3860 | } | 4026 | } |
3861 | }, | 4027 | }, |
3862 | { | 4028 | { |
3863 | "defaultMessage": "!!!Speech", | 4029 | "defaultMessage": "!!!Speech", |
3864 | "end": { | 4030 | "end": { |
3865 | "column": 3, | 4031 | "column": 3, |
3866 | "line": 52 | 4032 | "line": 54 |
3867 | }, | 4033 | }, |
3868 | "file": "src/lib/Menu.js", | 4034 | "file": "src/lib/Menu.js", |
3869 | "id": "menu.edit.speech", | 4035 | "id": "menu.edit.speech", |
3870 | "start": { | 4036 | "start": { |
3871 | "column": 10, | 4037 | "column": 10, |
3872 | "line": 49 | 4038 | "line": 51 |
3873 | } | 4039 | } |
3874 | }, | 4040 | }, |
3875 | { | 4041 | { |
3876 | "defaultMessage": "!!!Start Speaking", | 4042 | "defaultMessage": "!!!Start Speaking", |
3877 | "end": { | 4043 | "end": { |
3878 | "column": 3, | 4044 | "column": 3, |
3879 | "line": 56 | 4045 | "line": 58 |
3880 | }, | 4046 | }, |
3881 | "file": "src/lib/Menu.js", | 4047 | "file": "src/lib/Menu.js", |
3882 | "id": "menu.edit.startSpeaking", | 4048 | "id": "menu.edit.startSpeaking", |
3883 | "start": { | 4049 | "start": { |
3884 | "column": 17, | 4050 | "column": 17, |
3885 | "line": 53 | 4051 | "line": 55 |
3886 | } | 4052 | } |
3887 | }, | 4053 | }, |
3888 | { | 4054 | { |
3889 | "defaultMessage": "!!!Stop Speaking", | 4055 | "defaultMessage": "!!!Stop Speaking", |
3890 | "end": { | 4056 | "end": { |
3891 | "column": 3, | 4057 | "column": 3, |
3892 | "line": 60 | 4058 | "line": 62 |
3893 | }, | 4059 | }, |
3894 | "file": "src/lib/Menu.js", | 4060 | "file": "src/lib/Menu.js", |
3895 | "id": "menu.edit.stopSpeaking", | 4061 | "id": "menu.edit.stopSpeaking", |
3896 | "start": { | 4062 | "start": { |
3897 | "column": 16, | 4063 | "column": 16, |
3898 | "line": 57 | 4064 | "line": 59 |
3899 | } | 4065 | } |
3900 | }, | 4066 | }, |
3901 | { | 4067 | { |
3902 | "defaultMessage": "!!!Start Dictation", | 4068 | "defaultMessage": "!!!Start Dictation", |
3903 | "end": { | 4069 | "end": { |
3904 | "column": 3, | 4070 | "column": 3, |
3905 | "line": 64 | 4071 | "line": 66 |
3906 | }, | 4072 | }, |
3907 | "file": "src/lib/Menu.js", | 4073 | "file": "src/lib/Menu.js", |
3908 | "id": "menu.edit.startDictation", | 4074 | "id": "menu.edit.startDictation", |
3909 | "start": { | 4075 | "start": { |
3910 | "column": 18, | 4076 | "column": 18, |
3911 | "line": 61 | 4077 | "line": 63 |
3912 | } | 4078 | } |
3913 | }, | 4079 | }, |
3914 | { | 4080 | { |
3915 | "defaultMessage": "!!!Emoji & Symbols", | 4081 | "defaultMessage": "!!!Emoji & Symbols", |
3916 | "end": { | 4082 | "end": { |
3917 | "column": 3, | 4083 | "column": 3, |
3918 | "line": 68 | 4084 | "line": 70 |
3919 | }, | 4085 | }, |
3920 | "file": "src/lib/Menu.js", | 4086 | "file": "src/lib/Menu.js", |
3921 | "id": "menu.edit.emojiSymbols", | 4087 | "id": "menu.edit.emojiSymbols", |
3922 | "start": { | 4088 | "start": { |
3923 | "column": 16, | 4089 | "column": 16, |
3924 | "line": 65 | 4090 | "line": 67 |
3925 | } | 4091 | } |
3926 | }, | 4092 | }, |
3927 | { | 4093 | { |
3928 | "defaultMessage": "!!!Actual Size", | 4094 | "defaultMessage": "!!!Actual Size", |
3929 | "end": { | 4095 | "end": { |
3930 | "column": 3, | 4096 | "column": 3, |
3931 | "line": 72 | 4097 | "line": 74 |
3932 | }, | 4098 | }, |
3933 | "file": "src/lib/Menu.js", | 4099 | "file": "src/lib/Menu.js", |
3934 | "id": "menu.view.resetZoom", | 4100 | "id": "menu.view.resetZoom", |
3935 | "start": { | 4101 | "start": { |
3936 | "column": 13, | 4102 | "column": 13, |
3937 | "line": 69 | 4103 | "line": 71 |
3938 | } | 4104 | } |
3939 | }, | 4105 | }, |
3940 | { | 4106 | { |
3941 | "defaultMessage": "!!!Zoom In", | 4107 | "defaultMessage": "!!!Zoom In", |
3942 | "end": { | 4108 | "end": { |
3943 | "column": 3, | 4109 | "column": 3, |
3944 | "line": 76 | 4110 | "line": 78 |
3945 | }, | 4111 | }, |
3946 | "file": "src/lib/Menu.js", | 4112 | "file": "src/lib/Menu.js", |
3947 | "id": "menu.view.zoomIn", | 4113 | "id": "menu.view.zoomIn", |
3948 | "start": { | 4114 | "start": { |
3949 | "column": 10, | 4115 | "column": 10, |
3950 | "line": 73 | 4116 | "line": 75 |
3951 | } | 4117 | } |
3952 | }, | 4118 | }, |
3953 | { | 4119 | { |
3954 | "defaultMessage": "!!!Zoom Out", | 4120 | "defaultMessage": "!!!Zoom Out", |
3955 | "end": { | 4121 | "end": { |
3956 | "column": 3, | 4122 | "column": 3, |
3957 | "line": 80 | 4123 | "line": 82 |
3958 | }, | 4124 | }, |
3959 | "file": "src/lib/Menu.js", | 4125 | "file": "src/lib/Menu.js", |
3960 | "id": "menu.view.zoomOut", | 4126 | "id": "menu.view.zoomOut", |
3961 | "start": { | 4127 | "start": { |
3962 | "column": 11, | 4128 | "column": 11, |
3963 | "line": 77 | 4129 | "line": 79 |
3964 | } | 4130 | } |
3965 | }, | 4131 | }, |
3966 | { | 4132 | { |
3967 | "defaultMessage": "!!!Enter Full Screen", | 4133 | "defaultMessage": "!!!Enter Full Screen", |
3968 | "end": { | 4134 | "end": { |
3969 | "column": 3, | 4135 | "column": 3, |
3970 | "line": 84 | 4136 | "line": 86 |
3971 | }, | 4137 | }, |
3972 | "file": "src/lib/Menu.js", | 4138 | "file": "src/lib/Menu.js", |
3973 | "id": "menu.view.enterFullScreen", | 4139 | "id": "menu.view.enterFullScreen", |
3974 | "start": { | 4140 | "start": { |
3975 | "column": 19, | 4141 | "column": 19, |
3976 | "line": 81 | 4142 | "line": 83 |
3977 | } | 4143 | } |
3978 | }, | 4144 | }, |
3979 | { | 4145 | { |
3980 | "defaultMessage": "!!!Exit Full Screen", | 4146 | "defaultMessage": "!!!Exit Full Screen", |
3981 | "end": { | 4147 | "end": { |
3982 | "column": 3, | 4148 | "column": 3, |
3983 | "line": 88 | 4149 | "line": 90 |
3984 | }, | 4150 | }, |
3985 | "file": "src/lib/Menu.js", | 4151 | "file": "src/lib/Menu.js", |
3986 | "id": "menu.view.exitFullScreen", | 4152 | "id": "menu.view.exitFullScreen", |
3987 | "start": { | 4153 | "start": { |
3988 | "column": 18, | 4154 | "column": 18, |
3989 | "line": 85 | 4155 | "line": 87 |
3990 | } | 4156 | } |
3991 | }, | 4157 | }, |
3992 | { | 4158 | { |
3993 | "defaultMessage": "!!!Toggle Full Screen", | 4159 | "defaultMessage": "!!!Toggle Full Screen", |
3994 | "end": { | 4160 | "end": { |
3995 | "column": 3, | 4161 | "column": 3, |
3996 | "line": 92 | 4162 | "line": 94 |
3997 | }, | 4163 | }, |
3998 | "file": "src/lib/Menu.js", | 4164 | "file": "src/lib/Menu.js", |
3999 | "id": "menu.view.toggleFullScreen", | 4165 | "id": "menu.view.toggleFullScreen", |
4000 | "start": { | 4166 | "start": { |
4001 | "column": 20, | 4167 | "column": 20, |
4002 | "line": 89 | 4168 | "line": 91 |
4003 | } | 4169 | } |
4004 | }, | 4170 | }, |
4005 | { | 4171 | { |
4006 | "defaultMessage": "!!!Toggle Developer Tools", | 4172 | "defaultMessage": "!!!Toggle Developer Tools", |
4007 | "end": { | 4173 | "end": { |
4008 | "column": 3, | 4174 | "column": 3, |
4009 | "line": 96 | 4175 | "line": 98 |
4010 | }, | 4176 | }, |
4011 | "file": "src/lib/Menu.js", | 4177 | "file": "src/lib/Menu.js", |
4012 | "id": "menu.view.toggleDevTools", | 4178 | "id": "menu.view.toggleDevTools", |
4013 | "start": { | 4179 | "start": { |
4014 | "column": 18, | 4180 | "column": 18, |
4015 | "line": 93 | 4181 | "line": 95 |
4016 | } | 4182 | } |
4017 | }, | 4183 | }, |
4018 | { | 4184 | { |
4019 | "defaultMessage": "!!!Toggle Service Developer Tools", | 4185 | "defaultMessage": "!!!Toggle Service Developer Tools", |
4020 | "end": { | 4186 | "end": { |
4021 | "column": 3, | 4187 | "column": 3, |
4022 | "line": 100 | 4188 | "line": 102 |
4023 | }, | 4189 | }, |
4024 | "file": "src/lib/Menu.js", | 4190 | "file": "src/lib/Menu.js", |
4025 | "id": "menu.view.toggleServiceDevTools", | 4191 | "id": "menu.view.toggleServiceDevTools", |
4026 | "start": { | 4192 | "start": { |
4027 | "column": 25, | 4193 | "column": 25, |
4028 | "line": 97 | 4194 | "line": 99 |
4029 | } | 4195 | } |
4030 | }, | 4196 | }, |
4031 | { | 4197 | { |
4032 | "defaultMessage": "!!!Reload Service", | 4198 | "defaultMessage": "!!!Reload Service", |
4033 | "end": { | 4199 | "end": { |
4034 | "column": 3, | 4200 | "column": 3, |
4035 | "line": 104 | 4201 | "line": 106 |
4036 | }, | 4202 | }, |
4037 | "file": "src/lib/Menu.js", | 4203 | "file": "src/lib/Menu.js", |
4038 | "id": "menu.view.reloadService", | 4204 | "id": "menu.view.reloadService", |
4039 | "start": { | 4205 | "start": { |
4040 | "column": 17, | 4206 | "column": 17, |
4041 | "line": 101 | 4207 | "line": 103 |
4042 | } | 4208 | } |
4043 | }, | 4209 | }, |
4044 | { | 4210 | { |
4045 | "defaultMessage": "!!!Reload Franz", | 4211 | "defaultMessage": "!!!Reload Franz", |
4046 | "end": { | 4212 | "end": { |
4047 | "column": 3, | 4213 | "column": 3, |
4048 | "line": 108 | 4214 | "line": 110 |
4049 | }, | 4215 | }, |
4050 | "file": "src/lib/Menu.js", | 4216 | "file": "src/lib/Menu.js", |
4051 | "id": "menu.view.reloadFranz", | 4217 | "id": "menu.view.reloadFranz", |
4052 | "start": { | 4218 | "start": { |
4053 | "column": 15, | 4219 | "column": 15, |
4054 | "line": 105 | 4220 | "line": 107 |
4055 | } | 4221 | } |
4056 | }, | 4222 | }, |
4057 | { | 4223 | { |
4058 | "defaultMessage": "!!!Minimize", | 4224 | "defaultMessage": "!!!Minimize", |
4059 | "end": { | 4225 | "end": { |
4060 | "column": 3, | 4226 | "column": 3, |
4061 | "line": 112 | 4227 | "line": 114 |
4062 | }, | 4228 | }, |
4063 | "file": "src/lib/Menu.js", | 4229 | "file": "src/lib/Menu.js", |
4064 | "id": "menu.window.minimize", | 4230 | "id": "menu.window.minimize", |
4065 | "start": { | 4231 | "start": { |
4066 | "column": 12, | 4232 | "column": 12, |
4067 | "line": 109 | 4233 | "line": 111 |
4068 | } | 4234 | } |
4069 | }, | 4235 | }, |
4070 | { | 4236 | { |
4071 | "defaultMessage": "!!!Close", | 4237 | "defaultMessage": "!!!Close", |
4072 | "end": { | 4238 | "end": { |
4073 | "column": 3, | 4239 | "column": 3, |
4074 | "line": 116 | 4240 | "line": 118 |
4075 | }, | 4241 | }, |
4076 | "file": "src/lib/Menu.js", | 4242 | "file": "src/lib/Menu.js", |
4077 | "id": "menu.window.close", | 4243 | "id": "menu.window.close", |
4078 | "start": { | 4244 | "start": { |
4079 | "column": 9, | 4245 | "column": 9, |
4080 | "line": 113 | 4246 | "line": 115 |
4081 | } | 4247 | } |
4082 | }, | 4248 | }, |
4083 | { | 4249 | { |
4084 | "defaultMessage": "!!!Learn More", | 4250 | "defaultMessage": "!!!Learn More", |
4085 | "end": { | 4251 | "end": { |
4086 | "column": 3, | 4252 | "column": 3, |
4087 | "line": 120 | 4253 | "line": 122 |
4088 | }, | 4254 | }, |
4089 | "file": "src/lib/Menu.js", | 4255 | "file": "src/lib/Menu.js", |
4090 | "id": "menu.help.learnMore", | 4256 | "id": "menu.help.learnMore", |
4091 | "start": { | 4257 | "start": { |
4092 | "column": 13, | 4258 | "column": 13, |
4093 | "line": 117 | 4259 | "line": 119 |
4094 | } | 4260 | } |
4095 | }, | 4261 | }, |
4096 | { | 4262 | { |
4097 | "defaultMessage": "!!!Changelog", | 4263 | "defaultMessage": "!!!Changelog", |
4098 | "end": { | 4264 | "end": { |
4099 | "column": 3, | 4265 | "column": 3, |
4100 | "line": 124 | 4266 | "line": 126 |
4101 | }, | 4267 | }, |
4102 | "file": "src/lib/Menu.js", | 4268 | "file": "src/lib/Menu.js", |
4103 | "id": "menu.help.changelog", | 4269 | "id": "menu.help.changelog", |
4104 | "start": { | 4270 | "start": { |
4105 | "column": 13, | 4271 | "column": 13, |
4106 | "line": 121 | 4272 | "line": 123 |
4107 | } | 4273 | } |
4108 | }, | 4274 | }, |
4109 | { | 4275 | { |
4110 | "defaultMessage": "!!!Support", | 4276 | "defaultMessage": "!!!Support", |
4111 | "end": { | 4277 | "end": { |
4112 | "column": 3, | 4278 | "column": 3, |
4113 | "line": 128 | 4279 | "line": 130 |
4114 | }, | 4280 | }, |
4115 | "file": "src/lib/Menu.js", | 4281 | "file": "src/lib/Menu.js", |
4116 | "id": "menu.help.support", | 4282 | "id": "menu.help.support", |
4117 | "start": { | 4283 | "start": { |
4118 | "column": 11, | 4284 | "column": 11, |
4119 | "line": 125 | 4285 | "line": 127 |
4120 | } | 4286 | } |
4121 | }, | 4287 | }, |
4122 | { | 4288 | { |
4123 | "defaultMessage": "!!!Terms of Service", | 4289 | "defaultMessage": "!!!Terms of Service", |
4124 | "end": { | 4290 | "end": { |
4125 | "column": 3, | 4291 | "column": 3, |
4126 | "line": 132 | 4292 | "line": 134 |
4127 | }, | 4293 | }, |
4128 | "file": "src/lib/Menu.js", | 4294 | "file": "src/lib/Menu.js", |
4129 | "id": "menu.help.tos", | 4295 | "id": "menu.help.tos", |
4130 | "start": { | 4296 | "start": { |
4131 | "column": 7, | 4297 | "column": 7, |
4132 | "line": 129 | 4298 | "line": 131 |
4133 | } | 4299 | } |
4134 | }, | 4300 | }, |
4135 | { | 4301 | { |
4136 | "defaultMessage": "!!!Privacy Statement", | 4302 | "defaultMessage": "!!!Privacy Statement", |
4137 | "end": { | 4303 | "end": { |
4138 | "column": 3, | 4304 | "column": 3, |
4139 | "line": 136 | 4305 | "line": 138 |
4140 | }, | 4306 | }, |
4141 | "file": "src/lib/Menu.js", | 4307 | "file": "src/lib/Menu.js", |
4142 | "id": "menu.help.privacy", | 4308 | "id": "menu.help.privacy", |
4143 | "start": { | 4309 | "start": { |
4144 | "column": 11, | 4310 | "column": 11, |
4145 | "line": 133 | 4311 | "line": 135 |
4146 | } | 4312 | } |
4147 | }, | 4313 | }, |
4148 | { | 4314 | { |
4149 | "defaultMessage": "!!!File", | 4315 | "defaultMessage": "!!!File", |
4150 | "end": { | 4316 | "end": { |
4151 | "column": 3, | 4317 | "column": 3, |
4152 | "line": 140 | 4318 | "line": 142 |
4153 | }, | 4319 | }, |
4154 | "file": "src/lib/Menu.js", | 4320 | "file": "src/lib/Menu.js", |
4155 | "id": "menu.file", | 4321 | "id": "menu.file", |
4156 | "start": { | 4322 | "start": { |
4157 | "column": 8, | 4323 | "column": 8, |
4158 | "line": 137 | 4324 | "line": 139 |
4159 | } | 4325 | } |
4160 | }, | 4326 | }, |
4161 | { | 4327 | { |
4162 | "defaultMessage": "!!!View", | 4328 | "defaultMessage": "!!!View", |
4163 | "end": { | 4329 | "end": { |
4164 | "column": 3, | 4330 | "column": 3, |
4165 | "line": 144 | 4331 | "line": 146 |
4166 | }, | 4332 | }, |
4167 | "file": "src/lib/Menu.js", | 4333 | "file": "src/lib/Menu.js", |
4168 | "id": "menu.view", | 4334 | "id": "menu.view", |
4169 | "start": { | 4335 | "start": { |
4170 | "column": 8, | 4336 | "column": 8, |
4171 | "line": 141 | 4337 | "line": 143 |
4172 | } | 4338 | } |
4173 | }, | 4339 | }, |
4174 | { | 4340 | { |
4175 | "defaultMessage": "!!!Services", | 4341 | "defaultMessage": "!!!Services", |
4176 | "end": { | 4342 | "end": { |
4177 | "column": 3, | 4343 | "column": 3, |
4178 | "line": 148 | 4344 | "line": 150 |
4179 | }, | 4345 | }, |
4180 | "file": "src/lib/Menu.js", | 4346 | "file": "src/lib/Menu.js", |
4181 | "id": "menu.services", | 4347 | "id": "menu.services", |
4182 | "start": { | 4348 | "start": { |
4183 | "column": 12, | 4349 | "column": 12, |
4184 | "line": 145 | 4350 | "line": 147 |
4185 | } | 4351 | } |
4186 | }, | 4352 | }, |
4187 | { | 4353 | { |
4188 | "defaultMessage": "!!!Window", | 4354 | "defaultMessage": "!!!Window", |
4189 | "end": { | 4355 | "end": { |
4190 | "column": 3, | 4356 | "column": 3, |
4191 | "line": 152 | 4357 | "line": 154 |
4192 | }, | 4358 | }, |
4193 | "file": "src/lib/Menu.js", | 4359 | "file": "src/lib/Menu.js", |
4194 | "id": "menu.window", | 4360 | "id": "menu.window", |
4195 | "start": { | 4361 | "start": { |
4196 | "column": 10, | 4362 | "column": 10, |
4197 | "line": 149 | 4363 | "line": 151 |
4198 | } | 4364 | } |
4199 | }, | 4365 | }, |
4200 | { | 4366 | { |
4201 | "defaultMessage": "!!!Help", | 4367 | "defaultMessage": "!!!Help", |
4202 | "end": { | 4368 | "end": { |
4203 | "column": 3, | 4369 | "column": 3, |
4204 | "line": 156 | 4370 | "line": 158 |
4205 | }, | 4371 | }, |
4206 | "file": "src/lib/Menu.js", | 4372 | "file": "src/lib/Menu.js", |
4207 | "id": "menu.help", | 4373 | "id": "menu.help", |
4208 | "start": { | 4374 | "start": { |
4209 | "column": 8, | 4375 | "column": 8, |
4210 | "line": 153 | 4376 | "line": 155 |
4211 | } | 4377 | } |
4212 | }, | 4378 | }, |
4213 | { | 4379 | { |
4214 | "defaultMessage": "!!!About Franz", | 4380 | "defaultMessage": "!!!About Franz", |
4215 | "end": { | 4381 | "end": { |
4216 | "column": 3, | 4382 | "column": 3, |
4217 | "line": 160 | 4383 | "line": 162 |
4218 | }, | 4384 | }, |
4219 | "file": "src/lib/Menu.js", | 4385 | "file": "src/lib/Menu.js", |
4220 | "id": "menu.app.about", | 4386 | "id": "menu.app.about", |
4221 | "start": { | 4387 | "start": { |
4222 | "column": 9, | 4388 | "column": 9, |
4223 | "line": 157 | 4389 | "line": 159 |
4390 | } | ||
4391 | }, | ||
4392 | { | ||
4393 | "defaultMessage": "!!!What's new?", | ||
4394 | "end": { | ||
4395 | "column": 3, | ||
4396 | "line": 166 | ||
4397 | }, | ||
4398 | "file": "src/lib/Menu.js", | ||
4399 | "id": "menu.app.announcement", | ||
4400 | "start": { | ||
4401 | "column": 16, | ||
4402 | "line": 163 | ||
4224 | } | 4403 | } |
4225 | }, | 4404 | }, |
4226 | { | 4405 | { |
4227 | "defaultMessage": "!!!Settings", | 4406 | "defaultMessage": "!!!Settings", |
4228 | "end": { | 4407 | "end": { |
4229 | "column": 3, | 4408 | "column": 3, |
4230 | "line": 164 | 4409 | "line": 170 |
4231 | }, | 4410 | }, |
4232 | "file": "src/lib/Menu.js", | 4411 | "file": "src/lib/Menu.js", |
4233 | "id": "menu.app.settings", | 4412 | "id": "menu.app.settings", |
4234 | "start": { | 4413 | "start": { |
4235 | "column": 12, | 4414 | "column": 12, |
4236 | "line": 161 | 4415 | "line": 167 |
4237 | } | 4416 | } |
4238 | }, | 4417 | }, |
4239 | { | 4418 | { |
4240 | "defaultMessage": "!!!Hide", | 4419 | "defaultMessage": "!!!Hide", |
4241 | "end": { | 4420 | "end": { |
4242 | "column": 3, | 4421 | "column": 3, |
4243 | "line": 168 | 4422 | "line": 174 |
4244 | }, | 4423 | }, |
4245 | "file": "src/lib/Menu.js", | 4424 | "file": "src/lib/Menu.js", |
4246 | "id": "menu.app.hide", | 4425 | "id": "menu.app.hide", |
4247 | "start": { | 4426 | "start": { |
4248 | "column": 8, | 4427 | "column": 8, |
4249 | "line": 165 | 4428 | "line": 171 |
4250 | } | 4429 | } |
4251 | }, | 4430 | }, |
4252 | { | 4431 | { |
4253 | "defaultMessage": "!!!Hide Others", | 4432 | "defaultMessage": "!!!Hide Others", |
4254 | "end": { | 4433 | "end": { |
4255 | "column": 3, | 4434 | "column": 3, |
4256 | "line": 172 | 4435 | "line": 178 |
4257 | }, | 4436 | }, |
4258 | "file": "src/lib/Menu.js", | 4437 | "file": "src/lib/Menu.js", |
4259 | "id": "menu.app.hideOthers", | 4438 | "id": "menu.app.hideOthers", |
4260 | "start": { | 4439 | "start": { |
4261 | "column": 14, | 4440 | "column": 14, |
4262 | "line": 169 | 4441 | "line": 175 |
4263 | } | 4442 | } |
4264 | }, | 4443 | }, |
4265 | { | 4444 | { |
4266 | "defaultMessage": "!!!Unhide", | 4445 | "defaultMessage": "!!!Unhide", |
4267 | "end": { | 4446 | "end": { |
4268 | "column": 3, | 4447 | "column": 3, |
4269 | "line": 176 | 4448 | "line": 182 |
4270 | }, | 4449 | }, |
4271 | "file": "src/lib/Menu.js", | 4450 | "file": "src/lib/Menu.js", |
4272 | "id": "menu.app.unhide", | 4451 | "id": "menu.app.unhide", |
4273 | "start": { | 4452 | "start": { |
4274 | "column": 10, | 4453 | "column": 10, |
4275 | "line": 173 | 4454 | "line": 179 |
4276 | } | 4455 | } |
4277 | }, | 4456 | }, |
4278 | { | 4457 | { |
4279 | "defaultMessage": "!!!Quit", | 4458 | "defaultMessage": "!!!Quit", |
4280 | "end": { | 4459 | "end": { |
4281 | "column": 3, | 4460 | "column": 3, |
4282 | "line": 180 | 4461 | "line": 186 |
4283 | }, | 4462 | }, |
4284 | "file": "src/lib/Menu.js", | 4463 | "file": "src/lib/Menu.js", |
4285 | "id": "menu.app.quit", | 4464 | "id": "menu.app.quit", |
4286 | "start": { | 4465 | "start": { |
4287 | "column": 8, | 4466 | "column": 8, |
4288 | "line": 177 | 4467 | "line": 183 |
4289 | } | 4468 | } |
4290 | }, | 4469 | }, |
4291 | { | 4470 | { |
4292 | "defaultMessage": "!!!Add New Service...", | 4471 | "defaultMessage": "!!!Add New Service...", |
4293 | "end": { | 4472 | "end": { |
4294 | "column": 3, | 4473 | "column": 3, |
4295 | "line": 184 | 4474 | "line": 190 |
4296 | }, | 4475 | }, |
4297 | "file": "src/lib/Menu.js", | 4476 | "file": "src/lib/Menu.js", |
4298 | "id": "menu.services.addNewService", | 4477 | "id": "menu.services.addNewService", |
4299 | "start": { | 4478 | "start": { |
4300 | "column": 17, | 4479 | "column": 17, |
4301 | "line": 181 | 4480 | "line": 187 |
4302 | } | 4481 | } |
4303 | }, | 4482 | }, |
4304 | { | 4483 | { |
4305 | "defaultMessage": "!!!Add New Workspace...", | 4484 | "defaultMessage": "!!!Add New Workspace...", |
4306 | "end": { | 4485 | "end": { |
4307 | "column": 3, | 4486 | "column": 3, |
4308 | "line": 188 | 4487 | "line": 194 |
4309 | }, | 4488 | }, |
4310 | "file": "src/lib/Menu.js", | 4489 | "file": "src/lib/Menu.js", |
4311 | "id": "menu.workspaces.addNewWorkspace", | 4490 | "id": "menu.workspaces.addNewWorkspace", |
4312 | "start": { | 4491 | "start": { |
4313 | "column": 19, | 4492 | "column": 19, |
4314 | "line": 185 | 4493 | "line": 191 |
4315 | } | 4494 | } |
4316 | }, | 4495 | }, |
4317 | { | 4496 | { |
4318 | "defaultMessage": "!!!Open workspace drawer", | 4497 | "defaultMessage": "!!!Open workspace drawer", |
4319 | "end": { | 4498 | "end": { |
4320 | "column": 3, | 4499 | "column": 3, |
4321 | "line": 192 | 4500 | "line": 198 |
4322 | }, | 4501 | }, |
4323 | "file": "src/lib/Menu.js", | 4502 | "file": "src/lib/Menu.js", |
4324 | "id": "menu.workspaces.openWorkspaceDrawer", | 4503 | "id": "menu.workspaces.openWorkspaceDrawer", |
4325 | "start": { | 4504 | "start": { |
4326 | "column": 23, | 4505 | "column": 23, |
4327 | "line": 189 | 4506 | "line": 195 |
4328 | } | 4507 | } |
4329 | }, | 4508 | }, |
4330 | { | 4509 | { |
4331 | "defaultMessage": "!!!Close workspace drawer", | 4510 | "defaultMessage": "!!!Close workspace drawer", |
4332 | "end": { | 4511 | "end": { |
4333 | "column": 3, | 4512 | "column": 3, |
4334 | "line": 196 | 4513 | "line": 202 |
4335 | }, | 4514 | }, |
4336 | "file": "src/lib/Menu.js", | 4515 | "file": "src/lib/Menu.js", |
4337 | "id": "menu.workspaces.closeWorkspaceDrawer", | 4516 | "id": "menu.workspaces.closeWorkspaceDrawer", |
4338 | "start": { | 4517 | "start": { |
4339 | "column": 24, | 4518 | "column": 24, |
4340 | "line": 193 | 4519 | "line": 199 |
4341 | } | 4520 | } |
4342 | }, | 4521 | }, |
4343 | { | 4522 | { |
4344 | "defaultMessage": "!!!Activate next service...", | 4523 | "defaultMessage": "!!!Activate next service...", |
4345 | "end": { | 4524 | "end": { |
4346 | "column": 3, | 4525 | "column": 3, |
4347 | "line": 200 | 4526 | "line": 206 |
4348 | }, | 4527 | }, |
4349 | "file": "src/lib/Menu.js", | 4528 | "file": "src/lib/Menu.js", |
4350 | "id": "menu.services.setNextServiceActive", | 4529 | "id": "menu.services.setNextServiceActive", |
4351 | "start": { | 4530 | "start": { |
4352 | "column": 23, | 4531 | "column": 23, |
4353 | "line": 197 | 4532 | "line": 203 |
4354 | } | 4533 | } |
4355 | }, | 4534 | }, |
4356 | { | 4535 | { |
4357 | "defaultMessage": "!!!Activate previous service...", | 4536 | "defaultMessage": "!!!Activate previous service...", |
4358 | "end": { | 4537 | "end": { |
4359 | "column": 3, | 4538 | "column": 3, |
4360 | "line": 204 | 4539 | "line": 210 |
4361 | }, | 4540 | }, |
4362 | "file": "src/lib/Menu.js", | 4541 | "file": "src/lib/Menu.js", |
4363 | "id": "menu.services.activatePreviousService", | 4542 | "id": "menu.services.activatePreviousService", |
4364 | "start": { | 4543 | "start": { |
4365 | "column": 27, | 4544 | "column": 27, |
4366 | "line": 201 | 4545 | "line": 207 |
4367 | } | 4546 | } |
4368 | }, | 4547 | }, |
4369 | { | 4548 | { |
4370 | "defaultMessage": "!!!Disable notifications & audio", | 4549 | "defaultMessage": "!!!Disable notifications & audio", |
4371 | "end": { | 4550 | "end": { |
4372 | "column": 3, | 4551 | "column": 3, |
4373 | "line": 208 | 4552 | "line": 214 |
4374 | }, | 4553 | }, |
4375 | "file": "src/lib/Menu.js", | 4554 | "file": "src/lib/Menu.js", |
4376 | "id": "sidebar.muteApp", | 4555 | "id": "sidebar.muteApp", |
4377 | "start": { | 4556 | "start": { |
4378 | "column": 11, | 4557 | "column": 11, |
4379 | "line": 205 | 4558 | "line": 211 |
4380 | } | 4559 | } |
4381 | }, | 4560 | }, |
4382 | { | 4561 | { |
4383 | "defaultMessage": "!!!Enable notifications & audio", | 4562 | "defaultMessage": "!!!Enable notifications & audio", |
4384 | "end": { | 4563 | "end": { |
4385 | "column": 3, | 4564 | "column": 3, |
4386 | "line": 212 | 4565 | "line": 218 |
4387 | }, | 4566 | }, |
4388 | "file": "src/lib/Menu.js", | 4567 | "file": "src/lib/Menu.js", |
4389 | "id": "sidebar.unmuteApp", | 4568 | "id": "sidebar.unmuteApp", |
4390 | "start": { | 4569 | "start": { |
4391 | "column": 13, | 4570 | "column": 13, |
4392 | "line": 209 | 4571 | "line": 215 |
4393 | } | 4572 | } |
4394 | }, | 4573 | }, |
4395 | { | 4574 | { |
4396 | "defaultMessage": "!!!Workspaces", | 4575 | "defaultMessage": "!!!Workspaces", |
4397 | "end": { | 4576 | "end": { |
4398 | "column": 3, | 4577 | "column": 3, |
4399 | "line": 216 | 4578 | "line": 222 |
4400 | }, | 4579 | }, |
4401 | "file": "src/lib/Menu.js", | 4580 | "file": "src/lib/Menu.js", |
4402 | "id": "menu.workspaces", | 4581 | "id": "menu.workspaces", |
4403 | "start": { | 4582 | "start": { |
4404 | "column": 14, | 4583 | "column": 14, |
4405 | "line": 213 | 4584 | "line": 219 |
4406 | } | 4585 | } |
4407 | }, | 4586 | }, |
4408 | { | 4587 | { |
4409 | "defaultMessage": "!!!Default", | 4588 | "defaultMessage": "!!!Default", |
4410 | "end": { | 4589 | "end": { |
4411 | "column": 3, | 4590 | "column": 3, |
4412 | "line": 220 | 4591 | "line": 226 |
4413 | }, | 4592 | }, |
4414 | "file": "src/lib/Menu.js", | 4593 | "file": "src/lib/Menu.js", |
4415 | "id": "menu.workspaces.defaultWorkspace", | 4594 | "id": "menu.workspaces.defaultWorkspace", |
4416 | "start": { | 4595 | "start": { |
4417 | "column": 20, | 4596 | "column": 20, |
4418 | "line": 217 | 4597 | "line": 223 |
4419 | } | 4598 | } |
4420 | } | 4599 | } |
4421 | ], | 4600 | ], |
diff --git a/src/i18n/locales/el.json b/src/i18n/locales/el.json index 626abfddd..0ff4b5abb 100644 --- a/src/i18n/locales/el.json +++ b/src/i18n/locales/el.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "ΕπαναφόÏτωση", | 2 | "app.errorHandler.action" : "ΕπαναφόÏτωση", |
3 | "app.errorHandler.headline" : "Κάτι δεν λειτουÏγεί", | 3 | "app.errorHandler.headline" : "Κάτι δεν λειτουÏγεί", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz θα συνεχίσει σε {seconds} δευτεÏόλεπτα.", | 7 | "feature.delayApp.text" : "Franz θα συνεχίσει σε {seconds} δευτεÏόλεπτα.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Δεν είναι δυνατή η σÏνδεση με τις ζωντανÎÏ‚ υπηÏεσίες του Franz", | 15 | "global.api.unhealthy" : "Δεν είναι δυνατή η σÏνδεση με τις ζωντανÎÏ‚ υπηÏεσίες του Franz", |
15 | "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο", | 16 | "global.notConnectedToTheInternet" : "Έχετε αποσυνδεθεί από το Διαδίκτυο", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "ΣÏνδεση", | 44 | "login.submit.label" : "ΣÏνδεση", |
44 | "login.tokenExpired" : "Η συνεδÏία σας Îληξε, συνδεθείτε ξανά.", | 45 | "login.tokenExpired" : "Η συνεδÏία σας Îληξε, συνδεθείτε ξανά.", |
45 | "menu.app.about" : "Σχετικά με το Franz", | 46 | "menu.app.about" : "Σχετικά με το Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "ΑπόκÏυψη", | 48 | "menu.app.hide" : "ΑπόκÏυψη", |
47 | "menu.app.hideOthers" : "ΑπόκÏυψη των άλλων", | 49 | "menu.app.hideOthers" : "ΑπόκÏυψη των άλλων", |
48 | "menu.app.quit" : "Έξοδος", | 50 | "menu.app.quit" : "Έξοδος", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "ΠαÏάθυÏο", | 89 | "menu.window" : "ΠαÏάθυÏο", |
88 | "menu.window.close" : "Κλείσιμο", | 90 | "menu.window.close" : "Κλείσιμο", |
89 | "menu.window.minimize" : "Ελαχιστοποίηση", | 91 | "menu.window.minimize" : "Ελαχιστοποίηση", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Όλες οι υπηÏεσίες", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", | 97 | "password.email.label" : "ΔιεÏθυνση ηλεκτÏÎ¿Î½Î¹ÎºÎ¿Ï Ï„Î±Ï‡Ï…Î´Ïομείου", |
91 | "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης", | 98 | "password.headline" : "ΕπαναφοÏά ÎºÏ‰Î´Î¹ÎºÎ¿Ï Ï€Ïόσβασης", |
92 | "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας", | 99 | "password.link.login" : "ΣÏνδεση στο λογαÏιασμό σας", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Ω, όχι!", | 117 | "service.errorHandler.headline" : "Ω, όχι!", |
111 | "service.errorHandler.message" : "Σφάλμα", | 118 | "service.errorHandler.message" : "Σφάλμα", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Ξεκινήστε", | 121 | "services.getStarted" : "Ξεκινήστε", |
114 | "services.welcome" : "Καλώς οÏίσατε στον Franz", | 122 | "services.welcome" : "Καλώς οÏίσατε στον Franz", |
115 | "settings.account.account.editButton" : "ΕπεξεÏγασία λογαÏιασμοÏ", | 123 | "settings.account.account.editButton" : "ΕπεξεÏγασία λογαÏιασμοÏ", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Γενικά", | 164 | "settings.app.headlineGeneral" : "Γενικά", |
157 | "settings.app.headlineLanguage" : "Γλώσσα", | 165 | "settings.app.headlineLanguage" : "Γλώσσα", |
158 | "settings.app.headlineUpdates" : "ΕνημεÏώσεις", | 166 | "settings.app.headlineUpdates" : "ΕνημεÏώσεις", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Οι αλλαγÎÏ‚ απαιτοÏν επανεκκίνηση", | 168 | "settings.app.restartRequired" : "Οι αλλαγÎÏ‚ απαιτοÏν επανεκκίνηση", |
160 | "settings.app.subheadlineCache" : "Λανθάνουσα μνήμη", | 169 | "settings.app.subheadlineCache" : "Λανθάνουσα μνήμη", |
161 | "settings.app.translationHelp" : "Βοηθήστε μας να μεταφÏάσουμε το Franz στη δική σας γλώσσα.", | 170 | "settings.app.translationHelp" : "Βοηθήστε μας να μεταφÏάσουμε το Franz στη δική σας γλώσσα.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Î ÏασκαλÎστε Φίλους", | 177 | "settings.navigation.inviteFriends" : "Î ÏασκαλÎστε Φίλους", |
169 | "settings.navigation.logout" : "ΑποσÏνδεση", | 178 | "settings.navigation.logout" : "ΑποσÏνδεση", |
170 | "settings.navigation.settings" : "Ρυθμίσεις", | 179 | "settings.navigation.settings" : "Ρυθμίσεις", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Οι υπηÏεσίες σας", | 181 | "settings.navigation.yourServices" : "Οι υπηÏεσίες σας", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Όλες οι υπηÏεσίες", | 183 | "settings.recipes.all" : "Όλες οι υπηÏεσίες", |
173 | "settings.recipes.dev" : "Ανάπτυξη", | 184 | "settings.recipes.dev" : "Ανάπτυξη", |
174 | "settings.recipes.headline" : "ΔιαθÎσιμες υπηÏεσίες", | 185 | "settings.recipes.headline" : "ΔιαθÎσιμες υπηÏεσίες", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεÏγοποιημÎνοι", | 237 | "settings.services.tooltip.isMuted" : "Όλοι οι ήχοι είναι απενεÏγοποιημÎνοι", |
227 | "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεÏγοποιημÎνες", | 238 | "settings.services.tooltip.notificationsDisabled" : "Οι ειδοποιήσεις είναι απενεÏγοποιημÎνες", |
228 | "settings.services.updatedInfo" : "Οι αλλαγÎÏ‚ σας Îχουν αποθηκευτεί", | 239 | "settings.services.updatedInfo" : "Οι αλλαγÎÏ‚ σας Îχουν αποθηκευτεί", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Ομάδα", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "ΕταιÏεία", | 246 | "settings.user.form.accountType.company" : "ΕταιÏεία", |
230 | "settings.user.form.accountType.individual" : "Ατομικός", | 247 | "settings.user.form.accountType.individual" : "Ατομικός", |
231 | "settings.user.form.accountType.label" : "ΤÏπος λογαÏιασμοÏ", | 248 | "settings.user.form.accountType.label" : "ΤÏπος λογαÏιασμοÏ", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Όνομα", | 252 | "settings.user.form.firstname" : "Όνομα", |
236 | "settings.user.form.lastname" : "Επίθετο", | 253 | "settings.user.form.lastname" : "Επίθετο", |
237 | "settings.user.form.newPassword" : "ÎÎος κωδικός Ï€Ïόσβασης", | 254 | "settings.user.form.newPassword" : "ÎÎος κωδικός Ï€Ïόσβασης", |
255 | "settings.workspace.add.form.name" : "Όνομα", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Όνομα", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Δοκιμάστε ξανά", | ||
266 | "settings.workspaces.updatedInfo" : "Οι αλλαγÎÏ‚ σας Îχουν αποθηκευτεί", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Î Ïοσθήκη νÎας υπηÏεσίας", | 270 | "sidebar.addNewService" : "Î Ïοσθήκη νÎας υπηÏεσίας", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "ΑπενεÏγοποίηση ειδοποιήσεων & ήχου", | 272 | "sidebar.muteApp" : "ΑπενεÏγοποίηση ειδοποιήσεων & ήχου", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Ρυθμίσεις", | 274 | "sidebar.settings" : "Ρυθμίσεις", |
241 | "sidebar.unmuteApp" : "ΕνεÏγοποίηση ειδοποιήσεων & ήχου", | 275 | "sidebar.unmuteApp" : "ΕνεÏγοποίηση ειδοποιήσεων & ήχου", |
242 | "signup.company.label" : "ΕταιÏεία", | 276 | "signup.company.label" : "ΕταιÏεία", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Ο Premium λογαÏιασμός υποστήÏιξης Franz πεÏιλαμβάνει", | 296 | "subscription.includedFeatures" : "Ο Premium λογαÏιασμός υποστήÏιξης Franz πεÏιλαμβάνει", |
262 | "subscription.paymentSessionError" : "Δεν ήταν δυνατή η Ï€Ïοετοιμασία της φόÏμας πληÏωμής", | 297 | "subscription.paymentSessionError" : "Δεν ήταν δυνατή η Ï€Ïοετοιμασία της φόÏμας πληÏωμής", |
263 | "subscription.submit.label" : "ΘÎλω να βοηθήσω στην ανάπτυξη του Franz", | 298 | "subscription.submit.label" : "ΘÎλω να βοηθήσω στην ανάπτυξη του Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} είναι υποχÏεωτικό", | 316 | "validation.required" : "{field} είναι υποχÏεωτικό", |
282 | "validation.url" : "{field} δεν είναι ÎγκυÏος σÏνδεσμος URL", | 317 | "validation.url" : "{field} δεν είναι ÎγκυÏος σÏνδεσμος URL", |
283 | "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας", | 318 | "welcome.loginButton" : "ΣÏνδεση στο λογαÏιασμό σας", |
284 | "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ" | 319 | "welcome.signupButton" : "ΔημιουÏγία δωÏεάν λογαÏιασμοÏ", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Όλες οι υπηÏεσίες", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 84a71117a..6c2759dcc 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action": "Reload", | 2 | "app.errorHandler.action": "Reload", |
3 | "app.errorHandler.headline": "Something went wrong", | 3 | "app.errorHandler.headline": "Something went wrong", |
4 | "feature.announcements.changelog.headline": "Changes in Franz {version}", | ||
4 | "feature.delayApp.action": "Get a Franz Supporter License", | 5 | "feature.delayApp.action": "Get a Franz Supporter License", |
5 | "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline": "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text": "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text": "Franz will continue in {seconds} seconds.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label": "Sign in", | 44 | "login.submit.label": "Sign in", |
44 | "login.tokenExpired": "Your session expired, please login again.", | 45 | "login.tokenExpired": "Your session expired, please login again.", |
45 | "menu.app.about": "About Franz", | 46 | "menu.app.about": "About Franz", |
47 | "menu.app.announcement": "What's new?", | ||
46 | "menu.app.hide": "Hide", | 48 | "menu.app.hide": "Hide", |
47 | "menu.app.hideOthers": "Hide Others", | 49 | "menu.app.hideOthers": "Hide Others", |
48 | "menu.app.quit": "Quit", | 50 | "menu.app.quit": "Quit", |
@@ -162,6 +164,7 @@ | |||
162 | "settings.app.headlineGeneral": "General", | 164 | "settings.app.headlineGeneral": "General", |
163 | "settings.app.headlineLanguage": "Language", | 165 | "settings.app.headlineLanguage": "Language", |
164 | "settings.app.headlineUpdates": "Updates", | 166 | "settings.app.headlineUpdates": "Updates", |
167 | "settings.app.languageDisclaimer": "Official translations are English & German. All other languages are community based translations.", | ||
165 | "settings.app.restartRequired": "Changes require restart", | 168 | "settings.app.restartRequired": "Changes require restart", |
166 | "settings.app.subheadlineCache": "Cache", | 169 | "settings.app.subheadlineCache": "Cache", |
167 | "settings.app.translationHelp": "Help us to translate Franz into your language.", | 170 | "settings.app.translationHelp": "Help us to translate Franz into your language.", |
@@ -174,6 +177,7 @@ | |||
174 | "settings.navigation.inviteFriends": "Invite Friends", | 177 | "settings.navigation.inviteFriends": "Invite Friends", |
175 | "settings.navigation.logout": "Logout", | 178 | "settings.navigation.logout": "Logout", |
176 | "settings.navigation.settings": "Settings", | 179 | "settings.navigation.settings": "Settings", |
180 | "settings.navigation.team": "Manage Team", | ||
177 | "settings.navigation.yourServices": "Your services", | 181 | "settings.navigation.yourServices": "Your services", |
178 | "settings.navigation.yourWorkspaces": "Your workspaces", | 182 | "settings.navigation.yourWorkspaces": "Your workspaces", |
179 | "settings.recipes.all": "All services", | 183 | "settings.recipes.all": "All services", |
@@ -233,6 +237,12 @@ | |||
233 | "settings.services.tooltip.isMuted": "All sounds are muted", | 237 | "settings.services.tooltip.isMuted": "All sounds are muted", |
234 | "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", | 238 | "settings.services.tooltip.notificationsDisabled": "Notifications are disabled", |
235 | "settings.services.updatedInfo": "Your changes have been saved", | 239 | "settings.services.updatedInfo": "Your changes have been saved", |
240 | "settings.team.contentHeadline": "Franz for Teams", | ||
241 | "settings.team.copy": "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline": "Team", | ||
243 | "settings.team.intro": "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction": "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction": "Upgrade your Account", | ||
236 | "settings.user.form.accountType.company": "Company", | 246 | "settings.user.form.accountType.company": "Company", |
237 | "settings.user.form.accountType.individual": "Individual", | 247 | "settings.user.form.accountType.individual": "Individual", |
238 | "settings.user.form.accountType.label": "Account type", | 248 | "settings.user.form.accountType.label": "Account type", |
@@ -282,6 +292,7 @@ | |||
282 | "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost": "Add on-premise/hosted services like Mattermost", |
283 | "subscription.features.proxy": "Proxy support for services", | 293 | "subscription.features.proxy": "Proxy support for services", |
284 | "subscription.features.spellchecker": "Support for spellchecker", | 294 | "subscription.features.spellchecker": "Support for spellchecker", |
295 | "subscription.features.workspaces": "Organize your services in workspaces", | ||
285 | "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", | 296 | "subscription.includedFeatures": "Paid Franz Premium Supporter Account includes", |
286 | "subscription.paymentSessionError": "Could not initialize payment form", | 297 | "subscription.paymentSessionError": "Could not initialize payment form", |
287 | "subscription.submit.label": "I want to support the development of Franz", | 298 | "subscription.submit.label": "I want to support the development of Franz", |
diff --git a/src/i18n/locales/es.json b/src/i18n/locales/es.json index 5c26b456c..4167a5c7d 100644 --- a/src/i18n/locales/es.json +++ b/src/i18n/locales/es.json | |||
@@ -1,21 +1,22 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Recargar", | 2 | "app.errorHandler.action" : "Recargar", |
3 | "app.errorHandler.headline" : "Ha surgido un error", | 3 | "app.errorHandler.headline" : "Ha surgido un error", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Consigue una Licencia de Soporte de Franz", | 5 | "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", | 6 | "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.", | 7 | "feature.delayApp.text" : "Franz continuará en {seconds} segundos.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "EnvÃa como correo", |
8 | "feature.shareFranz.action.facebook" : "Compartir en Facebook", | 9 | "feature.shareFranz.action.facebook" : "Compartir en Facebook", |
9 | "feature.shareFranz.action.twitter" : "Compartir en Twitter", | 10 | "feature.shareFranz.action.twitter" : "Compartir en Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "¡Juntos mejoramos Franz!", |
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.email" : "¡He añadido {count} servicios a Franz! Obtén la aplicación gratuita para WhatsApp, Messenger, Slack, Skype en 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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Dile a tus amigos y colegas lo asombroso que es Franz y ayúdanos a correr la voz.", |
14 | "global.api.unhealthy" : "No es posible conectarse a los servicios en lÃnea de Franz.", | 15 | "global.api.unhealthy" : "No es posible conectarse a los servicios en lÃnea de Franz.", |
15 | "global.notConnectedToTheInternet" : "No estás conectado a Internet", | 16 | "global.notConnectedToTheInternet" : "No estás conectado a Internet", |
16 | "global.spellchecker.useDefault" : "Utilizar estándar del sistema ({default})", | 17 | "global.spellchecker.useDefault" : "Utilizar estándar del sistema ({default})", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "Detectar el idioma automáticamente", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "Automático", |
19 | "global.spellchecking.language" : "Corrector de ortografÃa", | 20 | "global.spellchecking.language" : "Corrector de ortografÃa", |
20 | "import.headline" : "Importa tus servicios de Franz 4", | 21 | "import.headline" : "Importa tus servicios de Franz 4", |
21 | "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5", | 22 | "import.notSupportedHeadline" : "Servicios no admitidos aún en Franz 5", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Iniciar sesión", | 44 | "login.submit.label" : "Iniciar sesión", |
44 | "login.tokenExpired" : "Tu sesión ha expirado, por favor inicia sesión de nuevo.", | 45 | "login.tokenExpired" : "Tu sesión ha expirado, por favor inicia sesión de nuevo.", |
45 | "menu.app.about" : "Sobre Franz", | 46 | "menu.app.about" : "Sobre Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Ocultar", | 48 | "menu.app.hide" : "Ocultar", |
47 | "menu.app.hideOthers" : "Ocultar otros", | 49 | "menu.app.hideOthers" : "Ocultar otros", |
48 | "menu.app.quit" : "Salir", | 50 | "menu.app.quit" : "Salir", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Ayuda técnica", | 72 | "menu.help.support" : "Ayuda técnica", |
71 | "menu.help.tos" : "Términos del Servicio", | 73 | "menu.help.tos" : "Términos del Servicio", |
72 | "menu.services" : "Servicios", | 74 | "menu.services" : "Servicios", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Activa el servicio previo", |
74 | "menu.services.addNewService" : "Añadir Nuevo Servicio...", | 76 | "menu.services.addNewService" : "Añadir Nuevo Servicio...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Activa el siguiente servicio", |
76 | "menu.view" : "Mostrar", | 78 | "menu.view" : "Mostrar", |
77 | "menu.view.enterFullScreen" : "Pasar a pantalla completa", | 79 | "menu.view.enterFullScreen" : "Pasar a pantalla completa", |
78 | "menu.view.exitFullScreen" : "Salir de Pantalla Completa", | 80 | "menu.view.exitFullScreen" : "Salir de Pantalla Completa", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Ventana", | 89 | "menu.window" : "Ventana", |
88 | "menu.window.close" : "Cerrar", | 90 | "menu.window.close" : "Cerrar", |
89 | "menu.window.minimize" : "Minimizar", | 91 | "menu.window.minimize" : "Minimizar", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Todos los servicios", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Dirección de correo electrónico", | 97 | "password.email.label" : "Dirección de correo electrónico", |
91 | "password.headline" : "Restablecer contraseña", | 98 | "password.headline" : "Restablecer contraseña", |
92 | "password.link.login" : "Inicia sesión en tu cuenta", | 99 | "password.link.login" : "Inicia sesión en tu cuenta", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "¡Oh, no!", | 117 | "service.errorHandler.headline" : "¡Oh, no!", |
111 | "service.errorHandler.message" : "Error", | 118 | "service.errorHandler.message" : "Error", |
112 | "service.errorHandler.text" : "{name} ha fallado la carga", | 119 | "service.errorHandler.text" : "{name} ha fallado la carga", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Primeros pasos", | 121 | "services.getStarted" : "Primeros pasos", |
114 | "services.welcome" : "Bienvenido a Franz", | 122 | "services.welcome" : "Bienvenido a Franz", |
115 | "settings.account.account.editButton" : "Editar cuenta", | 123 | "settings.account.account.editButton" : "Editar cuenta", |
@@ -131,7 +139,7 @@ | |||
131 | "settings.account.manageSubscription.label" : "Administra tu suscripción", | 139 | "settings.account.manageSubscription.label" : "Administra tu suscripción", |
132 | "settings.account.successInfo" : "Tus cambios han sido guardados", | 140 | "settings.account.successInfo" : "Tus cambios han sido guardados", |
133 | "settings.account.tryReloadServices" : "Intentar de nuevo", | 141 | "settings.account.tryReloadServices" : "Intentar de nuevo", |
134 | "settings.account.tryReloadUserInfoRequest" : "Intentar de nuevo", | 142 | "settings.account.tryReloadUserInfoRequest" : "Intenta de nuevo", |
135 | "settings.account.userInfoRequestFailed" : "No se pudo cargar la información de usuario", | 143 | "settings.account.userInfoRequestFailed" : "No se pudo cargar la información de usuario", |
136 | "settings.app.buttonClearAllCache" : "Limpiar caché", | 144 | "settings.app.buttonClearAllCache" : "Limpiar caché", |
137 | "settings.app.buttonInstallUpdate" : "Reiniciar e instalar actualizaciones", | 145 | "settings.app.buttonInstallUpdate" : "Reiniciar e instalar actualizaciones", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "General", | 164 | "settings.app.headlineGeneral" : "General", |
157 | "settings.app.headlineLanguage" : "Idioma", | 165 | "settings.app.headlineLanguage" : "Idioma", |
158 | "settings.app.headlineUpdates" : "Actualizaciones", | 166 | "settings.app.headlineUpdates" : "Actualizaciones", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Los cambios requieren reiniciar", | 168 | "settings.app.restartRequired" : "Los cambios requieren reiniciar", |
160 | "settings.app.subheadlineCache" : "Caché", | 169 | "settings.app.subheadlineCache" : "Caché", |
161 | "settings.app.translationHelp" : "Ayúdanos a traducir Franz a tu idioma.", | 170 | "settings.app.translationHelp" : "Ayúdanos a traducir Franz a tu idioma.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Invita a tus amigos", | 177 | "settings.navigation.inviteFriends" : "Invita a tus amigos", |
169 | "settings.navigation.logout" : "Cerrar sesión", | 178 | "settings.navigation.logout" : "Cerrar sesión", |
170 | "settings.navigation.settings" : "Configuración", | 179 | "settings.navigation.settings" : "Configuración", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Tus servicios", | 181 | "settings.navigation.yourServices" : "Tus servicios", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Todos los servicios", | 183 | "settings.recipes.all" : "Todos los servicios", |
173 | "settings.recipes.dev" : "Desarrollo", | 184 | "settings.recipes.dev" : "Desarrollo", |
174 | "settings.recipes.headline" : "Servicios disponibles", | 185 | "settings.recipes.headline" : "Servicios disponibles", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "Descubrir servicios", | 232 | "settings.services.discoverServices" : "Descubrir servicios", |
222 | "settings.services.headline" : "Tus servicios", | 233 | "settings.services.headline" : "Tus servicios", |
223 | "settings.services.noServicesAdded" : "No has añadido ningún servicio aún.", | 234 | "settings.services.noServicesAdded" : "No has añadido ningún servicio aún.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "No pudo cargar tus servicios", |
225 | "settings.services.tooltip.isDisabled" : "El servicio está desactivado", | 236 | "settings.services.tooltip.isDisabled" : "El servicio está desactivado", |
226 | "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", | 237 | "settings.services.tooltip.isMuted" : "Todos los sonidos están silenciados", |
227 | "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", | 238 | "settings.services.tooltip.notificationsDisabled" : "Las notificaciones están desactivadas", |
228 | "settings.services.updatedInfo" : "Tus cambios han sido guardados", | 239 | "settings.services.updatedInfo" : "Tus cambios han sido guardados", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Equipo", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Empresa", | 246 | "settings.user.form.accountType.company" : "Empresa", |
230 | "settings.user.form.accountType.individual" : "Individual", | 247 | "settings.user.form.accountType.individual" : "Individual", |
231 | "settings.user.form.accountType.label" : "Tipo de cuenta", | 248 | "settings.user.form.accountType.label" : "Tipo de cuenta", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Nombre", | 252 | "settings.user.form.firstname" : "Nombre", |
236 | "settings.user.form.lastname" : "Apellido", | 253 | "settings.user.form.lastname" : "Apellido", |
237 | "settings.user.form.newPassword" : "Nueva contraseña", | 254 | "settings.user.form.newPassword" : "Nueva contraseña", |
255 | "settings.workspace.add.form.name" : "Nombre", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Nombre", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
266 | "settings.workspaces.updatedInfo" : "Tus cambios han sido guardados", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Añadir nuevo servicio", | 270 | "sidebar.addNewService" : "Añadir nuevo servicio", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Desactivar notificaciones y sonido", | 272 | "sidebar.muteApp" : "Desactivar notificaciones y sonido", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Configuración", | 274 | "sidebar.settings" : "Configuración", |
241 | "sidebar.unmuteApp" : "Activar notificaciones y sonido", | 275 | "sidebar.unmuteApp" : "Activar notificaciones y sonido", |
242 | "signup.company.label" : "CompañÃa", | 276 | "signup.company.label" : "CompañÃa", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Agregar servicios de almacenamiento como Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Agregar servicios de almacenamiento como Mattermost", |
259 | "subscription.features.proxy" : "Soporte Proxy para servicios", | 293 | "subscription.features.proxy" : "Soporte Proxy para servicios", |
260 | "subscription.features.spellchecker" : "Soporte para corrector de ortografÃa", | 294 | "subscription.features.spellchecker" : "Soporte para corrector de ortografÃa", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "La Cuenta pagada de Colaborador Premium de Franz incluye", | 296 | "subscription.includedFeatures" : "La Cuenta pagada de Colaborador Premium de Franz incluye", |
262 | "subscription.paymentSessionError" : "No se pudo inicializar el formulario de pago", | 297 | "subscription.paymentSessionError" : "No se pudo inicializar el formulario de pago", |
263 | "subscription.submit.label" : "Quiero apoyar el desarrollo de Franz", | 298 | "subscription.submit.label" : "Quiero apoyar el desarrollo de Franz", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "Recargar", | 312 | "tabs.item.reload" : "Recargar", |
278 | "validation.email" : "{field} no es válido", | 313 | "validation.email" : "{field} no es válido", |
279 | "validation.minLength" : "{field} deberÃa tener al menos {length} caracteres", | 314 | "validation.minLength" : "{field} deberÃa tener al menos {length} caracteres", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "Al menos uno es requerido", |
281 | "validation.required" : "{field} es obligatorio", | 316 | "validation.required" : "{field} es obligatorio", |
282 | "validation.url" : "{field} no es una URL válida", | 317 | "validation.url" : "{field} no es una URL válida", |
283 | "welcome.loginButton" : "Accede a tu cuenta", | 318 | "welcome.loginButton" : "Accede a tu cuenta", |
284 | "welcome.signupButton" : "Crear una cuenta gratuita" | 319 | "welcome.signupButton" : "Crear una cuenta gratuita", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Todos los servicios", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/fr.json b/src/i18n/locales/fr.json index 6f9d81713..2bd5326c0 100644 --- a/src/i18n/locales/fr.json +++ b/src/i18n/locales/fr.json | |||
@@ -1,6 +1,7 @@ | |||
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.announcements.changelog.headline" : "Changements dans Franz {version}", | ||
4 | "feature.delayApp.action" : "Obtenez une licence de Supporter Franz", | 5 | "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", | 6 | "feature.delayApp.headline" : "Veuillez acheter une licence de Supporter Franz pour sauter le temps d'attente", |
6 | "feature.delayApp.text" : "Franz reprendra dans {seconds} secondes.", | 7 | "feature.delayApp.text" : "Franz reprendra dans {seconds} secondes.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Partager sur Twitter", | 10 | "feature.shareFranz.action.twitter" : "Partager sur Twitter", |
10 | "feature.shareFranz.headline" : "Franz est meilleur quand on est tous ensemble !", | 11 | "feature.shareFranz.headline" : "Franz est meilleur quand on est tous ensemble !", |
11 | "feature.shareFranz.shareText.email" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com", | 12 | "feature.shareFranz.shareText.email" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com", |
12 | "feature.shareFranz.shareText.twitter" : "J'ai ajouté {count} services à Franz ! Télécharger l'appli gratuite pour WhatsApp, Messenger, Skype et cie sur www.meetfranz.com \/cc @NeetFranz", | 13 | "feature.shareFranz.shareText.twitter" : "J'ai ajouté {count} services à Franz! Télécharge l'application gratuite pour WhatsApp, Messenger, Slack, Skype et compagnie sur www.meetfranz.com \/cc @FranzMessenger", |
13 | "feature.shareFranz.text" : "Dites à vos amis et collègues combien Franz est super et aidez nous à faire passer le mot.", | 14 | "feature.shareFranz.text" : "Dites à vos amis et collègues combien Franz est super et aidez nous à faire passer le mot.", |
14 | "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", | 15 | "global.api.unhealthy" : "Impossible de se connecter aux services en ligne de Franz", |
15 | "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", | 16 | "global.notConnectedToTheInternet" : "Vous n'êtes pas connecté à Internet.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Se connecter", | 44 | "login.submit.label" : "Se connecter", |
44 | "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", | 45 | "login.tokenExpired" : "Votre session a expiré, veuillez vous reconnecter.", |
45 | "menu.app.about" : "À propos de Franz", | 46 | "menu.app.about" : "À propos de Franz", |
47 | "menu.app.announcement" : "Quoi de neuf? ", | ||
46 | "menu.app.hide" : "Masquer", | 48 | "menu.app.hide" : "Masquer", |
47 | "menu.app.hideOthers" : "Masquer les autres", | 49 | "menu.app.hideOthers" : "Masquer les autres", |
48 | "menu.app.quit" : "Quitter", | 50 | "menu.app.quit" : "Quitter", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Support", | 72 | "menu.help.support" : "Support", |
71 | "menu.help.tos" : "Conditions d'utilisation", | 73 | "menu.help.tos" : "Conditions d'utilisation", |
72 | "menu.services" : "Services", | 74 | "menu.services" : "Services", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Activer le service précédent", |
74 | "menu.services.addNewService" : "Ajouter un nouveau service...", | 76 | "menu.services.addNewService" : "Ajouter un nouveau service...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Activer le service suivant", |
76 | "menu.view" : "Aperçu", | 78 | "menu.view" : "Aperçu", |
77 | "menu.view.enterFullScreen" : "Entrer en mode plein écran", | 79 | "menu.view.enterFullScreen" : "Entrer en mode plein écran", |
78 | "menu.view.exitFullScreen" : "Sortir du mode plein écran", | 80 | "menu.view.exitFullScreen" : "Sortir du mode plein écran", |
@@ -87,13 +89,18 @@ | |||
87 | "menu.window" : "Fenêtre", | 89 | "menu.window" : "Fenêtre", |
88 | "menu.window.close" : "Fermer", | 90 | "menu.window.close" : "Fermer", |
89 | "menu.window.minimize" : "Réduire", | 91 | "menu.window.minimize" : "Réduire", |
90 | "password.email.label" : "Adresse e-mail", | 92 | "menu.workspaces" : "Espace de travail", |
93 | "menu.workspaces.addNewWorkspace" : "Ajouter un nouvel espace de travail", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Ouvrir l'espace de travail", | ||
95 | "menu.workspaces.defaultWorkspace" : "Tous les services", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Fermer l'espace de travail", | ||
97 | "password.email.label" : "Adresse email", | ||
91 | "password.headline" : "Réinitialiser le mot de passe", | 98 | "password.headline" : "Réinitialiser le mot de passe", |
92 | "password.link.login" : "Connectez-vous à votre compte", | 99 | "password.link.login" : "Connectez-vous à votre compte", |
93 | "password.link.signup" : "Créer un compte gratuit.", | 100 | "password.link.signup" : "Créer un compte gratuit.", |
94 | "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse e-mail", | 101 | "password.noUser" : "Aucun utilisateur n'a été trouvé avec cette adresse email", |
95 | "password.submit.label" : "Soumettre", | 102 | "password.submit.label" : "Soumettre", |
96 | "password.successInfo" : "Merci de consulter vos e-mails", | 103 | "password.successInfo" : "Merci de consulter vos emails", |
97 | "premiumFeature.button.upgradeAccount" : "Mettre à niveau mon compte", | 104 | "premiumFeature.button.upgradeAccount" : "Mettre à niveau mon compte", |
98 | "pricing.headline" : "Soutenez Franz", | 105 | "pricing.headline" : "Soutenez Franz", |
99 | "pricing.link.skipPayment" : "Je ne veux pas soutenir le développement de Franz.", | 106 | "pricing.link.skipPayment" : "Je ne veux pas soutenir le développement de Franz.", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh non !", | 117 | "service.errorHandler.headline" : "Oh non !", |
111 | "service.errorHandler.message" : "Erreur", | 118 | "service.errorHandler.message" : "Erreur", |
112 | "service.errorHandler.text" : "Le chargement de {name} a échoué.", | 119 | "service.errorHandler.text" : "Le chargement de {name} a échoué.", |
120 | "service.webviewLoader.loading" : "Chargement (c'est l'heure du café...)", | ||
113 | "services.getStarted" : "Commencer", | 121 | "services.getStarted" : "Commencer", |
114 | "services.welcome" : "Bienvenue dans Franz", | 122 | "services.welcome" : "Bienvenue dans Franz", |
115 | "settings.account.account.editButton" : "Modifier le compte", | 123 | "settings.account.account.editButton" : "Modifier le compte", |
@@ -121,7 +129,7 @@ | |||
121 | "settings.account.deleteInfo" : "Si vous n'avez plus besoin de votre compte Franz, vous pouvez le supprimer avec toutes ses données associées.", | 129 | "settings.account.deleteInfo" : "Si vous n'avez plus besoin de votre compte Franz, vous pouvez le supprimer avec toutes ses données associées.", |
122 | "settings.account.headline" : "Compte", | 130 | "settings.account.headline" : "Compte", |
123 | "settings.account.headlineAccount" : "Informations sur le compte", | 131 | "settings.account.headlineAccount" : "Informations sur le compte", |
124 | "settings.account.headlineDangerZone" : "Zone Dangereuse !", | 132 | "settings.account.headlineDangerZone" : "Zone dangereuse !", |
125 | "settings.account.headlineInvoices" : "Factures", | 133 | "settings.account.headlineInvoices" : "Factures", |
126 | "settings.account.headlinePassword" : "Changer le mot de passe", | 134 | "settings.account.headlinePassword" : "Changer le mot de passe", |
127 | "settings.account.headlineProfile" : "Mettre à jour le profil", | 135 | "settings.account.headlineProfile" : "Mettre à jour le profil", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Général", | 164 | "settings.app.headlineGeneral" : "Général", |
157 | "settings.app.headlineLanguage" : "Langue", | 165 | "settings.app.headlineLanguage" : "Langue", |
158 | "settings.app.headlineUpdates" : "Mises à jour", | 166 | "settings.app.headlineUpdates" : "Mises à jour", |
167 | "settings.app.languageDisclaimer" : "Les traductions officielles sont l'anglais et l'allemand. Toutes les autres langues sont des traductions faites par la communauté.", | ||
159 | "settings.app.restartRequired" : "Les modifications nécessitent un redémarrage", | 168 | "settings.app.restartRequired" : "Les modifications nécessitent un redémarrage", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Aidez-nous à traduire Franz dans votre langue.", | 170 | "settings.app.translationHelp" : "Aidez-nous à traduire Franz dans votre langue.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Inviter des amis", | 177 | "settings.navigation.inviteFriends" : "Inviter des amis", |
169 | "settings.navigation.logout" : "Se déconnecter", | 178 | "settings.navigation.logout" : "Se déconnecter", |
170 | "settings.navigation.settings" : "Paramètres", | 179 | "settings.navigation.settings" : "Paramètres", |
180 | "settings.navigation.team" : "Gérer l'équipe", | ||
171 | "settings.navigation.yourServices" : "Vos services", | 181 | "settings.navigation.yourServices" : "Vos services", |
182 | "settings.navigation.yourWorkspaces" : "Tes espaces de travail", | ||
172 | "settings.recipes.all" : "Tous les services", | 183 | "settings.recipes.all" : "Tous les services", |
173 | "settings.recipes.dev" : "Développement", | 184 | "settings.recipes.dev" : "Développement", |
174 | "settings.recipes.headline" : "Services disponibles", | 185 | "settings.recipes.headline" : "Services disponibles", |
@@ -203,7 +214,7 @@ | |||
203 | "settings.service.form.indirectMessages" : "Afficher le badge des messages pour tous les nouveaux messages", | 214 | "settings.service.form.indirectMessages" : "Afficher le badge des messages pour tous les nouveaux messages", |
204 | "settings.service.form.isMutedInfo" : "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés", | 215 | "settings.service.form.isMutedInfo" : "Lorsque désactivé, tous les sons de notifications ainsi que l'audio sont coupés", |
205 | "settings.service.form.name" : "Nom", | 216 | "settings.service.form.name" : "Nom", |
206 | "settings.service.form.proxy.headline" : "Paramètres Proxy HTTP\/HTTPS", | 217 | "settings.service.form.proxy.headline" : "Paramètres proxy HTTP\/HTTPS", |
207 | "settings.service.form.proxy.host" : "Hôte\/IP du proxy", | 218 | "settings.service.form.proxy.host" : "Hôte\/IP du proxy", |
208 | "settings.service.form.proxy.info" : "Les paramètres de proxy ne seront pas synchronisés avec les serveurs de Franz.", | 219 | "settings.service.form.proxy.info" : "Les paramètres de proxy ne seront pas synchronisés avec les serveurs de Franz.", |
209 | "settings.service.form.proxy.isEnabled" : "Utiliser un proxy", | 220 | "settings.service.form.proxy.isEnabled" : "Utiliser un proxy", |
@@ -213,7 +224,7 @@ | |||
213 | "settings.service.form.proxy.user" : "Utilisateur (facultatif)", | 224 | "settings.service.form.proxy.user" : "Utilisateur (facultatif)", |
214 | "settings.service.form.saveButton" : "Enregistrer le service", | 225 | "settings.service.form.saveButton" : "Enregistrer le service", |
215 | "settings.service.form.tabHosted" : "Hébergé", | 226 | "settings.service.form.tabHosted" : "Hébergé", |
216 | "settings.service.form.tabOnPremise" : "Auto-hébergé âï¸", | 227 | "settings.service.form.tabOnPremise" : "hébergé par soi-même âï¸", |
217 | "settings.service.form.team" : "Équipe", | 228 | "settings.service.form.team" : "Équipe", |
218 | "settings.service.form.useHostedService" : "Utilisez le service hébergé {name}.", | 229 | "settings.service.form.useHostedService" : "Utilisez le service hébergé {name}.", |
219 | "settings.service.form.yourServices" : "Vos services", | 230 | "settings.service.form.yourServices" : "Vos services", |
@@ -221,27 +232,50 @@ | |||
221 | "settings.services.discoverServices" : "Découvrir les services", | 232 | "settings.services.discoverServices" : "Découvrir les services", |
222 | "settings.services.headline" : "Vos services", | 233 | "settings.services.headline" : "Vos services", |
223 | "settings.services.noServicesAdded" : "Vous n'avez pas encore ajouté de services.", | 234 | "settings.services.noServicesAdded" : "Vous n'avez pas encore ajouté de services.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "Impossible de charger vos services", |
225 | "settings.services.tooltip.isDisabled" : "Ce service est désactivé", | 236 | "settings.services.tooltip.isDisabled" : "Ce service est désactivé", |
226 | "settings.services.tooltip.isMuted" : "Tous les sons sont coupés", | 237 | "settings.services.tooltip.isMuted" : "Tous les sons sont coupés", |
227 | "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.", | 238 | "settings.services.tooltip.notificationsDisabled" : "Notifications désactivées.", |
228 | "settings.services.updatedInfo" : "Vos modifications ont été enregistrées", | 239 | "settings.services.updatedInfo" : "Vos modifications ont été enregistrées", |
240 | "settings.team.contentHeadline" : "Franz pour les équipes", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Équipe de travail", | ||
243 | "settings.team.intro" : "Tu peux désormais gérer les abonnements Premium pour autant de collègues, amis ou membres de famille que tu souhaites, à partir d'un seul et même compte.", | ||
244 | "settings.team.manageAction" : "Gère ton équipe sur meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Mise à niveau du compte", | ||
229 | "settings.user.form.accountType.company" : "Entreprise", | 246 | "settings.user.form.accountType.company" : "Entreprise", |
230 | "settings.user.form.accountType.individual" : "Individuel", | 247 | "settings.user.form.accountType.individual" : "Individuel", |
231 | "settings.user.form.accountType.label" : "Type de compte", | 248 | "settings.user.form.accountType.label" : "Type de compte", |
232 | "settings.user.form.accountType.non-profit" : "Non-lucratif", | 249 | "settings.user.form.accountType.non-profit" : "Non-lucratif", |
233 | "settings.user.form.currentPassword" : "Mot de passe actuel", | 250 | "settings.user.form.currentPassword" : "Mot de passe actuel", |
234 | "settings.user.form.email" : "E-mail", | 251 | "settings.user.form.email" : "Email", |
235 | "settings.user.form.firstname" : "Prénom", | 252 | "settings.user.form.firstname" : "Prénom", |
236 | "settings.user.form.lastname" : "Nom", | 253 | "settings.user.form.lastname" : "Nom", |
237 | "settings.user.form.newPassword" : "Nouveau mot de passe", | 254 | "settings.user.form.newPassword" : "Nouveau mot de passe", |
255 | "settings.workspace.add.form.name" : "Nom", | ||
256 | "settings.workspace.add.form.submitButton" : "Créer un espace de travail", | ||
257 | "settings.workspace.form.buttonDelete" : "Effacer l'espace de travail", | ||
258 | "settings.workspace.form.buttonSave" : "Sauvegarder l'espace de travail", | ||
259 | "settings.workspace.form.name" : "Nom", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Tes espaces de travail", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Vos espaces de travails", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Réessayer", | ||
266 | "settings.workspaces.updatedInfo" : "Vos modifications ont été enregistrées", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Ajouter un nouveau service", | 270 | "sidebar.addNewService" : "Ajouter un nouveau service", |
271 | "sidebar.closeWorkspaceDrawer" : "Ouvrir l'espace de travail", | ||
239 | "sidebar.muteApp" : "Désactiver les notifications et les sons", | 272 | "sidebar.muteApp" : "Désactiver les notifications et les sons", |
273 | "sidebar.openWorkspaceDrawer" : "Fermer l'espace de travail", | ||
240 | "sidebar.settings" : "Paramètres", | 274 | "sidebar.settings" : "Paramètres", |
241 | "sidebar.unmuteApp" : "Activer les notifications et les sons", | 275 | "sidebar.unmuteApp" : "Activer les notifications et les sons", |
242 | "signup.company.label" : "Entreprise", | 276 | "signup.company.label" : "Entreprise", |
243 | "signup.email.label" : "Adresse e-mail", | 277 | "signup.email.label" : "Adresse email", |
244 | "signup.emailDuplicate" : "Cette adresse e-mail est déjà utilisée", | 278 | "signup.emailDuplicate" : "Cette adresse email est déjà utilisée", |
245 | "signup.firstname.label" : "Prénom", | 279 | "signup.firstname.label" : "Prénom", |
246 | "signup.headline" : "S'inscrire", | 280 | "signup.headline" : "S'inscrire", |
247 | "signup.lastname.label" : "Nom", | 281 | "signup.lastname.label" : "Nom", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Ajouter des services auto-hébergés comme Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Ajouter des services auto-hébergés comme Mattermost", |
259 | "subscription.features.proxy" : "Support proxy pour les services", | 293 | "subscription.features.proxy" : "Support proxy pour les services", |
260 | "subscription.features.spellchecker" : "Prise en charge du correcteur orthographique", | 294 | "subscription.features.spellchecker" : "Prise en charge du correcteur orthographique", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut", | 296 | "subscription.includedFeatures" : "Le compte payant Supporter Premium Franz inclut", |
262 | "subscription.paymentSessionError" : "Initialisation du paiement impossible", | 297 | "subscription.paymentSessionError" : "Initialisation du paiement impossible", |
263 | "subscription.submit.label" : "Je souhaite aider au développement de Franz", | 298 | "subscription.submit.label" : "Je souhaite aider au développement de Franz", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "Recharger", | 312 | "tabs.item.reload" : "Recharger", |
278 | "validation.email" : "{field}Â n'est pas valide", | 313 | "validation.email" : "{field}Â n'est pas valide", |
279 | "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)", | 314 | "validation.minLength" : "{field} doit contenir au moins {length} caractère(s)", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "Au moins un de ces champs est requis", |
281 | "validation.required" : "{field} est requis", | 316 | "validation.required" : "{field} est requis", |
282 | "validation.url" : "{field} n'est pas une URL valide", | 317 | "validation.url" : "{field} n'est pas une URL valide", |
283 | "welcome.loginButton" : "Se connecter sur son compte", | 318 | "welcome.loginButton" : "Se connecter sur son compte", |
284 | "welcome.signupButton" : "Créer un compte gratuit" | 319 | "welcome.signupButton" : "Créer un compte gratuit", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Tous les services", | ||
322 | "workspaceDrawer.headline" : "Espace de travail", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/ga.json b/src/i18n/locales/ga.json index eb7c04491..3f1e827fb 100644 --- a/src/i18n/locales/ga.json +++ b/src/i18n/locales/ga.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Athlódáil", | 2 | "app.errorHandler.action" : "Athlódáil", |
3 | "app.errorHandler.headline" : "Something went wrong", | 3 | "app.errorHandler.headline" : "Something went wrong", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nà féidir nascadh le seirbhÃsà Franz ar lÃne", | 15 | "global.api.unhealthy" : "Nà féidir nascadh le seirbhÃsà Franz ar lÃne", |
15 | "global.notConnectedToTheInternet" : "NÃl tú nasctha leis an IdirlÃon.", | 16 | "global.notConnectedToTheInternet" : "NÃl tú nasctha leis an IdirlÃon.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Logáil isteach", | 44 | "login.submit.label" : "Logáil isteach", |
44 | "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", | 45 | "login.tokenExpired" : "D'éag do sheisiún, logáil isteach arÃs le do thoil.", |
45 | "menu.app.about" : "Faoi Franz", | 46 | "menu.app.about" : "Faoi Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Cuir Franz i bhfolach", | 48 | "menu.app.hide" : "Cuir Franz i bhfolach", |
47 | "menu.app.hideOthers" : "Folaigh feidhmchláir eile", | 49 | "menu.app.hideOthers" : "Folaigh feidhmchláir eile", |
48 | "menu.app.quit" : "Scoir", | 50 | "menu.app.quit" : "Scoir", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Fuinneog", | 89 | "menu.window" : "Fuinneog", |
88 | "menu.window.close" : "Dún", | 90 | "menu.window.close" : "Dún", |
89 | "menu.window.minimize" : "Ãoslaghdaigh", | 91 | "menu.window.minimize" : "Ãoslaghdaigh", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Gach seirbhÃs", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Seoladh rÃomhphoist", | 97 | "password.email.label" : "Seoladh rÃomhphoist", |
91 | "password.headline" : "Athshocraigh pasfhocal", | 98 | "password.headline" : "Athshocraigh pasfhocal", |
92 | "password.link.login" : "Logáil isteach i do chuntas", | 99 | "password.link.login" : "Logáil isteach i do chuntas", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oró, nà hea!", | 117 | "service.errorHandler.headline" : "Oró, nà hea!", |
111 | "service.errorHandler.message" : "Earráid", | 118 | "service.errorHandler.message" : "Earráid", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Cuir tús", | 121 | "services.getStarted" : "Cuir tús", |
114 | "services.welcome" : "Fáilte go Franz", | 122 | "services.welcome" : "Fáilte go Franz", |
115 | "settings.account.account.editButton" : "Cuir cuntas in eagar", | 123 | "settings.account.account.editButton" : "Cuir cuntas in eagar", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Ginearálta", | 164 | "settings.app.headlineGeneral" : "Ginearálta", |
157 | "settings.app.headlineLanguage" : "Teanga", | 165 | "settings.app.headlineLanguage" : "Teanga", |
158 | "settings.app.headlineUpdates" : "Nuashonruithe", | 166 | "settings.app.headlineUpdates" : "Nuashonruithe", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Nà gá atosú chun athruithe a chur i bhfeidhm.", | 168 | "settings.app.restartRequired" : "Nà gá atosú chun athruithe a chur i bhfeidhm.", |
160 | "settings.app.subheadlineCache" : "Taisce", | 169 | "settings.app.subheadlineCache" : "Taisce", |
161 | "settings.app.translationHelp" : "Cabhraigh linn Franz a aistriú i do theanga.", | 170 | "settings.app.translationHelp" : "Cabhraigh linn Franz a aistriú i do theanga.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Tabhair cuireadh do chairde", | 177 | "settings.navigation.inviteFriends" : "Tabhair cuireadh do chairde", |
169 | "settings.navigation.logout" : "Logáil amach", | 178 | "settings.navigation.logout" : "Logáil amach", |
170 | "settings.navigation.settings" : "Socruithe", | 179 | "settings.navigation.settings" : "Socruithe", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Do sheirbhÃsÃ", | 181 | "settings.navigation.yourServices" : "Do sheirbhÃsÃ", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Gach seirbhÃs", | 183 | "settings.recipes.all" : "Gach seirbhÃs", |
173 | "settings.recipes.dev" : "Forbairt", | 184 | "settings.recipes.dev" : "Forbairt", |
174 | "settings.recipes.headline" : "SeirbhÃsà le fáil", | 185 | "settings.recipes.headline" : "SeirbhÃsà le fáil", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Tachtar gach fuaim", | 237 | "settings.services.tooltip.isMuted" : "Tachtar gach fuaim", |
227 | "settings.services.tooltip.notificationsDisabled" : "Fógraà dhÃchumasaithe", | 238 | "settings.services.tooltip.notificationsDisabled" : "Fógraà dhÃchumasaithe", |
228 | "settings.services.updatedInfo" : "Sábháiltear do chuid athruithe", | 239 | "settings.services.updatedInfo" : "Sábháiltear do chuid athruithe", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Foireann", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Comhlacht", | 246 | "settings.user.form.accountType.company" : "Comhlacht", |
230 | "settings.user.form.accountType.individual" : "Ar leith", | 247 | "settings.user.form.accountType.individual" : "Ar leith", |
231 | "settings.user.form.accountType.label" : "Cineál chuntais", | 248 | "settings.user.form.accountType.label" : "Cineál chuntais", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Céadainm", | 252 | "settings.user.form.firstname" : "Céadainm", |
236 | "settings.user.form.lastname" : "Sloinne", | 253 | "settings.user.form.lastname" : "Sloinne", |
237 | "settings.user.form.newPassword" : "Pasfhocal nua", | 254 | "settings.user.form.newPassword" : "Pasfhocal nua", |
255 | "settings.workspace.add.form.name" : "Ainm", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Ainm", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Atriail", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Cuir seirbhÃs nua leis", | 270 | "sidebar.addNewService" : "Cuir seirbhÃs nua leis", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "DÃchumasaigh fógraà ⊠fuaim", | 272 | "sidebar.muteApp" : "DÃchumasaigh fógraà ⊠fuaim", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Socruithe", | 274 | "sidebar.settings" : "Socruithe", |
241 | "sidebar.unmuteApp" : "Cumasaigh fógraà ⊠fuaim", | 275 | "sidebar.unmuteApp" : "Cumasaigh fógraà ⊠fuaim", |
242 | "signup.company.label" : "Comhlacht", | 276 | "signup.company.label" : "Comhlacht", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhthacadóra Franz san áireamh", | 296 | "subscription.includedFeatures" : "Cuireann Cuntas Phŕeimhthacadóra Franz san áireamh", |
262 | "subscription.paymentSessionError" : "Nà féidir an bhfoirm ÃocaÃochta a lódáil", | 297 | "subscription.paymentSessionError" : "Nà féidir an bhfoirm ÃocaÃochta a lódáil", |
263 | "subscription.submit.label" : "Ba mhaith liom tacaÃocht a thabhairt d'fhorbairt Franz", | 298 | "subscription.submit.label" : "Ba mhaith liom tacaÃocht a thabhairt d'fhorbairt Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "Tá {field} de dhÃth", | 316 | "validation.required" : "Tá {field} de dhÃth", |
282 | "validation.url" : "Nà AAA bhailà é {field}", | 317 | "validation.url" : "Nà AAA bhailà é {field}", |
283 | "welcome.loginButton" : "Logáil isteach i do chuntas", | 318 | "welcome.loginButton" : "Logáil isteach i do chuntas", |
284 | "welcome.signupButton" : "Cruthaigh cuntas nua" | 319 | "welcome.signupButton" : "Cruthaigh cuntas nua", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Gach seirbhÃs", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/hr.json b/src/i18n/locales/hr.json index 95920c4ce..468238166 100644 --- a/src/i18n/locales/hr.json +++ b/src/i18n/locales/hr.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Ponovno uÄitavanje", | 2 | "app.errorHandler.action" : "Ponovno uÄitavanje", |
3 | "app.errorHandler.headline" : "Something went wrong", | 3 | "app.errorHandler.headline" : "Something went wrong", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", | 15 | "global.api.unhealthy" : "Nije se moguće povezati na Francove on-line servise. ", |
15 | "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", | 16 | "global.notConnectedToTheInternet" : "Sada ste povezani s internetom. ", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Prijavite se", | 44 | "login.submit.label" : "Prijavite se", |
44 | "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", | 45 | "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", |
45 | "menu.app.about" : "O aplikaciji", | 46 | "menu.app.about" : "O aplikaciji", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Hide", | 48 | "menu.app.hide" : "Hide", |
47 | "menu.app.hideOthers" : "Hide Others", | 49 | "menu.app.hideOthers" : "Hide Others", |
48 | "menu.app.quit" : "Quit", | 50 | "menu.app.quit" : "Quit", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Window", | 89 | "menu.window" : "Window", |
88 | "menu.window.close" : "Close", | 90 | "menu.window.close" : "Close", |
89 | "menu.window.minimize" : "Minimize", | 91 | "menu.window.minimize" : "Minimize", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Sve usluge", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Vaša e-adresa", | 97 | "password.email.label" : "Vaša e-adresa", |
91 | "password.headline" : "Stvorite novu zaporku", | 98 | "password.headline" : "Stvorite novu zaporku", |
92 | "password.link.login" : "Prijavite se na VaÅ¡ raÄun", | 99 | "password.link.login" : "Prijavite se na VaÅ¡ raÄun", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "O, ne! ", | 117 | "service.errorHandler.headline" : "O, ne! ", |
111 | "service.errorHandler.message" : "Greška", | 118 | "service.errorHandler.message" : "Greška", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "ZapoÄnimo!", | 121 | "services.getStarted" : "ZapoÄnimo!", |
114 | "services.welcome" : "Dobrodošli u Franz", | 122 | "services.welcome" : "Dobrodošli u Franz", |
115 | "settings.account.account.editButton" : "Uredi raÄun", | 123 | "settings.account.account.editButton" : "Uredi raÄun", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Općenito", | 164 | "settings.app.headlineGeneral" : "Općenito", |
157 | "settings.app.headlineLanguage" : "Jezik", | 165 | "settings.app.headlineLanguage" : "Jezik", |
158 | "settings.app.headlineUpdates" : "Nadogradnje", | 166 | "settings.app.headlineUpdates" : "Nadogradnje", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni zagon", | 168 | "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni zagon", |
160 | "settings.app.subheadlineCache" : "Predmemorija", | 169 | "settings.app.subheadlineCache" : "Predmemorija", |
161 | "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", | 170 | "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Pozovi prijatelje", | 177 | "settings.navigation.inviteFriends" : "Pozovi prijatelje", |
169 | "settings.navigation.logout" : "Odjava", | 178 | "settings.navigation.logout" : "Odjava", |
170 | "settings.navigation.settings" : "Postavke", | 179 | "settings.navigation.settings" : "Postavke", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Vaše usluge", | 181 | "settings.navigation.yourServices" : "Vaše usluge", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Sve usluge", | 183 | "settings.recipes.all" : "Sve usluge", |
173 | "settings.recipes.dev" : "Razvoj", | 184 | "settings.recipes.dev" : "Razvoj", |
174 | "settings.recipes.headline" : "Dostupne usluge", | 185 | "settings.recipes.headline" : "Dostupne usluge", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ", | 237 | "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni. ", |
227 | "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", | 238 | "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", |
228 | "settings.services.updatedInfo" : "Vaše promjene su pohranjene. ", | 239 | "settings.services.updatedInfo" : "Vaše promjene su pohranjene. ", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Tim", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Tvrtka", | 246 | "settings.user.form.accountType.company" : "Tvrtka", |
230 | "settings.user.form.accountType.individual" : "Pojedinac", | 247 | "settings.user.form.accountType.individual" : "Pojedinac", |
231 | "settings.user.form.accountType.label" : "Tip raÄuna", | 248 | "settings.user.form.accountType.label" : "Tip raÄuna", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Ime", | 252 | "settings.user.form.firstname" : "Ime", |
236 | "settings.user.form.lastname" : "Prezime", | 253 | "settings.user.form.lastname" : "Prezime", |
237 | "settings.user.form.newPassword" : "Nova lozinka", | 254 | "settings.user.form.newPassword" : "Nova lozinka", |
255 | "settings.workspace.add.form.name" : "Ime", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Ime", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Dodajte novu uslugu", | 270 | "sidebar.addNewService" : "Dodajte novu uslugu", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Ugasi obavijesti i zvuk", | 272 | "sidebar.muteApp" : "Ugasi obavijesti i zvuk", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Postavke", | 274 | "sidebar.settings" : "Postavke", |
241 | "sidebar.unmuteApp" : "Omogući obavijesti i zvuk", | 275 | "sidebar.unmuteApp" : "Omogući obavijesti i zvuk", |
242 | "signup.company.label" : "Tvrtka", | 276 | "signup.company.label" : "Tvrtka", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće: ", | 296 | "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće: ", |
262 | "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", | 297 | "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", |
263 | "subscription.submit.label" : "Želim da podržim razvoj Franca. ", | 298 | "subscription.submit.label" : "Želim da podržim razvoj Franca. ", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} is required", | 316 | "validation.required" : "{field} is required", |
282 | "validation.url" : "{field} is not a valid URL", | 317 | "validation.url" : "{field} is not a valid URL", |
283 | "welcome.loginButton" : "Prijavite se na raÄun", | 318 | "welcome.loginButton" : "Prijavite se na raÄun", |
284 | "welcome.signupButton" : "Stvorite novi korisniÄki raÄun" | 319 | "welcome.signupButton" : "Stvorite novi korisniÄki raÄun", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Sve usluge", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/hu.json b/src/i18n/locales/hu.json index bce9a368e..b28dcb17a 100644 --- a/src/i18n/locales/hu.json +++ b/src/i18n/locales/hu.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Újratöltés", | 2 | "app.errorHandler.action" : "Újratöltés", |
3 | "app.errorHandler.headline" : "Valami nem jött össze", | 3 | "app.errorHandler.headline" : "Valami nem jött össze", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Szerezz egy Franz Támogatói Liszencet", | 5 | "feature.delayApp.action" : "Szerezz egy Franz Támogatói Liszencet", |
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.headline" : "Kérjük vásárolj egy Franc Támogatói Liszencet a várakozás átugrásához", |
6 | "feature.delayApp.text" : "A Franz továbblép {seconds} másodperc múlva.", | 7 | "feature.delayApp.text" : "A Franz továbblép {seconds} másodperc múlva.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", | 15 | "global.api.unhealthy" : "Nem lehet csatlakozni a Franz online szolgáltatáshoz", |
15 | "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", | 16 | "global.notConnectedToTheInternet" : "Nincs hálózati kapcsolat.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Bejelentkezés", | 44 | "login.submit.label" : "Bejelentkezés", |
44 | "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.", | 45 | "login.tokenExpired" : "A munkamenet lejárt, kérlek lépj be újra.", |
45 | "menu.app.about" : "Névjegy", | 46 | "menu.app.about" : "Névjegy", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Elrejt", | 48 | "menu.app.hide" : "Elrejt", |
47 | "menu.app.hideOthers" : "Többi elrejtése", | 49 | "menu.app.hideOthers" : "Többi elrejtése", |
48 | "menu.app.quit" : "Kilépés", | 50 | "menu.app.quit" : "Kilépés", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Ablak", | 89 | "menu.window" : "Ablak", |
88 | "menu.window.close" : "Bezárás", | 90 | "menu.window.close" : "Bezárás", |
89 | "menu.window.minimize" : "Tálcára", | 91 | "menu.window.minimize" : "Tálcára", |
92 | "menu.workspaces" : "Munkaterületek", | ||
93 | "menu.workspaces.addNewWorkspace" : "Új munkaterület...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Munkaterület panel bezárása", | ||
95 | "menu.workspaces.defaultWorkspace" : "Összes szolgáltatás", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Munkaterület panel kinyitása", | ||
90 | "password.email.label" : "Email cÃm", | 97 | "password.email.label" : "Email cÃm", |
91 | "password.headline" : "Jelszó visszaállÃtása", | 98 | "password.headline" : "Jelszó visszaállÃtása", |
92 | "password.link.login" : "Jelentkezz be a fiókodba", | 99 | "password.link.login" : "Jelentkezz be a fiókodba", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Jajj ne!", | 117 | "service.errorHandler.headline" : "Jajj ne!", |
111 | "service.errorHandler.message" : "Hiba", | 118 | "service.errorHandler.message" : "Hiba", |
112 | "service.errorHandler.text" : "{name} nem tudott betöltődni.", | 119 | "service.errorHandler.text" : "{name} nem tudott betöltődni.", |
120 | "service.webviewLoader.loading" : "Betöltés", | ||
113 | "services.getStarted" : "Kezdj hozzá", | 121 | "services.getStarted" : "Kezdj hozzá", |
114 | "services.welcome" : "Üdvözöl a Franz", | 122 | "services.welcome" : "Üdvözöl a Franz", |
115 | "settings.account.account.editButton" : "Fiók szerkesztése", | 123 | "settings.account.account.editButton" : "Fiók szerkesztése", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Ãltalános", | 164 | "settings.app.headlineGeneral" : "Ãltalános", |
157 | "settings.app.headlineLanguage" : "Nyelv", | 165 | "settings.app.headlineLanguage" : "Nyelv", |
158 | "settings.app.headlineUpdates" : "FrissÃtések", | 166 | "settings.app.headlineUpdates" : "FrissÃtések", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "ÚjraindÃtást igénylÅ‘ módosÃtás", | 168 | "settings.app.restartRequired" : "ÚjraindÃtást igénylÅ‘ módosÃtás", |
160 | "settings.app.subheadlineCache" : "GyorsÃtótár", | 169 | "settings.app.subheadlineCache" : "GyorsÃtótár", |
161 | "settings.app.translationHelp" : "SegÃts nekünk a Franz-ot lefordÃtani a nyelvedre.", | 170 | "settings.app.translationHelp" : "SegÃts nekünk a Franz-ot lefordÃtani a nyelvedre.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Barát meghÃvása", | 177 | "settings.navigation.inviteFriends" : "Barát meghÃvása", |
169 | "settings.navigation.logout" : "Kijelentkezés", | 178 | "settings.navigation.logout" : "Kijelentkezés", |
170 | "settings.navigation.settings" : "BeállÃtások", | 179 | "settings.navigation.settings" : "BeállÃtások", |
180 | "settings.navigation.team" : "Csapat kezelése", | ||
171 | "settings.navigation.yourServices" : "Szolgáltatásaid", | 181 | "settings.navigation.yourServices" : "Szolgáltatásaid", |
182 | "settings.navigation.yourWorkspaces" : "Munkaterületeid", | ||
172 | "settings.recipes.all" : "Összes szolgáltatás", | 183 | "settings.recipes.all" : "Összes szolgáltatás", |
173 | "settings.recipes.dev" : "Fejlesztés", | 184 | "settings.recipes.dev" : "Fejlesztés", |
174 | "settings.recipes.headline" : "Elérhető szolgáltatások", | 185 | "settings.recipes.headline" : "Elérhető szolgáltatások", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Minden hang lenémÃtva", | 237 | "settings.services.tooltip.isMuted" : "Minden hang lenémÃtva", |
227 | "settings.services.tooltip.notificationsDisabled" : "ÉrtesÃtések letiltva", | 238 | "settings.services.tooltip.notificationsDisabled" : "ÉrtesÃtések letiltva", |
228 | "settings.services.updatedInfo" : "A módosÃtásokat elmentettük", | 239 | "settings.services.updatedInfo" : "A módosÃtásokat elmentettük", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Csapat", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Cég", | 246 | "settings.user.form.accountType.company" : "Cég", |
230 | "settings.user.form.accountType.individual" : "Egyén", | 247 | "settings.user.form.accountType.individual" : "Egyén", |
231 | "settings.user.form.accountType.label" : "Fiók tÃpusa", | 248 | "settings.user.form.accountType.label" : "Fiók tÃpusa", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Keresztnév", | 252 | "settings.user.form.firstname" : "Keresztnév", |
236 | "settings.user.form.lastname" : "Vezetéknév", | 253 | "settings.user.form.lastname" : "Vezetéknév", |
237 | "settings.user.form.newPassword" : "Új jelszó", | 254 | "settings.user.form.newPassword" : "Új jelszó", |
255 | "settings.workspace.add.form.name" : "Név", | ||
256 | "settings.workspace.add.form.submitButton" : "Új munkaterület", | ||
257 | "settings.workspace.form.buttonDelete" : "Munkaterület törlése", | ||
258 | "settings.workspace.form.buttonSave" : "Munkaterület mentése", | ||
259 | "settings.workspace.form.name" : "Név", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Szolgáltatások ezen a Munkaterületen", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Munkaterületeid", | ||
262 | "settings.workspaces.deletedInfo" : "Munkaterület törölve", | ||
263 | "settings.workspaces.headline" : "Munkaterületeid", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "Még nem hoztál létre munkaterületeket.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Próbáld újra", | ||
266 | "settings.workspaces.updatedInfo" : "A módosÃtásokat elmentettük", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "A kevesebb több: Bemutatjuk a Franz Munkaterületeket", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "A Franz Munkaterületek lehetÅ‘vé teszik, hogy összpontosÃts a jelenleg fontos dolgokra. ÃllÃtsd be a különbözÅ‘ szolgáltatáskészleteket és könnyedén válthatsz közöttük bármikor. Te döntöd el, hogy mely szolgáltatásokra van szükséged, mikor és hol, Ãgy segÃthetünk abban, hogy a teljesÃtményed csúcsán maradhass, vagy ha csak akarod, egyszerűen kikapcsold a munkával kapcsolatos dolgokat.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Nem sikerült betölteni a munkaterületeket", | ||
238 | "sidebar.addNewService" : "Szolgáltatás hozzáadása", | 270 | "sidebar.addNewService" : "Szolgáltatás hozzáadása", |
271 | "sidebar.closeWorkspaceDrawer" : "Munkaterület panel bezárása", | ||
239 | "sidebar.muteApp" : "ÉrtesÃtések és hangok letiltása", | 272 | "sidebar.muteApp" : "ÉrtesÃtések és hangok letiltása", |
273 | "sidebar.openWorkspaceDrawer" : "Munkaterület panel megnyitása", | ||
240 | "sidebar.settings" : "BeállÃtások", | 274 | "sidebar.settings" : "BeállÃtások", |
241 | "sidebar.unmuteApp" : "ÉrtesÃtések és hangok engedélyezése", | 275 | "sidebar.unmuteApp" : "ÉrtesÃtések és hangok engedélyezése", |
242 | "signup.company.label" : "Cég", | 276 | "signup.company.label" : "Cég", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Saját kiszolgálós szolgáltatások hozzáadása, pl.: Mattermost", |
259 | "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz", | 293 | "subscription.features.proxy" : "Proxy támogatás a szolgáltatásokhoz", |
260 | "subscription.features.spellchecker" : "Támogatás a HelyesÃrás-ellenÅ‘rzÅ‘höz", | 294 | "subscription.features.spellchecker" : "Támogatás a HelyesÃrás-ellenÅ‘rzÅ‘höz", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", | 296 | "subscription.includedFeatures" : "Az előfizetett Franz Prémium Támogató Fiók tartalmazza", |
262 | "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", | 297 | "subscription.paymentSessionError" : "Nem sikerült a fizetési felületet betölteni", |
263 | "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", | 298 | "subscription.submit.label" : "Szeretném támogatni a Franz fejlesztését", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} kitöltése kötelező", | 316 | "validation.required" : "{field} kitöltése kötelező", |
282 | "validation.url" : "{field} nem érvényes URL", | 317 | "validation.url" : "{field} nem érvényes URL", |
283 | "welcome.loginButton" : "Jelentkezz be a fiókodba", | 318 | "welcome.loginButton" : "Jelentkezz be a fiókodba", |
284 | "welcome.signupButton" : "Új fiók létrehozása" | 319 | "welcome.signupButton" : "Új fiók létrehozása", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Összes szolgáltatás", | ||
322 | "workspaceDrawer.headline" : "Munkaterületek", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "szerkeszt", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "KészÃtsd el az elsÅ‘ munkaterületedet", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Prémium funkció", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Prémium fiók reaktiválása", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Munkaterület beállÃtások szerkesztése", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/id.json b/src/i18n/locales/id.json index 73271dceb..e7a46e5e9 100644 --- a/src/i18n/locales/id.json +++ b/src/i18n/locales/id.json | |||
@@ -1,27 +1,28 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Muat Ulang", | 2 | "app.errorHandler.action" : "Muat Ulang", |
3 | "app.errorHandler.headline" : "Terjadi kesalahan", | 3 | "app.errorHandler.headline" : "Terjadi kesalahan", |
4 | "feature.delayApp.action" : "Dapatkan Franz Supporter License", | 4 | "feature.announcements.changelog.headline" : "Perubahan dalam Franz {version}", |
5 | "feature.delayApp.headline" : "Beli Franz Supporter License agar tidak perlu menunggu", | 5 | "feature.delayApp.action" : "Dapatkan Lisensi Pendukung Franz", |
6 | "feature.delayApp.headline" : "Beli Lisensi Pendukung Franz agar tidak perlu menunggu", | ||
6 | "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", | 7 | "feature.delayApp.text" : "Franz akan melanjutkan dalam {seconds} detik.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Kirim sebagai email", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Bagikan di Facebook", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Bagikan di Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "Franz lebih baik bersama!", |
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.email" : "Saya telah menambahkan layanan {count} ke Franz! Dapatkan aplikasi gratis untuk WhatsApp, Messenger, Slack, Skype dan co di 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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Beri tahu teman dan kolega Anda betapa hebatnya Franz dan bantu kami menyebarkan berita.", |
14 | "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz", | 15 | "global.api.unhealthy" : "Tidak dapat tersambung ke layanan Franz", |
15 | "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", | 16 | "global.notConnectedToTheInternet" : "Anda tidak tersambung ke internet.", |
16 | "global.spellchecker.useDefault" : "Gunakan Bawaan Sistem ({default})", | 17 | "global.spellchecker.useDefault" : "Gunakan Bawaan Sistem ({default})", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "Deteksi bahasa secara otomatis", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "Otomatis", |
19 | "global.spellchecking.language" : "Periksa ejaan", | 20 | "global.spellchecking.language" : "Periksa ejaan", |
20 | "import.headline" : "Impor layanan Franz 4 Anda", | 21 | "import.headline" : "Impor layanan Franz 4 Anda", |
21 | "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", | 22 | "import.notSupportedHeadline" : "Layanan belum didukung di Franz 5", |
22 | "import.skip.label" : "Saya ingin menambahkan layanan secara manual", | 23 | "import.skip.label" : "Saya ingin menambahkan layanan secara manual", |
23 | "import.submit.label" : "Impor layanan", | 24 | "import.submit.label" : "Impor layanan", |
24 | "infobar.buttonChangelog" : "Apa yang baru?", | 25 | "infobar.buttonChangelog" : "Yang baru", |
25 | "infobar.buttonInstallUpdate" : "Mulai ulang & instal pembaruan", | 26 | "infobar.buttonInstallUpdate" : "Mulai ulang & instal pembaruan", |
26 | "infobar.buttonReloadServices" : "Muat ulang layanan", | 27 | "infobar.buttonReloadServices" : "Muat ulang layanan", |
27 | "infobar.requiredRequestsFailed" : "Gagal memuat layanan dan informasi pengguna", | 28 | "infobar.requiredRequestsFailed" : "Gagal memuat layanan dan informasi pengguna", |
@@ -30,12 +31,12 @@ | |||
30 | "invite.email.label" : "Alamat email", | 31 | "invite.email.label" : "Alamat email", |
31 | "invite.headline.friends" : "Undang 3 teman atau kolega Anda", | 32 | "invite.headline.friends" : "Undang 3 teman atau kolega Anda", |
32 | "invite.name.label" : "Nama", | 33 | "invite.name.label" : "Nama", |
33 | "invite.skip.label" : "Nanti saja", | 34 | "invite.skip.label" : "Saya ingin melakukan ini nanti", |
34 | "invite.submit.label" : "Kirim undangan", | 35 | "invite.submit.label" : "Kirim undangan", |
35 | "invite.successInfo" : "Undangan berhasil dikirim", | 36 | "invite.successInfo" : "Undangan berhasil dikirim", |
36 | "login.email.label" : "Alamat email", | 37 | "login.email.label" : "Alamat email", |
37 | "login.headline" : "Masuk", | 38 | "login.headline" : "Masuk", |
38 | "login.invalidCredentials" : "Email atau sandi salah", | 39 | "login.invalidCredentials" : "Email atau kata sandi tidak valid", |
39 | "login.link.password" : "Setel ulang sandi", | 40 | "login.link.password" : "Setel ulang sandi", |
40 | "login.link.signup" : "Buat akun gratis", | 41 | "login.link.signup" : "Buat akun gratis", |
41 | "login.password.label" : "Sandi", | 42 | "login.password.label" : "Sandi", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Masuk", | 44 | "login.submit.label" : "Masuk", |
44 | "login.tokenExpired" : "Sesi Anda telah kedaluwarsa, silakan masuk kembali.", | 45 | "login.tokenExpired" : "Sesi Anda telah kedaluwarsa, silakan masuk kembali.", |
45 | "menu.app.about" : "Tentang Franz", | 46 | "menu.app.about" : "Tentang Franz", |
47 | "menu.app.announcement" : "Yang baru", | ||
46 | "menu.app.hide" : "Sembunyikan", | 48 | "menu.app.hide" : "Sembunyikan", |
47 | "menu.app.hideOthers" : "Sembunyikan Lainnya", | 49 | "menu.app.hideOthers" : "Sembunyikan Lainnya", |
48 | "menu.app.quit" : "Keluar", | 50 | "menu.app.quit" : "Keluar", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Dukungan", | 72 | "menu.help.support" : "Dukungan", |
71 | "menu.help.tos" : "Ketentuan Layanan", | 73 | "menu.help.tos" : "Ketentuan Layanan", |
72 | "menu.services" : "Layanan", | 74 | "menu.services" : "Layanan", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Aktifkan layanan sebelumnya", |
74 | "menu.services.addNewService" : "Tambahkan Layanan Baru...", | 76 | "menu.services.addNewService" : "Tambahkan Layanan Baru...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Aktifkan layanan berikutnya", |
76 | "menu.view" : "Tampilan", | 78 | "menu.view" : "Tampilan", |
77 | "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh", | 79 | "menu.view.enterFullScreen" : "Masuk ke Mode Layar Penuh", |
78 | "menu.view.exitFullScreen" : "Keluar dari Layar Penuh", | 80 | "menu.view.exitFullScreen" : "Keluar dari Layar Penuh", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Jendela", | 89 | "menu.window" : "Jendela", |
88 | "menu.window.close" : "Tutup", | 90 | "menu.window.close" : "Tutup", |
89 | "menu.window.minimize" : "Minimalkan", | 91 | "menu.window.minimize" : "Minimalkan", |
92 | "menu.workspaces" : "Ruang kerja", | ||
93 | "menu.workspaces.addNewWorkspace" : "Tambah Ruang Kerja Baru...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Tutup laci ruang kerja", | ||
95 | "menu.workspaces.defaultWorkspace" : "Semua layanan", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Buka laci ruang kerja", | ||
90 | "password.email.label" : "Alamat email", | 97 | "password.email.label" : "Alamat email", |
91 | "password.headline" : "Setel ulang sandi", | 98 | "password.headline" : "Setel ulang sandi", |
92 | "password.link.login" : "Masuk ke akun Anda", | 99 | "password.link.login" : "Masuk ke akun Anda", |
@@ -110,14 +117,15 @@ | |||
110 | "service.errorHandler.headline" : "Oh tidak!", | 117 | "service.errorHandler.headline" : "Oh tidak!", |
111 | "service.errorHandler.message" : "Kesalahan", | 118 | "service.errorHandler.message" : "Kesalahan", |
112 | "service.errorHandler.text" : "{name} gagal dimuat", | 119 | "service.errorHandler.text" : "{name} gagal dimuat", |
113 | "services.getStarted" : "Ayo mulai!", | 120 | "service.webviewLoader.loading" : "Memuat", |
121 | "services.getStarted" : "Memulai", | ||
114 | "services.welcome" : "Selamat datang di Franz", | 122 | "services.welcome" : "Selamat datang di Franz", |
115 | "settings.account.account.editButton" : "Edit akun", | 123 | "settings.account.account.editButton" : "Edit akun", |
116 | "settings.account.accountType.basic" : "Akun Dasar", | 124 | "settings.account.accountType.basic" : "Akun Dasar", |
117 | "settings.account.accountType.premium" : "Akun Pendukung Premium", | 125 | "settings.account.accountType.premium" : "Akun Pendukung Premium", |
118 | "settings.account.buttonSave" : "Perbarui profil", | 126 | "settings.account.buttonSave" : "Perbarui profil", |
119 | "settings.account.deleteAccount" : "Hapus akun", | 127 | "settings.account.deleteAccount" : "Hapus akun", |
120 | "settings.account.deleteEmailSent" : "Anda akan menerima email yang berisi tautan untuk melakukan konfirmasi penghapusan akun. Akun dan data Anda tidak bisa dipulihkan!", | 128 | "settings.account.deleteEmailSent" : "Anda menerima email dengan tautan untuk mengonfirmasi penghapusan akun. Akun dan data Anda tidak bisa dipulihkan!", |
121 | "settings.account.deleteInfo" : "Jika Anda tidak membutuhkan akun Franz lagi, Anda bisa menghapus akun dan semua data terkait di sini.", | 129 | "settings.account.deleteInfo" : "Jika Anda tidak membutuhkan akun Franz lagi, Anda bisa menghapus akun dan semua data terkait di sini.", |
122 | "settings.account.headline" : "Akun", | 130 | "settings.account.headline" : "Akun", |
123 | "settings.account.headlineAccount" : "Informasi akun", | 131 | "settings.account.headlineAccount" : "Informasi akun", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Umum", | 164 | "settings.app.headlineGeneral" : "Umum", |
157 | "settings.app.headlineLanguage" : "Bahasa", | 165 | "settings.app.headlineLanguage" : "Bahasa", |
158 | "settings.app.headlineUpdates" : "Versi Baru", | 166 | "settings.app.headlineUpdates" : "Versi Baru", |
167 | "settings.app.languageDisclaimer" : "Penerjemahan resmi dilakukan untuk Bahasa Inggris dan Jerman. Bahasa lainnya merupakan penerjemahan oleh komunitas.", | ||
159 | "settings.app.restartRequired" : "Perubahan membutuhkan mulai ulang", | 168 | "settings.app.restartRequired" : "Perubahan membutuhkan mulai ulang", |
160 | "settings.app.subheadlineCache" : "Singgahan", | 169 | "settings.app.subheadlineCache" : "Singgahan", |
161 | "settings.app.translationHelp" : "Bantu kami menerjemahkan Franz ke bahasa Anda.", | 170 | "settings.app.translationHelp" : "Bantu kami menerjemahkan Franz ke bahasa Anda.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Undang Teman", | 177 | "settings.navigation.inviteFriends" : "Undang Teman", |
169 | "settings.navigation.logout" : "Keluar", | 178 | "settings.navigation.logout" : "Keluar", |
170 | "settings.navigation.settings" : "Pengaturan", | 179 | "settings.navigation.settings" : "Pengaturan", |
180 | "settings.navigation.team" : "Kelola Tim", | ||
171 | "settings.navigation.yourServices" : "Layanan Anda", | 181 | "settings.navigation.yourServices" : "Layanan Anda", |
182 | "settings.navigation.yourWorkspaces" : "Ruang kerja Anda", | ||
172 | "settings.recipes.all" : "Semua layanan", | 183 | "settings.recipes.all" : "Semua layanan", |
173 | "settings.recipes.dev" : "Pengembangan", | 184 | "settings.recipes.dev" : "Pengembangan", |
174 | "settings.recipes.headline" : "Layanan tersedia", | 185 | "settings.recipes.headline" : "Layanan tersedia", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "Temukan layanan", | 232 | "settings.services.discoverServices" : "Temukan layanan", |
222 | "settings.services.headline" : "Layanan Anda", | 233 | "settings.services.headline" : "Layanan Anda", |
223 | "settings.services.noServicesAdded" : "Anda belum menambahkan layanan apa pun.", | 234 | "settings.services.noServicesAdded" : "Anda belum menambahkan layanan apa pun.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "Tidak dapat memuat layanan Anda", |
225 | "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", | 236 | "settings.services.tooltip.isDisabled" : "Layanan dinonaktifkan", |
226 | "settings.services.tooltip.isMuted" : "Semua suara dibisukan", | 237 | "settings.services.tooltip.isMuted" : "Semua suara dibisukan", |
227 | "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", | 238 | "settings.services.tooltip.notificationsDisabled" : "Pemberitahuan dinonaktifkan", |
228 | "settings.services.updatedInfo" : "Perubahan telah disimpan", | 239 | "settings.services.updatedInfo" : "Perubahan telah disimpan", |
240 | "settings.team.contentHeadline" : "Franz untuk Tim", | ||
241 | "settings.team.copy" : "Franz untuk Tim menyediakan opsi untuk mengundang rekan kerja ke tim Anda dengan mengirimkan undangan email dan mengelola langganan mereka pada preferensi akun Anda. Jangan habiskan waktu Anda menyiapkan langganan bagi masing-masing anggota tim, lupakan berbagai faktur dan periode penagihan - satu tim untuk semua!", | ||
242 | "settings.team.headline" : "Tim", | ||
243 | "settings.team.intro" : "Anda dan tim Anda menggunakan Franz? Kini Anda bisa mengelola langganan Premium untuk semua rekan kerja, teman, atau anggota keluar sebanyak yang Anda inginkan, semuanya cukup dari satu akun.", | ||
244 | "settings.team.manageAction" : "Kelola Tim Anda di meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Tingkatkan Akun Anda", | ||
229 | "settings.user.form.accountType.company" : "Perusahaan", | 246 | "settings.user.form.accountType.company" : "Perusahaan", |
230 | "settings.user.form.accountType.individual" : "Pribadi", | 247 | "settings.user.form.accountType.individual" : "Pribadi", |
231 | "settings.user.form.accountType.label" : "Jenis akun", | 248 | "settings.user.form.accountType.label" : "Jenis akun", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Nama Depan", | 252 | "settings.user.form.firstname" : "Nama Depan", |
236 | "settings.user.form.lastname" : "Nama Belakang", | 253 | "settings.user.form.lastname" : "Nama Belakang", |
237 | "settings.user.form.newPassword" : "Sandi baru", | 254 | "settings.user.form.newPassword" : "Sandi baru", |
255 | "settings.workspace.add.form.name" : "Nama", | ||
256 | "settings.workspace.add.form.submitButton" : "Buat ruang kerja", | ||
257 | "settings.workspace.form.buttonDelete" : "Hapus ruang kerja", | ||
258 | "settings.workspace.form.buttonSave" : "Simpan ruang kerja", | ||
259 | "settings.workspace.form.name" : "Nama", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Layanan dalam Ruang Kerja ini", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Ruang kerja Anda", | ||
262 | "settings.workspaces.deletedInfo" : "Ruang kerja telah dihapus", | ||
263 | "settings.workspaces.headline" : "Ruang kerja Anda", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "Anda belum menambahkan ruang kerja.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Coba lagi", | ||
266 | "settings.workspaces.updatedInfo" : "Perubahan Anda telah disimpan", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Sedikit Namun Banyak: Memperkenalkan Ruang Kerja Franz", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Ruang Kerja Franz dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain. Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Tidak dapat memuat ruang kerja Anda", | ||
238 | "sidebar.addNewService" : "Tambahkan layanan baru", | 270 | "sidebar.addNewService" : "Tambahkan layanan baru", |
271 | "sidebar.closeWorkspaceDrawer" : "Tutup laci ruang kerja", | ||
239 | "sidebar.muteApp" : "Nonaktifkan pemberitahuan & audio", | 272 | "sidebar.muteApp" : "Nonaktifkan pemberitahuan & audio", |
273 | "sidebar.openWorkspaceDrawer" : "Buka laci ruang kerja", | ||
240 | "sidebar.settings" : "Pengaturan", | 274 | "sidebar.settings" : "Pengaturan", |
241 | "sidebar.unmuteApp" : "Aktifkan pemberitahuan", | 275 | "sidebar.unmuteApp" : "Aktifkan pemberitahuan", |
242 | "signup.company.label" : "Perusahaan", | 276 | "signup.company.label" : "Perusahaan", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Integrasi layanan hosted, misalnya Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Integrasi layanan hosted, misalnya Mattermost", |
259 | "subscription.features.proxy" : "Dukungan proksi untuk layanan", | 293 | "subscription.features.proxy" : "Dukungan proksi untuk layanan", |
260 | "subscription.features.spellchecker" : "Dukungan pengecek ejaan", | 294 | "subscription.features.spellchecker" : "Dukungan pengecek ejaan", |
295 | "subscription.features.workspaces" : "Kelola layanan Anda dalam ruang kerja", | ||
261 | "subscription.includedFeatures" : "Franz Premium Supporter Account berbayar menyertakan", | 296 | "subscription.includedFeatures" : "Franz Premium Supporter Account berbayar menyertakan", |
262 | "subscription.paymentSessionError" : "Tidak bisa menginisialisasi formulir pembayaran", | 297 | "subscription.paymentSessionError" : "Tidak bisa menginisialisasi formulir pembayaran", |
263 | "subscription.submit.label" : "Saya ingin mendukung pengembangan Franz", | 298 | "subscription.submit.label" : "Saya ingin mendukung pengembangan Franz", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "Muat Ulang", | 312 | "tabs.item.reload" : "Muat Ulang", |
278 | "validation.email" : "{field} tidak benar", | 313 | "validation.email" : "{field} tidak benar", |
279 | "validation.minLength" : "{field} setidaknya harus {length} karakter", | 314 | "validation.minLength" : "{field} setidaknya harus {length} karakter", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "Setidaknya diperlukan satu", |
281 | "validation.required" : "{field} wajib diisi", | 316 | "validation.required" : "{field} wajib diisi", |
282 | "validation.url" : "{field} bukan URL yang benar", | 317 | "validation.url" : "{field} bukan URL yang benar", |
283 | "welcome.loginButton" : "Masuk ke akun Anda", | 318 | "welcome.loginButton" : "Masuk ke akun Anda", |
284 | "welcome.signupButton" : "Buat akun gratis" | 319 | "welcome.signupButton" : "Buat akun gratis", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Tambah ruang kerja baru", | ||
321 | "workspaceDrawer.allServices" : "Semua layanan", | ||
322 | "workspaceDrawer.headline" : "Ruang kerja", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "Belum ada layanan yang ditambahkan", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Buat ruang kerja pertama Anda", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Fitur premium", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktifkan ulang akun premium", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Ruang Kerja Franz dapat digunakan untuk tetap fokus pada hal penting saat ini. Siapkan sekelompok layanan yang berbeda dan dengan mudah beralih ke yang lain.<\/p><p>Anda yang memutuskan layanan mana yang Anda perlukan dan kapan, agar kami bisa membantu Anda tetap berada di garis depan - atau dengan mudah mengakhiri hari kerja kapan saja Anda inginkan.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit setelan ruang kerja", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Beralih ke" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/it.json b/src/i18n/locales/it.json index 71150483c..c12641e36 100644 --- a/src/i18n/locales/it.json +++ b/src/i18n/locales/it.json | |||
@@ -1,21 +1,22 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Ricarica", | 2 | "app.errorHandler.action" : "Ricarica", |
3 | "app.errorHandler.headline" : "Qualcosa è andato storto", | 3 | "app.errorHandler.headline" : "Qualcosa è andato storto", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Ricevi una Licenza Supporter di Franz", | 5 | "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", | 6 | "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.", | 7 | "feature.delayApp.text" : "Franz continuerà a funzionare tra {seconds} secondi.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Manda come email", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Condividi su Facebook", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Condividi su Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "Franze è migliore insieme!", |
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.email" : "Ho aggiunto {count} nuovi servizi a Franz! Scarica ora l'app gratuita per WhatsApp, Messenger, Slack, Skype e altri all'indirizzo 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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Condividi con i tuoi amici e colleghi quanto Franz è fantastico e aiutaci a diffondere la parola.", |
14 | "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", | 15 | "global.api.unhealthy" : "Impossibile connettersi ai servizi online di Franz", |
15 | "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", | 16 | "global.notConnectedToTheInternet" : "Non sei connesso a Internet.", |
16 | "global.spellchecker.useDefault" : "Usa le impostazioni predefinite di sistema ({default})", | 17 | "global.spellchecker.useDefault" : "Usa le impostazioni predefinite di sistema ({default})", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "Rileva automaticamente la lingua", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "Automatico", |
19 | "global.spellchecking.language" : "Lingua per controllo ortografico", | 20 | "global.spellchecking.language" : "Lingua per controllo ortografico", |
20 | "import.headline" : "Importa i servizi di Franz 4", | 21 | "import.headline" : "Importa i servizi di Franz 4", |
21 | "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", | 22 | "import.notSupportedHeadline" : "Servizi non ancora supportati in Franz 5", |
@@ -43,8 +44,9 @@ | |||
43 | "login.submit.label" : "Accedi", | 44 | "login.submit.label" : "Accedi", |
44 | "login.tokenExpired" : "La tua sessione è scaduta, per favore accedi di nuovo.", | 45 | "login.tokenExpired" : "La tua sessione è scaduta, per favore accedi di nuovo.", |
45 | "menu.app.about" : "Info su Franz", | 46 | "menu.app.about" : "Info su Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Nascondi", | 48 | "menu.app.hide" : "Nascondi", |
47 | "menu.app.hideOthers" : "Nascondi Altri", | 49 | "menu.app.hideOthers" : "Nascondi altri", |
48 | "menu.app.quit" : "Esci", | 50 | "menu.app.quit" : "Esci", |
49 | "menu.app.settings" : "Settings", | 51 | "menu.app.settings" : "Settings", |
50 | "menu.app.unhide" : "Mostra", | 52 | "menu.app.unhide" : "Mostra", |
@@ -52,7 +54,7 @@ | |||
52 | "menu.edit.copy" : "Copia", | 54 | "menu.edit.copy" : "Copia", |
53 | "menu.edit.cut" : "Taglia", | 55 | "menu.edit.cut" : "Taglia", |
54 | "menu.edit.delete" : "Elimina", | 56 | "menu.edit.delete" : "Elimina", |
55 | "menu.edit.emojiSymbols" : "Emoji e Simboli", | 57 | "menu.edit.emojiSymbols" : "Emoji e simboli", |
56 | "menu.edit.paste" : "Incolla", | 58 | "menu.edit.paste" : "Incolla", |
57 | "menu.edit.pasteAndMatchStyle" : "Incolla e Mantieni Stile", | 59 | "menu.edit.pasteAndMatchStyle" : "Incolla e Mantieni Stile", |
58 | "menu.edit.redo" : "Ripeti", | 60 | "menu.edit.redo" : "Ripeti", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Supporto", | 72 | "menu.help.support" : "Supporto", |
71 | "menu.help.tos" : "Termini di Servizio", | 73 | "menu.help.tos" : "Termini di Servizio", |
72 | "menu.services" : "Servizi", | 74 | "menu.services" : "Servizi", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Attiva servizio precedente", |
74 | "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", | 76 | "menu.services.addNewService" : "Aggiungi Nuovo Servizio...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Attiva servizio seguente", |
76 | "menu.view" : "Visualizza", | 78 | "menu.view" : "Visualizza", |
77 | "menu.view.enterFullScreen" : "Visualizza a Schermo Intero", | 79 | "menu.view.enterFullScreen" : "Visualizza a Schermo Intero", |
78 | "menu.view.exitFullScreen" : "Esci da Schermo Intero", | 80 | "menu.view.exitFullScreen" : "Esci da Schermo Intero", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Finestra", | 89 | "menu.window" : "Finestra", |
88 | "menu.window.close" : "Chiudi", | 90 | "menu.window.close" : "Chiudi", |
89 | "menu.window.minimize" : "Minimizza", | 91 | "menu.window.minimize" : "Minimizza", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Tutti i servizi", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Indirizzo email", | 97 | "password.email.label" : "Indirizzo email", |
91 | "password.headline" : "Reimposta password", | 98 | "password.headline" : "Reimposta password", |
92 | "password.link.login" : "Accedi al tuo account", | 99 | "password.link.login" : "Accedi al tuo account", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh no!", | 117 | "service.errorHandler.headline" : "Oh no!", |
111 | "service.errorHandler.message" : "Errore", | 118 | "service.errorHandler.message" : "Errore", |
112 | "service.errorHandler.text" : "{name} non si è caricato correttamente.", | 119 | "service.errorHandler.text" : "{name} non si è caricato correttamente.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Iniziamo", | 121 | "services.getStarted" : "Iniziamo", |
114 | "services.welcome" : "Benvenuto su Franz", | 122 | "services.welcome" : "Benvenuto su Franz", |
115 | "settings.account.account.editButton" : "Modifica account", | 123 | "settings.account.account.editButton" : "Modifica account", |
@@ -131,7 +139,7 @@ | |||
131 | "settings.account.manageSubscription.label" : "Gestisci il tuo abbonamento", | 139 | "settings.account.manageSubscription.label" : "Gestisci il tuo abbonamento", |
132 | "settings.account.successInfo" : "Le tue modifiche sono state salvate", | 140 | "settings.account.successInfo" : "Le tue modifiche sono state salvate", |
133 | "settings.account.tryReloadServices" : "Prova di nuovo", | 141 | "settings.account.tryReloadServices" : "Prova di nuovo", |
134 | "settings.account.tryReloadUserInfoRequest" : "Prova di nuovo", | 142 | "settings.account.tryReloadUserInfoRequest" : "Riprova", |
135 | "settings.account.userInfoRequestFailed" : "Impossibile caricare le informazioni dell'utente.", | 143 | "settings.account.userInfoRequestFailed" : "Impossibile caricare le informazioni dell'utente.", |
136 | "settings.app.buttonClearAllCache" : "Svuota la cache", | 144 | "settings.app.buttonClearAllCache" : "Svuota la cache", |
137 | "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", | 145 | "settings.app.buttonInstallUpdate" : "Riavvia e installa l'aggiornamento", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Generale", | 164 | "settings.app.headlineGeneral" : "Generale", |
157 | "settings.app.headlineLanguage" : "Lingua", | 165 | "settings.app.headlineLanguage" : "Lingua", |
158 | "settings.app.headlineUpdates" : "Aggiornamenti", | 166 | "settings.app.headlineUpdates" : "Aggiornamenti", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Le modifiche richiedono un riavvio", | 168 | "settings.app.restartRequired" : "Le modifiche richiedono un riavvio", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Aiutaci a tradurre Franz nella tua lingua.", | 170 | "settings.app.translationHelp" : "Aiutaci a tradurre Franz nella tua lingua.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Invita Amici", | 177 | "settings.navigation.inviteFriends" : "Invita Amici", |
169 | "settings.navigation.logout" : "Esci", | 178 | "settings.navigation.logout" : "Esci", |
170 | "settings.navigation.settings" : "Impostazioni", | 179 | "settings.navigation.settings" : "Impostazioni", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "I tuoi servizi", | 181 | "settings.navigation.yourServices" : "I tuoi servizi", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Tutti i servizi", | 183 | "settings.recipes.all" : "Tutti i servizi", |
173 | "settings.recipes.dev" : "Sviluppo", | 184 | "settings.recipes.dev" : "Sviluppo", |
174 | "settings.recipes.headline" : "Servizi disponibili", | 185 | "settings.recipes.headline" : "Servizi disponibili", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "Scopri servizi", | 232 | "settings.services.discoverServices" : "Scopri servizi", |
222 | "settings.services.headline" : "I tuoi servizi", | 233 | "settings.services.headline" : "I tuoi servizi", |
223 | "settings.services.noServicesAdded" : "Non hai aggiunto ancora nessun servizio.", | 234 | "settings.services.noServicesAdded" : "Non hai aggiunto ancora nessun servizio.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "Impossibile caricare il servizio", |
225 | "settings.services.tooltip.isDisabled" : "Il servizio è disattivato", | 236 | "settings.services.tooltip.isDisabled" : "Il servizio è disattivato", |
226 | "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", | 237 | "settings.services.tooltip.isMuted" : "Tutti i suoni sono disattivati", |
227 | "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate", | 238 | "settings.services.tooltip.notificationsDisabled" : "Le notifiche sono disattivate", |
228 | "settings.services.updatedInfo" : "Le tue modifiche sono state salvate", | 239 | "settings.services.updatedInfo" : "Le tue modifiche sono state salvate", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Gruppo", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Società ", | 246 | "settings.user.form.accountType.company" : "Società ", |
230 | "settings.user.form.accountType.individual" : "Individuale", | 247 | "settings.user.form.accountType.individual" : "Individuale", |
231 | "settings.user.form.accountType.label" : "Tipo di account", | 248 | "settings.user.form.accountType.label" : "Tipo di account", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Nome", | 252 | "settings.user.form.firstname" : "Nome", |
236 | "settings.user.form.lastname" : "Cognome", | 253 | "settings.user.form.lastname" : "Cognome", |
237 | "settings.user.form.newPassword" : "Nuova password", | 254 | "settings.user.form.newPassword" : "Nuova password", |
255 | "settings.workspace.add.form.name" : "Nome", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Nome", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
266 | "settings.workspaces.updatedInfo" : "Le tue modifiche sono state salvate", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Aggiungi un nuovo servizio", | 270 | "sidebar.addNewService" : "Aggiungi un nuovo servizio", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Disattiva notifiche e audio", | 272 | "sidebar.muteApp" : "Disattiva notifiche e audio", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Impostazioni", | 274 | "sidebar.settings" : "Impostazioni", |
241 | "sidebar.unmuteApp" : "Attiva notifiche e audio", | 275 | "sidebar.unmuteApp" : "Attiva notifiche e audio", |
242 | "signup.company.label" : "Società ", | 276 | "signup.company.label" : "Società ", |
@@ -245,7 +279,7 @@ | |||
245 | "signup.firstname.label" : "Nome", | 279 | "signup.firstname.label" : "Nome", |
246 | "signup.headline" : "Iscriviti", | 280 | "signup.headline" : "Iscriviti", |
247 | "signup.lastname.label" : "Cognome", | 281 | "signup.lastname.label" : "Cognome", |
248 | "signup.legal.info" : "Creando un account di Franz accetti l' ", | 282 | "signup.legal.info" : "Creando un account di Franz stai accettando il ", |
249 | "signup.legal.privacy" : "Informativa sulla Privacy", | 283 | "signup.legal.privacy" : "Informativa sulla Privacy", |
250 | "signup.legal.terms" : "Termini di Servizio", | 284 | "signup.legal.terms" : "Termini di Servizio", |
251 | "signup.link.login" : "Hai già un account, vuoi accedere?", | 285 | "signup.link.login" : "Hai già un account, vuoi accedere?", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"", | 292 | "subscription.features.onpremise.mattermost" : "Aggiungi servizi on-premise\/hosted come \"Mattermost\"", |
259 | "subscription.features.proxy" : "Supporto proxy per i servizi", | 293 | "subscription.features.proxy" : "Supporto proxy per i servizi", |
260 | "subscription.features.spellchecker" : "Supporto per il correttore ortografico", | 294 | "subscription.features.spellchecker" : "Supporto per il correttore ortografico", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include", | 296 | "subscription.includedFeatures" : "L'account a pagamento Franz Premium Supporter include", |
262 | "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento", | 297 | "subscription.paymentSessionError" : "Impossibile inizializzare il modulo per il pagamento", |
263 | "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", | 298 | "subscription.submit.label" : "Voglio supportare lo sviluppo di Franz", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "Ricarica", | 312 | "tabs.item.reload" : "Ricarica", |
278 | "validation.email" : "{field} non valido", | 313 | "validation.email" : "{field} non valido", |
279 | "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", | 314 | "validation.minLength" : "{field} dovrebbe contenere almeno {length} caratteri", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "Almeno un campo è richiesto", |
281 | "validation.required" : "{field} è necessario", | 316 | "validation.required" : "{field} è necessario", |
282 | "validation.url" : "{field} non è un URL valido", | 317 | "validation.url" : "{field} non è un URL valido", |
283 | "welcome.loginButton" : "Accedi al tuo account", | 318 | "welcome.loginButton" : "Accedi al tuo account", |
284 | "welcome.signupButton" : "Crea un account gratuito" | 319 | "welcome.signupButton" : "Crea un account gratuito", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Tutti i servizi", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/ja.json b/src/i18n/locales/ja.json index bd1024a34..cf7e9ab78 100644 --- a/src/i18n/locales/ja.json +++ b/src/i18n/locales/ja.json | |||
@@ -1,21 +1,22 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "å†èªã¿è¾¼ã¿", | 2 | "app.errorHandler.action" : "å†èªã¿è¾¼ã¿", |
3 | "app.errorHandler.headline" : "é–“é•ãˆã¦ã„る部分ãŒã‚ã‚Šã¾ã™", | 3 | "app.errorHandler.headline" : "é–“é•ãˆã¦ã„る部分ãŒã‚ã‚Šã¾ã™", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Franzサãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã™ã‚‹", | 5 | "feature.delayApp.action" : "Franzサãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã™ã‚‹", |
5 | "feature.delayApp.headline" : "Franzã‚’ã™ãã«èµ·å‹•ã™ã‚‹ã«ã¯ã€Franz サãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã—ã¦ãã ã•ã„。", | 6 | "feature.delayApp.headline" : "Franzã‚’ã™ãã«èµ·å‹•ã™ã‚‹ã«ã¯ã€Franz サãƒãƒ¼ã‚¿ãƒ¼ãƒ©ã‚¤ã‚»ãƒ³ã‚¹ã‚’購入ã—ã¦ãã ã•ã„。", |
6 | "feature.delayApp.text" : "Franzã¯ã‚ã¨{seconds}秒後ã«èµ·å‹•ã—ã¾ã™ã€‚", | 7 | "feature.delayApp.text" : "Franzã¯ã‚ã¨{seconds}秒後ã«èµ·å‹•ã—ã¾ã™ã€‚", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "メールã§é€ä¿¡", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Facebookã§ã‚·ã‚§ã‚¢", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Twitterã§ã‚·ã‚§ã‚¢", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "Franzã¯ã‚ãªãŸã¨ã¨ã‚‚ã«", |
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.email" : "Franzã§{count}個ã®ã‚µãƒ¼ãƒ“スを使ã£ã¦ã„ã¾ã™ï¼ã‚ãªãŸã‚‚Gmail, Messenger, Slack, Skypeãªã©ã®ã‚µãƒ¼ãƒ“スをFranzã§ä¸€å…ƒç®¡ç†ã—ã¾ã—ょã†ï¼ 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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "ã‚ãªãŸã®ãŠå‹é”ã«Franzã‚’æ•™ãˆã¦ã‚ã’ã¾ã—ょã†ã€‚", |
14 | "global.api.unhealthy" : "Franzã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚µãƒ¼ãƒ“スã«æŽ¥ç¶šã§ãã¾ã›ã‚“。", | 15 | "global.api.unhealthy" : "Franzã®ã‚ªãƒ³ãƒ©ã‚¤ãƒ³ã‚µãƒ¼ãƒ“スã«æŽ¥ç¶šã§ãã¾ã›ã‚“。", |
15 | "global.notConnectedToTheInternet" : "インターãƒãƒƒãƒˆã«æŽ¥ç¶šã•ã‚Œã¦ã„ã¾ã›ã‚“。", | 16 | "global.notConnectedToTheInternet" : "インターãƒãƒƒãƒˆã«æŽ¥ç¶šã•ã‚Œã¦ã„ã¾ã›ã‚“。", |
16 | "global.spellchecker.useDefault" : " {default}ã‚’åˆæœŸè¨å®šã§ä½¿ç”¨ã—ã¦ãã ã•ã„", | 17 | "global.spellchecker.useDefault" : " {default}ã‚’åˆæœŸè¨å®šã§ä½¿ç”¨ã—ã¦ãã ã•ã„", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "言語を自動的ã«æ¤œå‡ºã™ã‚‹", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "自動", |
19 | "global.spellchecking.language" : "スペルãƒã‚§ãƒƒã‚¯ã™ã‚‹è¨€èªž", | 20 | "global.spellchecking.language" : "スペルãƒã‚§ãƒƒã‚¯ã™ã‚‹è¨€èªž", |
20 | "import.headline" : "Franz 4ã®ã‚µãƒ¼ãƒ“スをインãƒãƒ¼ãƒˆã—ã¦ä¸‹ã•ã„", | 21 | "import.headline" : "Franz 4ã®ã‚µãƒ¼ãƒ“スをインãƒãƒ¼ãƒˆã—ã¦ä¸‹ã•ã„", |
21 | "import.notSupportedHeadline" : "Franz 5ã§ã¯ã“ã®ã‚µãƒ¼ãƒ“スã«ã¾ã 対応ã—ã¦ã„ã¾ã›ã‚“", | 22 | "import.notSupportedHeadline" : "Franz 5ã§ã¯ã“ã®ã‚µãƒ¼ãƒ“スã«ã¾ã 対応ã—ã¦ã„ã¾ã›ã‚“", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "サインイン", | 44 | "login.submit.label" : "サインイン", |
44 | "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", | 45 | "login.tokenExpired" : "セッションã®æœŸé™ãŒåˆ‡ã‚Œã¾ã—ãŸã€‚ãƒã‚°ã‚¤ãƒ³ã—ç›´ã—ã¦ä¸‹ã•ã„。", |
45 | "menu.app.about" : "ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±", | 46 | "menu.app.about" : "ãƒãƒ¼ã‚¸ãƒ§ãƒ³æƒ…å ±", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "éš ã™", | 48 | "menu.app.hide" : "éš ã™", |
47 | "menu.app.hideOthers" : "ä»–ã‚’éš ã™", | 49 | "menu.app.hideOthers" : "ä»–ã‚’éš ã™", |
48 | "menu.app.quit" : "終了", | 50 | "menu.app.quit" : "終了", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "サãƒãƒ¼ãƒˆ", | 72 | "menu.help.support" : "サãƒãƒ¼ãƒˆ", |
71 | "menu.help.tos" : "サービス利用è¦ç´„", | 73 | "menu.help.tos" : "サービス利用è¦ç´„", |
72 | "menu.services" : "サービス", | 74 | "menu.services" : "サービス", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "å‰ã®ã‚µãƒ¼ãƒ“スを有効ã«ã™ã‚‹", |
74 | "menu.services.addNewService" : "ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ", | 76 | "menu.services.addNewService" : "ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "次ã®ã‚µãƒ¼ãƒ“スを有効ã«ã™ã‚‹", |
76 | "menu.view" : "表示", | 78 | "menu.view" : "表示", |
77 | "menu.view.enterFullScreen" : "全画é¢è¡¨ç¤º", | 79 | "menu.view.enterFullScreen" : "全画é¢è¡¨ç¤º", |
78 | "menu.view.exitFullScreen" : "全画é¢è¡¨ç¤ºã‚’終了ã™ã‚‹", | 80 | "menu.view.exitFullScreen" : "全画é¢è¡¨ç¤ºã‚’終了ã™ã‚‹", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "ウィンドウ", | 89 | "menu.window" : "ウィンドウ", |
88 | "menu.window.close" : "é–‰ã˜ã‚‹", | 90 | "menu.window.close" : "é–‰ã˜ã‚‹", |
89 | "menu.window.minimize" : "最å°åŒ–", | 91 | "menu.window.minimize" : "最å°åŒ–", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "ã™ã¹ã¦ã®ã‚µãƒ¼ãƒ“ス", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "メールアドレス", | 97 | "password.email.label" : "メールアドレス", |
91 | "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ", | 98 | "password.headline" : "パスワードã®ãƒªã‚»ãƒƒãƒˆ", |
92 | "password.link.login" : "サインイン", | 99 | "password.link.login" : "サインイン", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "ã—ã¾ã£ãŸï¼", | 117 | "service.errorHandler.headline" : "ã—ã¾ã£ãŸï¼", |
111 | "service.errorHandler.message" : "エラー", | 118 | "service.errorHandler.message" : "エラー", |
112 | "service.errorHandler.text" : "{name} ã¯ãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ", | 119 | "service.errorHandler.text" : "{name} ã¯ãƒãƒ¼ãƒ‰ã«å¤±æ•—ã—ã¾ã—ãŸ", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "ã¯ã˜ã‚ã‚‹", | 121 | "services.getStarted" : "ã¯ã˜ã‚ã‚‹", |
114 | "services.welcome" : "Franzã«ã‚ˆã†ã“ã", | 122 | "services.welcome" : "Franzã«ã‚ˆã†ã“ã", |
115 | "settings.account.account.editButton" : "アカウントã®ç·¨é›†", | 123 | "settings.account.account.editButton" : "アカウントã®ç·¨é›†", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "一般", | 164 | "settings.app.headlineGeneral" : "一般", |
157 | "settings.app.headlineLanguage" : "言語", | 165 | "settings.app.headlineLanguage" : "言語", |
158 | "settings.app.headlineUpdates" : "æ›´æ–°", | 166 | "settings.app.headlineUpdates" : "æ›´æ–°", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "変更ã«ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™", | 168 | "settings.app.restartRequired" : "変更ã«ã¯å†èµ·å‹•ãŒå¿…è¦ã§ã™", |
160 | "settings.app.subheadlineCache" : "ã‚ャッシュ", | 169 | "settings.app.subheadlineCache" : "ã‚ャッシュ", |
161 | "settings.app.translationHelp" : "Franzã®ç¿»è¨³ä½œæ¥ã«ã”å”力をãŠé¡˜ã„ã—ã¾ã™ã€‚", | 170 | "settings.app.translationHelp" : "Franzã®ç¿»è¨³ä½œæ¥ã«ã”å”力をãŠé¡˜ã„ã—ã¾ã™ã€‚", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "知りåˆã„を招待ã™ã‚‹", | 177 | "settings.navigation.inviteFriends" : "知りåˆã„を招待ã™ã‚‹", |
169 | "settings.navigation.logout" : "ãƒã‚°ã‚¢ã‚¦ãƒˆ", | 178 | "settings.navigation.logout" : "ãƒã‚°ã‚¢ã‚¦ãƒˆ", |
170 | "settings.navigation.settings" : "è¨å®š", | 179 | "settings.navigation.settings" : "è¨å®š", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "利用ä¸ã®ã‚µãƒ¼ãƒ“ス", | 181 | "settings.navigation.yourServices" : "利用ä¸ã®ã‚µãƒ¼ãƒ“ス", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "ã™ã¹ã¦ã®ã‚µãƒ¼ãƒ“ス", | 183 | "settings.recipes.all" : "ã™ã¹ã¦ã®ã‚µãƒ¼ãƒ“ス", |
173 | "settings.recipes.dev" : "開発版", | 184 | "settings.recipes.dev" : "開発版", |
174 | "settings.recipes.headline" : "利用å¯èƒ½ãªã‚µãƒ¼ãƒ“ス", | 185 | "settings.recipes.headline" : "利用å¯èƒ½ãªã‚µãƒ¼ãƒ“ス", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "サービスを探ã™", | 232 | "settings.services.discoverServices" : "サービスを探ã™", |
222 | "settings.services.headline" : "利用ä¸ã®ã‚µãƒ¼ãƒ“ス", | 233 | "settings.services.headline" : "利用ä¸ã®ã‚µãƒ¼ãƒ“ス", |
223 | "settings.services.noServicesAdded" : "ã¾ã ã€ã©ã®ã‚µãƒ¼ãƒ“ã‚¹ã‚‚è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“。", | 234 | "settings.services.noServicesAdded" : "ã¾ã ã€ã©ã®ã‚µãƒ¼ãƒ“ã‚¹ã‚‚è¿½åŠ ã•ã‚Œã¦ã„ã¾ã›ã‚“。", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "サービスをèªã¿è¾¼ã‚€ã“ã¨ãŒã§ãã¾ã›ã‚“ã§ã—ãŸ", |
225 | "settings.services.tooltip.isDisabled" : "サービスãŒç„¡åŠ¹ã§ã™", | 236 | "settings.services.tooltip.isDisabled" : "サービスãŒç„¡åŠ¹ã§ã™", |
226 | "settings.services.tooltip.isMuted" : "無音ã¨ãªã£ã¦ã„ã¾ã™", | 237 | "settings.services.tooltip.isMuted" : "無音ã¨ãªã£ã¦ã„ã¾ã™", |
227 | "settings.services.tooltip.notificationsDisabled" : "通知ã¯ç„¡åŠ¹ã§ã™", | 238 | "settings.services.tooltip.notificationsDisabled" : "通知ã¯ç„¡åŠ¹ã§ã™", |
228 | "settings.services.updatedInfo" : "変更内容ãŒä¿å˜ã•ã‚Œã¾ã—ãŸ", | 239 | "settings.services.updatedInfo" : "変更内容ãŒä¿å˜ã•ã‚Œã¾ã—ãŸ", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "ãƒãƒ¼ãƒ ", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "法人", | 246 | "settings.user.form.accountType.company" : "法人", |
230 | "settings.user.form.accountType.individual" : "個人", | 247 | "settings.user.form.accountType.individual" : "個人", |
231 | "settings.user.form.accountType.label" : "アカウントã®ç¨®é¡ž", | 248 | "settings.user.form.accountType.label" : "アカウントã®ç¨®é¡ž", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "å", | 252 | "settings.user.form.firstname" : "å", |
236 | "settings.user.form.lastname" : "姓", | 253 | "settings.user.form.lastname" : "姓", |
237 | "settings.user.form.newPassword" : "æ–°ã—ã„パスワード", | 254 | "settings.user.form.newPassword" : "æ–°ã—ã„パスワード", |
255 | "settings.workspace.add.form.name" : "Name", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Name", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "ã‚‚ã†ä¸€åº¦è©¦ã™", | ||
266 | "settings.workspaces.updatedInfo" : "変更内容ãŒä¿å˜ã•ã‚Œã¾ã—ãŸ", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ", | 270 | "sidebar.addNewService" : "ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "通知ã¨ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’無効化", | 272 | "sidebar.muteApp" : "通知ã¨ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’無効化", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "è¨å®š", | 274 | "sidebar.settings" : "è¨å®š", |
241 | "sidebar.unmuteApp" : "通知ã¨ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’有効化", | 275 | "sidebar.unmuteApp" : "通知ã¨ã‚ªãƒ¼ãƒ‡ã‚£ã‚ªã‚’有効化", |
242 | "signup.company.label" : "法人", | 276 | "signup.company.label" : "法人", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Mattermost ã®ã‚ˆã†ãªã‚ªãƒ³ãƒ—レミス(自社é‹ç”¨ï¼‰åž‹ã®ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ã§ãるよã†ã«ãªã‚Šã¾ã™", | 292 | "subscription.features.onpremise.mattermost" : "Mattermost ã®ã‚ˆã†ãªã‚ªãƒ³ãƒ—レミス(自社é‹ç”¨ï¼‰åž‹ã®ã‚µãƒ¼ãƒ“ã‚¹ã‚’è¿½åŠ ã§ãるよã†ã«ãªã‚Šã¾ã™", |
259 | "subscription.features.proxy" : "プãƒã‚ã‚·è¨å®šãŒåˆ©ç”¨å¯èƒ½", | 293 | "subscription.features.proxy" : "プãƒã‚ã‚·è¨å®šãŒåˆ©ç”¨å¯èƒ½", |
260 | "subscription.features.spellchecker" : "スペルãƒã‚§ãƒƒã‚¯æ©Ÿèƒ½ã‚’ãŠä½¿ã„ã„ãŸã ã‘ã¾ã™", | 294 | "subscription.features.spellchecker" : "スペルãƒã‚§ãƒƒã‚¯æ©Ÿèƒ½ã‚’ãŠä½¿ã„ã„ãŸã ã‘ã¾ã™", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Franz Premium Supporter有料アカウントã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™", | 296 | "subscription.includedFeatures" : "Franz Premium Supporter有料アカウントã«ã¯ä»¥ä¸‹ãŒå«ã¾ã‚Œã¾ã™", |
262 | "subscription.paymentSessionError" : "支払ã„フォームをåˆæœŸåŒ–出æ¥ã¾ã›ã‚“", | 297 | "subscription.paymentSessionError" : "支払ã„フォームをåˆæœŸåŒ–出æ¥ã¾ã›ã‚“", |
263 | "subscription.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„", | 298 | "subscription.submit.label" : "Franzã®é–‹ç™ºã‚’支æ´ã—ãŸã„", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "å†èªã¿è¾¼ã¿", | 312 | "tabs.item.reload" : "å†èªã¿è¾¼ã¿", |
278 | "validation.email" : "{field}ã¯æ£ã—ãã‚ã‚Šã¾ã›ã‚“", | 313 | "validation.email" : "{field}ã¯æ£ã—ãã‚ã‚Šã¾ã›ã‚“", |
279 | "validation.minLength" : "{field}ã¯å°‘ãªãã¨ã‚‚{length}æ–‡å—以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“", | 314 | "validation.minLength" : "{field}ã¯å°‘ãªãã¨ã‚‚{length}æ–‡å—以上ã§ãªã‘ã‚Œã°ãªã‚Šã¾ã›ã‚“", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "å°‘ãªãã¨ã‚‚1ã¤ã¯å¿…è¦ã§ã™", |
281 | "validation.required" : "{field}ã¯å¿…é ˆã§ã™", | 316 | "validation.required" : "{field}ã¯å¿…é ˆã§ã™", |
282 | "validation.url" : "{field}ã¯æ£ã—ã„URLã§ã¯ã‚ã‚Šã¾ã›ã‚“", | 317 | "validation.url" : "{field}ã¯æ£ã—ã„URLã§ã¯ã‚ã‚Šã¾ã›ã‚“", |
283 | "welcome.loginButton" : "アカウントã«ãƒã‚°ã‚¤ãƒ³", | 318 | "welcome.loginButton" : "アカウントã«ãƒã‚°ã‚¤ãƒ³", |
284 | "welcome.signupButton" : "無料アカウントを作æˆ" | 319 | "welcome.signupButton" : "無料アカウントを作æˆ", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "ã™ã¹ã¦ã®ã‚µãƒ¼ãƒ“ス", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/ka.json b/src/i18n/locales/ka.json index 4796cbe9f..af224c115 100644 --- a/src/i18n/locales/ka.json +++ b/src/i18n/locales/ka.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვáƒ", | 2 | "app.errorHandler.action" : "ჩáƒáƒ¢áƒ•áƒ˜áƒ თვáƒ", |
3 | "app.errorHandler.headline" : "Something went wrong", | 3 | "app.errorHandler.headline" : "Something went wrong", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Franz-ის áƒáƒœáƒšáƒáƒ˜áƒœ სერვისთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ ებრვერმáƒáƒ®áƒ”რხდáƒ", | 15 | "global.api.unhealthy" : "Franz-ის áƒáƒœáƒšáƒáƒ˜áƒœ სერვისთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ ებრვერმáƒáƒ®áƒ”რხდáƒ", |
15 | "global.notConnectedToTheInternet" : "თქვენ áƒáƒ ხáƒáƒ თ ინტერნეტთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ ებული.", | 16 | "global.notConnectedToTheInternet" : "თქვენ áƒáƒ ხáƒáƒ თ ინტერნეტთáƒáƒœ დáƒáƒ™áƒáƒ•áƒ¨áƒ˜áƒ ებული.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "შესვლáƒ", | 44 | "login.submit.label" : "შესვლáƒ", |
44 | "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ იშში ხელáƒáƒ®áƒšáƒ.", | 45 | "login.tokenExpired" : "თქვენს სესიáƒáƒ¡ ვáƒáƒ“რგáƒáƒ£áƒ•áƒ˜áƒ“áƒ, შედით áƒáƒœáƒ’áƒáƒ იშში ხელáƒáƒ®áƒšáƒ.", |
45 | "menu.app.about" : "Franz-ის შესáƒáƒ®áƒ”ბ", | 46 | "menu.app.about" : "Franz-ის შესáƒáƒ®áƒ”ბ", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Hide", | 48 | "menu.app.hide" : "Hide", |
47 | "menu.app.hideOthers" : "სხვების დáƒáƒ›áƒáƒšáƒ•áƒ", | 49 | "menu.app.hideOthers" : "სხვების დáƒáƒ›áƒáƒšáƒ•áƒ", |
48 | "menu.app.quit" : "გáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ", | 50 | "menu.app.quit" : "გáƒáƒ›áƒáƒ¡áƒ•áƒšáƒ", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Window", | 89 | "menu.window" : "Window", |
88 | "menu.window.close" : "Close", | 90 | "menu.window.close" : "Close", |
89 | "menu.window.minimize" : "Minimize", | 91 | "menu.window.minimize" : "Minimize", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "ყველრსერვისი", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "მეილი", | 97 | "password.email.label" : "მეილი", |
91 | "password.headline" : "პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ¦áƒ“გენáƒ", | 98 | "password.headline" : "პáƒáƒ áƒáƒšáƒ˜áƒ¡ áƒáƒ¦áƒ“გენáƒ", |
92 | "password.link.login" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ იშში", | 99 | "password.link.login" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ იშში", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh no!", | 117 | "service.errorHandler.headline" : "Oh no!", |
111 | "service.errorHandler.message" : "შეცდáƒáƒ›áƒ", | 118 | "service.errorHandler.message" : "შეცდáƒáƒ›áƒ", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "დáƒáƒ¬áƒ§áƒ”ბáƒ", | 121 | "services.getStarted" : "დáƒáƒ¬áƒ§áƒ”ბáƒ", |
114 | "services.welcome" : "მáƒáƒ’ესáƒáƒšáƒ›áƒ”ბით Franz-ზე", | 122 | "services.welcome" : "მáƒáƒ’ესáƒáƒšáƒ›áƒ”ბით Franz-ზე", |
115 | "settings.account.account.editButton" : "áƒáƒœáƒ’áƒáƒ იშის მáƒáƒ თვáƒ", | 123 | "settings.account.account.editButton" : "áƒáƒœáƒ’áƒáƒ იშის მáƒáƒ თვáƒ", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "მთáƒáƒ•áƒáƒ ი", | 164 | "settings.app.headlineGeneral" : "მთáƒáƒ•áƒáƒ ი", |
157 | "settings.app.headlineLanguage" : "ენáƒ", | 165 | "settings.app.headlineLanguage" : "ენáƒ", |
158 | "settings.app.headlineUpdates" : "გáƒáƒœáƒáƒ®áƒšáƒ”ბები", | 166 | "settings.app.headlineUpdates" : "გáƒáƒœáƒáƒ®áƒšáƒ”ბები", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Changes require restart", | 168 | "settings.app.restartRequired" : "Changes require restart", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | 170 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Invite Friends", | 177 | "settings.navigation.inviteFriends" : "Invite Friends", |
169 | "settings.navigation.logout" : "გáƒáƒ¡áƒ•áƒšáƒ", | 178 | "settings.navigation.logout" : "გáƒáƒ¡áƒ•áƒšáƒ", |
170 | "settings.navigation.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები", | 179 | "settings.navigation.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "თქვენი სერვისები", | 181 | "settings.navigation.yourServices" : "თქვენი სერვისები", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "ყველრსერვისი", | 183 | "settings.recipes.all" : "ყველრსერვისი", |
173 | "settings.recipes.dev" : "გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ ებáƒ", | 184 | "settings.recipes.dev" : "გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ ებáƒ", |
174 | "settings.recipes.headline" : "ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜ სერვისები", | 185 | "settings.recipes.headline" : "ხელმისáƒáƒ¬áƒ•áƒ“áƒáƒ›áƒ˜ სერვისები", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "All sounds are muted", | 237 | "settings.services.tooltip.isMuted" : "All sounds are muted", |
227 | "settings.services.tooltip.notificationsDisabled" : "შეტყáƒáƒ‘ინებები გáƒáƒ—იშულიáƒ", | 238 | "settings.services.tooltip.notificationsDisabled" : "შეტყáƒáƒ‘ინებები გáƒáƒ—იშულიáƒ", |
228 | "settings.services.updatedInfo" : "ცვლილებები შენáƒáƒ®áƒ£áƒšáƒ˜áƒ", | 239 | "settings.services.updatedInfo" : "ცვლილებები შენáƒáƒ®áƒ£áƒšáƒ˜áƒ", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "გუნდი", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "კáƒáƒ›áƒžáƒáƒœáƒ˜áƒ", | 246 | "settings.user.form.accountType.company" : "კáƒáƒ›áƒžáƒáƒœáƒ˜áƒ", |
230 | "settings.user.form.accountType.individual" : "ინდივიდუáƒáƒšáƒ£áƒ ი", | 247 | "settings.user.form.accountType.individual" : "ინდივიდუáƒáƒšáƒ£áƒ ი", |
231 | "settings.user.form.accountType.label" : "áƒáƒœáƒ’áƒáƒ იშის ტიპი", | 248 | "settings.user.form.accountType.label" : "áƒáƒœáƒ’áƒáƒ იშის ტიპი", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "First Name", | 252 | "settings.user.form.firstname" : "First Name", |
236 | "settings.user.form.lastname" : "Last Name", | 253 | "settings.user.form.lastname" : "Last Name", |
237 | "settings.user.form.newPassword" : "áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜", | 254 | "settings.user.form.newPassword" : "áƒáƒ®áƒáƒšáƒ˜ პáƒáƒ áƒáƒšáƒ˜", |
255 | "settings.workspace.add.form.name" : "Name", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Name", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "სცáƒáƒ“ეთ ხელáƒáƒ®áƒšáƒ", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Add new service", | 270 | "sidebar.addNewService" : "Add new service", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Disable notifications & audio", | 272 | "sidebar.muteApp" : "Disable notifications & audio", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები", | 274 | "sidebar.settings" : "პáƒáƒ áƒáƒ›áƒ”ტრები", |
241 | "sidebar.unmuteApp" : "Enable notifications & audio", | 275 | "sidebar.unmuteApp" : "Enable notifications & audio", |
242 | "signup.company.label" : "კáƒáƒ›áƒžáƒáƒœáƒ˜áƒ", | 276 | "signup.company.label" : "კáƒáƒ›áƒžáƒáƒœáƒ˜áƒ", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "ფáƒáƒ¡áƒ˜áƒáƒœáƒ˜ Franz-ის პრემიუმ მხáƒáƒ მდáƒáƒ›áƒáƒ”რი áƒáƒœáƒ’áƒáƒ იში", | 296 | "subscription.includedFeatures" : "ფáƒáƒ¡áƒ˜áƒáƒœáƒ˜ Franz-ის პრემიუმ მხáƒáƒ მდáƒáƒ›áƒáƒ”რი áƒáƒœáƒ’áƒáƒ იში", |
262 | "subscription.paymentSessionError" : "გáƒáƒ“áƒáƒ®áƒ“ის ფáƒáƒ მáƒáƒ¢áƒ˜áƒ¡ ინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ ვერმáƒáƒ®áƒ”რხდáƒ", | 297 | "subscription.paymentSessionError" : "გáƒáƒ“áƒáƒ®áƒ“ის ფáƒáƒ მáƒáƒ¢áƒ˜áƒ¡ ინიციáƒáƒšáƒ˜áƒ–áƒáƒªáƒ˜áƒ ვერმáƒáƒ®áƒ”რხდáƒ", |
263 | "subscription.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ ებáƒáƒ¡", | 298 | "subscription.submit.label" : "მინდრხელი შევუწყრFranz-ის გáƒáƒœáƒ•áƒ˜áƒ—áƒáƒ ებáƒáƒ¡", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} is required", | 316 | "validation.required" : "{field} is required", |
282 | "validation.url" : "{field} is not a valid URL", | 317 | "validation.url" : "{field} is not a valid URL", |
283 | "welcome.loginButton" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ იშში", | 318 | "welcome.loginButton" : "შედით თქვენს áƒáƒœáƒ’áƒáƒ იშში", |
284 | "welcome.signupButton" : "შექმენი áƒáƒœáƒ’áƒáƒ იში, ეს უფáƒáƒ¡áƒáƒ" | 319 | "welcome.signupButton" : "შექმენი áƒáƒœáƒ’áƒáƒ იში, ეს უფáƒáƒ¡áƒáƒ", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "ყველრსერვისი", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/nl-BE.json b/src/i18n/locales/nl-BE.json index 00d7ddd06..2854fcb09 100644 --- a/src/i18n/locales/nl-BE.json +++ b/src/i18n/locales/nl-BE.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Herladen", | 2 | "app.errorHandler.action" : "Herladen", |
3 | "app.errorHandler.headline" : "Er ging iets mis", | 3 | "app.errorHandler.headline" : "Er ging iets mis", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Neem een Franz Supporter Licentie ", | 5 | "feature.delayApp.action" : "Neem een Franz Supporter Licentie ", |
5 | "feature.delayApp.headline" : "Neem een Franz Supporter Licentie om niet meer te hoeven wachten", | 6 | "feature.delayApp.headline" : "Neem een Franz Supporter Licentie om niet meer te hoeven wachten", |
6 | "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", | 7 | "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", | 15 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz services", |
15 | "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", | 16 | "global.notConnectedToTheInternet" : "Je hebt geen internet verbinding.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Inloggen", | 44 | "login.submit.label" : "Inloggen", |
44 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", | 45 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
45 | "menu.app.about" : "Over Franz", | 46 | "menu.app.about" : "Over Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Verbergen", | 48 | "menu.app.hide" : "Verbergen", |
47 | "menu.app.hideOthers" : "Andere Verbergen", | 49 | "menu.app.hideOthers" : "Andere Verbergen", |
48 | "menu.app.quit" : "Afsluiten", | 50 | "menu.app.quit" : "Afsluiten", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Venster", | 89 | "menu.window" : "Venster", |
88 | "menu.window.close" : "Sluiten", | 90 | "menu.window.close" : "Sluiten", |
89 | "menu.window.minimize" : "Minimaliseren", | 91 | "menu.window.minimize" : "Minimaliseren", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Alle services", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-mailadres", | 97 | "password.email.label" : "E-mailadres", |
91 | "password.headline" : "Wachtwoord resetten", | 98 | "password.headline" : "Wachtwoord resetten", |
92 | "password.link.login" : "Log in op je account", | 99 | "password.link.login" : "Log in op je account", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh nee!", | 117 | "service.errorHandler.headline" : "Oh nee!", |
111 | "service.errorHandler.message" : "Fout", | 118 | "service.errorHandler.message" : "Fout", |
112 | "service.errorHandler.text" : "{name} kon niet geladen worden.", | 119 | "service.errorHandler.text" : "{name} kon niet geladen worden.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Beginnen", | 121 | "services.getStarted" : "Beginnen", |
114 | "services.welcome" : "Welkom bij Franz", | 122 | "services.welcome" : "Welkom bij Franz", |
115 | "settings.account.account.editButton" : "Account bewerken", | 123 | "settings.account.account.editButton" : "Account bewerken", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Algemeen", | 164 | "settings.app.headlineGeneral" : "Algemeen", |
157 | "settings.app.headlineLanguage" : "Taal", | 165 | "settings.app.headlineLanguage" : "Taal", |
158 | "settings.app.headlineUpdates" : "Updates", | 166 | "settings.app.headlineUpdates" : "Updates", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", | 168 | "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", | 170 | "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Nodig vrienden uit", | 177 | "settings.navigation.inviteFriends" : "Nodig vrienden uit", |
169 | "settings.navigation.logout" : "Uitloggen", | 178 | "settings.navigation.logout" : "Uitloggen", |
170 | "settings.navigation.settings" : "Instellingen", | 179 | "settings.navigation.settings" : "Instellingen", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Jouw services", | 181 | "settings.navigation.yourServices" : "Jouw services", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Alle services", | 183 | "settings.recipes.all" : "Alle services", |
173 | "settings.recipes.dev" : "Ontwikkeling", | 184 | "settings.recipes.dev" : "Ontwikkeling", |
174 | "settings.recipes.headline" : "Beschikbare services", | 185 | "settings.recipes.headline" : "Beschikbare services", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", | 237 | "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", |
227 | "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", | 238 | "settings.services.tooltip.notificationsDisabled" : "Notificaties staan uit", |
228 | "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", | 239 | "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Team", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Bedrijf", | 246 | "settings.user.form.accountType.company" : "Bedrijf", |
230 | "settings.user.form.accountType.individual" : "Particulier", | 247 | "settings.user.form.accountType.individual" : "Particulier", |
231 | "settings.user.form.accountType.label" : "Account type", | 248 | "settings.user.form.accountType.label" : "Account type", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Voornaam", | 252 | "settings.user.form.firstname" : "Voornaam", |
236 | "settings.user.form.lastname" : "Achternaam", | 253 | "settings.user.form.lastname" : "Achternaam", |
237 | "settings.user.form.newPassword" : "Nieuw wachtwoord", | 254 | "settings.user.form.newPassword" : "Nieuw wachtwoord", |
255 | "settings.workspace.add.form.name" : "Naam", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Naam", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Probeer opnieuw", | ||
266 | "settings.workspaces.updatedInfo" : "Je wijzigingen zijn opgeslagen", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Nieuw service toevoegen", | 270 | "sidebar.addNewService" : "Nieuw service toevoegen", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Berichten & geluid uitschakelen", | 272 | "sidebar.muteApp" : "Berichten & geluid uitschakelen", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Instellingen", | 274 | "sidebar.settings" : "Instellingen", |
241 | "sidebar.unmuteApp" : "Berichten & geluid inschakelen", | 275 | "sidebar.unmuteApp" : "Berichten & geluid inschakelen", |
242 | "signup.company.label" : "Bedrijf", | 276 | "signup.company.label" : "Bedrijf", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", | 292 | "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", |
259 | "subscription.features.proxy" : "Proxy ondersteuning voor services", | 293 | "subscription.features.proxy" : "Proxy ondersteuning voor services", |
260 | "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", | 294 | "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Een betalend account voor Franz omvat", | 296 | "subscription.includedFeatures" : "Een betalend account voor Franz omvat", |
262 | "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", | 297 | "subscription.paymentSessionError" : "Betalingsformulier kon niet geladen worden", |
263 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", | 298 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz steunen", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} is vereist", | 316 | "validation.required" : "{field} is vereist", |
282 | "validation.url" : "{field} is niet een geldige URL", | 317 | "validation.url" : "{field} is niet een geldige URL", |
283 | "welcome.loginButton" : "Inloggen op je account", | 318 | "welcome.loginButton" : "Inloggen op je account", |
284 | "welcome.signupButton" : "Maak een gratis account aan" | 319 | "welcome.signupButton" : "Maak een gratis account aan", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Alle services", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/nl.json b/src/i18n/locales/nl.json index 782c29a6c..03d4474c1 100644 --- a/src/i18n/locales/nl.json +++ b/src/i18n/locales/nl.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Herladen", | 2 | "app.errorHandler.action" : "Herladen", |
3 | "app.errorHandler.headline" : "Er ging iets mis", | 3 | "app.errorHandler.headline" : "Er ging iets mis", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Sponsor Franz", | 5 | "feature.delayApp.action" : "Sponsor Franz", |
5 | "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan", | 6 | "feature.delayApp.headline" : "Sponsor Franz om wachten over te slaan", |
6 | "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", | 7 | "feature.delayApp.text" : "Franz gaat over {seconds} seconden verder.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services", | 15 | "global.api.unhealthy" : "Kan geen verbinding maken met de Franz-services", |
15 | "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", | 16 | "global.notConnectedToTheInternet" : "U bent niet verbonden met het internet.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Inloggen", | 44 | "login.submit.label" : "Inloggen", |
44 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", | 45 | "login.tokenExpired" : "De sessie is verlopen, log opnieuw in alsjeblieft.", |
45 | "menu.app.about" : "Over Franz", | 46 | "menu.app.about" : "Over Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Verbergen", | 48 | "menu.app.hide" : "Verbergen", |
47 | "menu.app.hideOthers" : "Andere verbergen", | 49 | "menu.app.hideOthers" : "Andere verbergen", |
48 | "menu.app.quit" : "Afsluiten", | 50 | "menu.app.quit" : "Afsluiten", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Venster", | 89 | "menu.window" : "Venster", |
88 | "menu.window.close" : "Sluiten", | 90 | "menu.window.close" : "Sluiten", |
89 | "menu.window.minimize" : "Minimaliseren", | 91 | "menu.window.minimize" : "Minimaliseren", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Alle services", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-mailadres", | 97 | "password.email.label" : "E-mailadres", |
91 | "password.headline" : "Wachtwoord vergeten", | 98 | "password.headline" : "Wachtwoord vergeten", |
92 | "password.link.login" : "Log in op je account", | 99 | "password.link.login" : "Log in op je account", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh nee!", | 117 | "service.errorHandler.headline" : "Oh nee!", |
111 | "service.errorHandler.message" : "Fout", | 118 | "service.errorHandler.message" : "Fout", |
112 | "service.errorHandler.text" : "{name} kon niet geladen worden.", | 119 | "service.errorHandler.text" : "{name} kon niet geladen worden.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Begin", | 121 | "services.getStarted" : "Begin", |
114 | "services.welcome" : "Welkom bij Franz", | 122 | "services.welcome" : "Welkom bij Franz", |
115 | "settings.account.account.editButton" : "Bewerk account", | 123 | "settings.account.account.editButton" : "Bewerk account", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Algemeen", | 164 | "settings.app.headlineGeneral" : "Algemeen", |
157 | "settings.app.headlineLanguage" : "Taal", | 165 | "settings.app.headlineLanguage" : "Taal", |
158 | "settings.app.headlineUpdates" : "Updates", | 166 | "settings.app.headlineUpdates" : "Updates", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", | 168 | "settings.app.restartRequired" : "Deze wijziging heeft een herstart nodig", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", | 170 | "settings.app.translationHelp" : "Help ons om Franz te vertalen naar uw taal.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Nodig vrienden uit", | 177 | "settings.navigation.inviteFriends" : "Nodig vrienden uit", |
169 | "settings.navigation.logout" : "Uitloggen", | 178 | "settings.navigation.logout" : "Uitloggen", |
170 | "settings.navigation.settings" : "Instellingen", | 179 | "settings.navigation.settings" : "Instellingen", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Jouw services", | 181 | "settings.navigation.yourServices" : "Jouw services", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Alle services", | 183 | "settings.recipes.all" : "Alle services", |
173 | "settings.recipes.dev" : "Ontwikkeling", | 184 | "settings.recipes.dev" : "Ontwikkeling", |
174 | "settings.recipes.headline" : "Beschikbare services", | 185 | "settings.recipes.headline" : "Beschikbare services", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", | 237 | "settings.services.tooltip.isMuted" : "Alle geluiden zijn uitgeschakeld", |
227 | "settings.services.tooltip.notificationsDisabled" : "Meldingen zijn uitgeschakeld", | 238 | "settings.services.tooltip.notificationsDisabled" : "Meldingen zijn uitgeschakeld", |
228 | "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", | 239 | "settings.services.updatedInfo" : "Je wijzigingen zijn opgeslagen", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Team", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Bedrijf", | 246 | "settings.user.form.accountType.company" : "Bedrijf", |
230 | "settings.user.form.accountType.individual" : "Individueel", | 247 | "settings.user.form.accountType.individual" : "Individueel", |
231 | "settings.user.form.accountType.label" : "Accounttype", | 248 | "settings.user.form.accountType.label" : "Accounttype", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Voornaam", | 252 | "settings.user.form.firstname" : "Voornaam", |
236 | "settings.user.form.lastname" : "Achternaam", | 253 | "settings.user.form.lastname" : "Achternaam", |
237 | "settings.user.form.newPassword" : "Nieuw wachtwoord", | 254 | "settings.user.form.newPassword" : "Nieuw wachtwoord", |
255 | "settings.workspace.add.form.name" : "Naam", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Naam", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Probeer opnieuw", | ||
266 | "settings.workspaces.updatedInfo" : "Je wijzigingen zijn opgeslagen", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Voeg service toe", | 270 | "sidebar.addNewService" : "Voeg service toe", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Schakel berichten & geluid uit", | 272 | "sidebar.muteApp" : "Schakel berichten & geluid uit", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Instellingen", | 274 | "sidebar.settings" : "Instellingen", |
241 | "sidebar.unmuteApp" : "Berichten & geluid inschakelen", | 275 | "sidebar.unmuteApp" : "Berichten & geluid inschakelen", |
242 | "signup.company.label" : "Bedrijf", | 276 | "signup.company.label" : "Bedrijf", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", | 292 | "subscription.features.onpremise.mattermost" : "Voeg op-locatie\/gehoste diensten zoals Mattermost toe", |
259 | "subscription.features.proxy" : "Proxy understeuning voor diensten", | 293 | "subscription.features.proxy" : "Proxy understeuning voor diensten", |
260 | "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", | 294 | "subscription.features.spellchecker" : "Ondersteuning voor spellingscheck", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", | 296 | "subscription.includedFeatures" : "Betaald Franz Premium Supporter Account bevat", |
262 | "subscription.paymentSessionError" : "Kan betaalformulier niet initialiseren", | 297 | "subscription.paymentSessionError" : "Kan betaalformulier niet initialiseren", |
263 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", | 298 | "subscription.submit.label" : "Ik wil de ontwikkeling van Franz ondersteunen", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} is vereist", | 316 | "validation.required" : "{field} is vereist", |
282 | "validation.url" : "{field} is niet een geldige URL", | 317 | "validation.url" : "{field} is niet een geldige URL", |
283 | "welcome.loginButton" : "Log in op je account", | 318 | "welcome.loginButton" : "Log in op je account", |
284 | "welcome.signupButton" : "Maak een gratis account" | 319 | "welcome.signupButton" : "Maak een gratis account", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Alle services", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/pl.json b/src/i18n/locales/pl.json index dd70f25f7..591b13145 100644 --- a/src/i18n/locales/pl.json +++ b/src/i18n/locales/pl.json | |||
@@ -1,21 +1,22 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Przeładuj", | 2 | "app.errorHandler.action" : "Przeładuj", |
3 | "app.errorHandler.headline" : "Coś poszło nie tak", | 3 | "app.errorHandler.headline" : "Coś poszło nie tak", |
4 | "feature.announcements.changelog.headline" : "Zmiany we Franzie {version}", | ||
4 | "feature.delayApp.action" : "Uzyskaj licencjÄ™ Franz Supporter", | 5 | "feature.delayApp.action" : "Uzyskaj licencjÄ™ Franz Supporter", |
5 | "feature.delayApp.headline" : "Aby nie czekać kup licencję Franz Supporter", | 6 | "feature.delayApp.headline" : "Aby nie czekać kup licencję Franz Supporter", |
6 | "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.", | 7 | "feature.delayApp.text" : "Franz będzie kontynuował za {seconds} sekund.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Wyślij nam maila", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Udostępnij na Facebooku", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Udostępnij na Twitterze", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "Franz jest lepszy, gdy tworzymy go razem!", |
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.email" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikacją WhatsApp, Messenger, Slack, Skype i inne na 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.shareText.twitter" : "Dodałem {count} serwisów do Franza! Pobierz darmową aplikacją WhatsApp, Messenger, Slack, Skype i inne na www.meetfranz.com \/cc @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Powiedz znajomym i kolegom o tym, jak odlotowy jest Franz i pomóż nam go spopularyzować.", |
14 | "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", | 15 | "global.api.unhealthy" : "Nie można połączyć się z usługami Franz online", |
15 | "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", | 16 | "global.notConnectedToTheInternet" : "Nie masz połączenia z Internetem.", |
16 | "global.spellchecker.useDefault" : "Użyj domyślnego dla systemu ({default})", | 17 | "global.spellchecker.useDefault" : "Użyj domyślnego dla systemu ({default})", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "Automatycznie wykryj język", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "Automatycznie", |
19 | "global.spellchecking.language" : "Język słownika", | 20 | "global.spellchecking.language" : "Język słownika", |
20 | "import.headline" : "Importuj usługi Franz 4", | 21 | "import.headline" : "Importuj usługi Franz 4", |
21 | "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5", | 22 | "import.notSupportedHeadline" : "Usługi, które nie są jeszcze obsługiwane w Franz 5", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Zaloguj siÄ™", | 44 | "login.submit.label" : "Zaloguj siÄ™", |
44 | "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", | 45 | "login.tokenExpired" : "Twoja sesja wygasła, zaloguj się ponownie.", |
45 | "menu.app.about" : "O Franz", | 46 | "menu.app.about" : "O Franz", |
47 | "menu.app.announcement" : "Co słychać?", | ||
46 | "menu.app.hide" : "Ukryj", | 48 | "menu.app.hide" : "Ukryj", |
47 | "menu.app.hideOthers" : "Ukryj pozostałe", | 49 | "menu.app.hideOthers" : "Ukryj pozostałe", |
48 | "menu.app.quit" : "Zakończ", | 50 | "menu.app.quit" : "Zakończ", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Wsparcie", | 72 | "menu.help.support" : "Wsparcie", |
71 | "menu.help.tos" : "Warunki świadczenia usług", | 73 | "menu.help.tos" : "Warunki świadczenia usług", |
72 | "menu.services" : "Usługi", | 74 | "menu.services" : "Usługi", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "WÅ‚Ä…cz poprzedni serwis", |
74 | "menu.services.addNewService" : "Dodaj nową usługę...", | 76 | "menu.services.addNewService" : "Dodaj nową usługę...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "WÅ‚Ä…cz kolejny serwis", |
76 | "menu.view" : "Widok", | 78 | "menu.view" : "Widok", |
77 | "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy", | 79 | "menu.view.enterFullScreen" : "Włącz tryb pełnoekranowy", |
78 | "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy", | 80 | "menu.view.exitFullScreen" : "Zakończ tryb pełnoekranowy", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Okno", | 89 | "menu.window" : "Okno", |
88 | "menu.window.close" : "Zamknij", | 90 | "menu.window.close" : "Zamknij", |
89 | "menu.window.minimize" : "Zminimalizuj", | 91 | "menu.window.minimize" : "Zminimalizuj", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Wszystkie usługi", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Adres email", | 97 | "password.email.label" : "Adres email", |
91 | "password.headline" : "Przypomnij hasło", | 98 | "password.headline" : "Przypomnij hasło", |
92 | "password.link.login" : "Zaloguj siÄ™ na swoje konto", | 99 | "password.link.login" : "Zaloguj siÄ™ na swoje konto", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "O nie!", | 117 | "service.errorHandler.headline" : "O nie!", |
111 | "service.errorHandler.message" : "BÅ‚Ä…d", | 118 | "service.errorHandler.message" : "BÅ‚Ä…d", |
112 | "service.errorHandler.text" : "Nie udało się załadować {name}.", | 119 | "service.errorHandler.text" : "Nie udało się załadować {name}.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Zacznij", | 121 | "services.getStarted" : "Zacznij", |
114 | "services.welcome" : "Witaj w programie Franz", | 122 | "services.welcome" : "Witaj w programie Franz", |
115 | "settings.account.account.editButton" : "Modyfikuj konta", | 123 | "settings.account.account.editButton" : "Modyfikuj konta", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Ogólne", | 164 | "settings.app.headlineGeneral" : "Ogólne", |
157 | "settings.app.headlineLanguage" : "Język", | 165 | "settings.app.headlineLanguage" : "Język", |
158 | "settings.app.headlineUpdates" : "Aktualizacje", | 166 | "settings.app.headlineUpdates" : "Aktualizacje", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Zmiany. wymagajÄ… ponownego uruchomienia", | 168 | "settings.app.restartRequired" : "Zmiany. wymagajÄ… ponownego uruchomienia", |
160 | "settings.app.subheadlineCache" : "Pamięć podręczna", | 169 | "settings.app.subheadlineCache" : "Pamięć podręczna", |
161 | "settings.app.translationHelp" : "Pomóż nam tłumaczyć Franz na Twój język.", | 170 | "settings.app.translationHelp" : "Pomóż nam tłumaczyć Franz na Twój język.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "ZaproÅ› znajomych", | 177 | "settings.navigation.inviteFriends" : "ZaproÅ› znajomych", |
169 | "settings.navigation.logout" : "Wyloguj", | 178 | "settings.navigation.logout" : "Wyloguj", |
170 | "settings.navigation.settings" : "Ustawienia", | 179 | "settings.navigation.settings" : "Ustawienia", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Twoje usługi", | 181 | "settings.navigation.yourServices" : "Twoje usługi", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Wszystkie usługi", | 183 | "settings.recipes.all" : "Wszystkie usługi", |
173 | "settings.recipes.dev" : "Rozwojowe", | 184 | "settings.recipes.dev" : "Rozwojowe", |
174 | "settings.recipes.headline" : "Dostępne usługi", | 185 | "settings.recipes.headline" : "Dostępne usługi", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Wszystkie dźwięki są wyciszone", | 237 | "settings.services.tooltip.isMuted" : "Wszystkie dźwięki są wyciszone", |
227 | "settings.services.tooltip.notificationsDisabled" : "Powiadomienia sÄ… nieaktywne", | 238 | "settings.services.tooltip.notificationsDisabled" : "Powiadomienia sÄ… nieaktywne", |
228 | "settings.services.updatedInfo" : "Zmiany zostały zapisane", | 239 | "settings.services.updatedInfo" : "Zmiany zostały zapisane", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Zespół", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Firma", | 246 | "settings.user.form.accountType.company" : "Firma", |
230 | "settings.user.form.accountType.individual" : "Prywatne", | 247 | "settings.user.form.accountType.individual" : "Prywatne", |
231 | "settings.user.form.accountType.label" : "Typ konta", | 248 | "settings.user.form.accountType.label" : "Typ konta", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "ImiÄ™", | 252 | "settings.user.form.firstname" : "ImiÄ™", |
236 | "settings.user.form.lastname" : "Nazwisko", | 253 | "settings.user.form.lastname" : "Nazwisko", |
237 | "settings.user.form.newPassword" : "Nowe hasło", | 254 | "settings.user.form.newPassword" : "Nowe hasło", |
255 | "settings.workspace.add.form.name" : "Name", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Name", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Spróbuj ponownie", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Dodaj kolejną usługę", | 270 | "sidebar.addNewService" : "Dodaj kolejną usługę", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Wyłącz powiadomienia i dźwięki", | 272 | "sidebar.muteApp" : "Wyłącz powiadomienia i dźwięki", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Ustawienia", | 274 | "sidebar.settings" : "Ustawienia", |
241 | "sidebar.unmuteApp" : "Włącz powiadomienia i dźwięki", | 275 | "sidebar.unmuteApp" : "Włącz powiadomienia i dźwięki", |
242 | "signup.company.label" : "Firma", | 276 | "signup.company.label" : "Firma", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Dodaj prywatnie hostowane usługi takie jak Mattermost", |
259 | "subscription.features.proxy" : "Obsługa proxy dla usług", | 293 | "subscription.features.proxy" : "Obsługa proxy dla usług", |
260 | "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni", | 294 | "subscription.features.spellchecker" : "Wsparcie dla sprawdzania pisowni", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "PÅ‚atne konto Franz Premium obejmuje", | 296 | "subscription.includedFeatures" : "PÅ‚atne konto Franz Premium obejmuje", |
262 | "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", | 297 | "subscription.paymentSessionError" : "Nie można wczytać formularza płatności\"", |
263 | "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", | 298 | "subscription.submit.label" : "Chcę wspierać rozwój aplikacji Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "Pole {field} jest wymagane", | 316 | "validation.required" : "Pole {field} jest wymagane", |
282 | "validation.url" : "Pole {field} nie jest poprawnym ciÄ…giem URL.", | 317 | "validation.url" : "Pole {field} nie jest poprawnym ciÄ…giem URL.", |
283 | "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto", | 318 | "welcome.loginButton" : "Zaloguj siÄ™ na swoje konto", |
284 | "welcome.signupButton" : "Stwórz darmowe konto" | 319 | "welcome.signupButton" : "Stwórz darmowe konto", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Wszystkie usługi", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/pt-BR.json b/src/i18n/locales/pt-BR.json index 490771c39..4ad2fac08 100644 --- a/src/i18n/locales/pt-BR.json +++ b/src/i18n/locales/pt-BR.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Recarregar", | 2 | "app.errorHandler.action" : "Recarregar", |
3 | "app.errorHandler.headline" : "Alguma coisa deu errado", | 3 | "app.errorHandler.headline" : "Alguma coisa deu errado", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Adquira uma licença Franz Supporter", | 5 | "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", | 6 | "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.", | 7 | "feature.delayApp.text" : "Franz continuará em {seconds} segundos.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", | 10 | "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", |
10 | "feature.shareFranz.headline" : "Franz é melhor em grupo!", | 11 | "feature.shareFranz.headline" : "Franz é melhor em grupo!", |
11 | "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com", | 12 | "feature.shareFranz.shareText.email" : "Eu adicionei {count} serviços ao Franz! Adquira o aplicativo gratuito para WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com", |
12 | "feature.shareFranz.shareText.twitter" : "Adicionei o serviço de {count} ao Franz! Adquira o app grátis para usar WhatsApp, Messenger, Slack, Skype e mais em www.meetfranz.com \/cc @MeetFranz", | 13 | "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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quão incrÃvel Franz é e nos ajude a espalhar a mensagem. ", | 14 | "feature.shareFranz.text" : "Conte aos seus amigos e colegas o quão incrÃvel Franz é e nos ajude a espalhar a mensagem. ", |
14 | "global.api.unhealthy" : "Não foi possÃvel conectar-se aos serviços on-line do Franz.", | 15 | "global.api.unhealthy" : "Não foi possÃvel conectar-se aos serviços on-line do Franz.", |
15 | "global.notConnectedToTheInternet" : "Você não está conectado à internet", | 16 | "global.notConnectedToTheInternet" : "Você não está conectado à internet", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Entrar", | 44 | "login.submit.label" : "Entrar", |
44 | "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", | 45 | "login.tokenExpired" : "Sua sessão expirou, faça o login novamente.", |
45 | "menu.app.about" : "Sobre Franz", | 46 | "menu.app.about" : "Sobre Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Ocultar", | 48 | "menu.app.hide" : "Ocultar", |
47 | "menu.app.hideOthers" : "Ocultar Outros", | 49 | "menu.app.hideOthers" : "Ocultar Outros", |
48 | "menu.app.quit" : "Sair", | 50 | "menu.app.quit" : "Sair", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Suporte", | 72 | "menu.help.support" : "Suporte", |
71 | "menu.help.tos" : "Termos de Serviço", | 73 | "menu.help.tos" : "Termos de Serviço", |
72 | "menu.services" : "Serviços", | 74 | "menu.services" : "Serviços", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Pular para serviço anterior", |
74 | "menu.services.addNewService" : "Adicionar Novo Serviço", | 76 | "menu.services.addNewService" : "Adicionar Novo Serviço", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Pular para próximo serviço", |
76 | "menu.view" : "Visualizar ", | 78 | "menu.view" : "Visualizar ", |
77 | "menu.view.enterFullScreen" : "Modo Tela Cheia", | 79 | "menu.view.enterFullScreen" : "Modo Tela Cheia", |
78 | "menu.view.exitFullScreen" : "Sair da Tela Cheia", | 80 | "menu.view.exitFullScreen" : "Sair da Tela Cheia", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Modo Janela", | 89 | "menu.window" : "Modo Janela", |
88 | "menu.window.close" : "Fechar", | 90 | "menu.window.close" : "Fechar", |
89 | "menu.window.minimize" : "Minimizar", | 91 | "menu.window.minimize" : "Minimizar", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Todos os serviços", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-mail", | 97 | "password.email.label" : "E-mail", |
91 | "password.headline" : "Trocar senha", | 98 | "password.headline" : "Trocar senha", |
92 | "password.link.login" : "Fazer login na sua conta", | 99 | "password.link.login" : "Fazer login na sua conta", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Ah, não!", | 117 | "service.errorHandler.headline" : "Ah, não!", |
111 | "service.errorHandler.message" : "Erro", | 118 | "service.errorHandler.message" : "Erro", |
112 | "service.errorHandler.text" : "{name} não pôde ser carregado.", | 119 | "service.errorHandler.text" : "{name} não pôde ser carregado.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Iniciar", | 121 | "services.getStarted" : "Iniciar", |
114 | "services.welcome" : "Bem-vindo ao Franz!", | 122 | "services.welcome" : "Bem-vindo ao Franz!", |
115 | "settings.account.account.editButton" : "Editar conta", | 123 | "settings.account.account.editButton" : "Editar conta", |
@@ -131,7 +139,7 @@ | |||
131 | "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", | 139 | "settings.account.manageSubscription.label" : "Gerencie a sua assinatura", |
132 | "settings.account.successInfo" : "Suas alterações foram gravadas", | 140 | "settings.account.successInfo" : "Suas alterações foram gravadas", |
133 | "settings.account.tryReloadServices" : "Tente novamente", | 141 | "settings.account.tryReloadServices" : "Tente novamente", |
134 | "settings.account.tryReloadUserInfoRequest" : "Tente novamente", | 142 | "settings.account.tryReloadUserInfoRequest" : "Tentar novamente", |
135 | "settings.account.userInfoRequestFailed" : "Não foi possÃvel carregar as informações do usuário", | 143 | "settings.account.userInfoRequestFailed" : "Não foi possÃvel carregar as informações do usuário", |
136 | "settings.app.buttonClearAllCache" : "Limpar cache", | 144 | "settings.app.buttonClearAllCache" : "Limpar cache", |
137 | "settings.app.buttonInstallUpdate" : "Reiniciar e instalar atualização", | 145 | "settings.app.buttonInstallUpdate" : "Reiniciar e instalar atualização", |
@@ -156,8 +164,9 @@ | |||
156 | "settings.app.headlineGeneral" : "Geral", | 164 | "settings.app.headlineGeneral" : "Geral", |
157 | "settings.app.headlineLanguage" : "Idioma", | 165 | "settings.app.headlineLanguage" : "Idioma", |
158 | "settings.app.headlineUpdates" : "Atualizações", | 166 | "settings.app.headlineUpdates" : "Atualizações", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "As atualizações exigem reiniciar o sistema", | 168 | "settings.app.restartRequired" : "As atualizações exigem reiniciar o sistema", |
160 | "settings.app.subheadlineCache" : "Cachê", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Ajude-nos a traduzir o Franz para seu idioma.", | 170 | "settings.app.translationHelp" : "Ajude-nos a traduzir o Franz para seu idioma.", |
162 | "settings.app.updateStatusAvailable" : "Atualização disponÃvel, baixando...", | 171 | "settings.app.updateStatusAvailable" : "Atualização disponÃvel, baixando...", |
163 | "settings.app.updateStatusSearching" : "Buscando atualizações", | 172 | "settings.app.updateStatusSearching" : "Buscando atualizações", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Convidar Amigos", | 177 | "settings.navigation.inviteFriends" : "Convidar Amigos", |
169 | "settings.navigation.logout" : "Sair", | 178 | "settings.navigation.logout" : "Sair", |
170 | "settings.navigation.settings" : "Ajustes", | 179 | "settings.navigation.settings" : "Ajustes", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Seus serviços", | 181 | "settings.navigation.yourServices" : "Seus serviços", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Todos os serviços", | 183 | "settings.recipes.all" : "Todos os serviços", |
173 | "settings.recipes.dev" : "Desenvolvimento", | 184 | "settings.recipes.dev" : "Desenvolvimento", |
174 | "settings.recipes.headline" : "Serviços disponÃveis", | 185 | "settings.recipes.headline" : "Serviços disponÃveis", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "Descobrir serviços", | 232 | "settings.services.discoverServices" : "Descobrir serviços", |
222 | "settings.services.headline" : "Seus serviços", | 233 | "settings.services.headline" : "Seus serviços", |
223 | "settings.services.noServicesAdded" : "Você ainda não adicionou nenhum serviço.", | 234 | "settings.services.noServicesAdded" : "Você ainda não adicionou nenhum serviço.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "Não foi possÃvel carregar os seus serviços", |
225 | "settings.services.tooltip.isDisabled" : "O serviço está desativado", | 236 | "settings.services.tooltip.isDisabled" : "O serviço está desativado", |
226 | "settings.services.tooltip.isMuted" : "Sem som", | 237 | "settings.services.tooltip.isMuted" : "Sem som", |
227 | "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", | 238 | "settings.services.tooltip.notificationsDisabled" : "Notificações desativadas", |
228 | "settings.services.updatedInfo" : "Suas mudanças foram gravadas", | 239 | "settings.services.updatedInfo" : "Suas mudanças foram gravadas", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Equipe", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Empresa", | 246 | "settings.user.form.accountType.company" : "Empresa", |
230 | "settings.user.form.accountType.individual" : "Pessoal", | 247 | "settings.user.form.accountType.individual" : "Pessoal", |
231 | "settings.user.form.accountType.label" : "Tipo de conta", | 248 | "settings.user.form.accountType.label" : "Tipo de conta", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Nome", | 252 | "settings.user.form.firstname" : "Nome", |
236 | "settings.user.form.lastname" : "Sobrenome", | 253 | "settings.user.form.lastname" : "Sobrenome", |
237 | "settings.user.form.newPassword" : "Nova senha", | 254 | "settings.user.form.newPassword" : "Nova senha", |
255 | "settings.workspace.add.form.name" : "Nome", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Nome", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Adicionar novo serviço", | 270 | "sidebar.addNewService" : "Adicionar novo serviço", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Desativar notificações e áudio", | 272 | "sidebar.muteApp" : "Desativar notificações e áudio", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Ajustes", | 274 | "sidebar.settings" : "Ajustes", |
241 | "sidebar.unmuteApp" : "Ativar notificações e áudio", | 275 | "sidebar.unmuteApp" : "Ativar notificações e áudio", |
242 | "signup.company.label" : "Empresa", | 276 | "signup.company.label" : "Empresa", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Adicionar serviços locais\/hospedados como o Mattermost", |
259 | "subscription.features.proxy" : "Suporte de proxy para serviços", | 293 | "subscription.features.proxy" : "Suporte de proxy para serviços", |
260 | "subscription.features.spellchecker" : "Suporte para corretor ortográfico", | 294 | "subscription.features.spellchecker" : "Suporte para corretor ortográfico", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui", | 296 | "subscription.includedFeatures" : "A conta Apoiador Franz Premium inclui", |
262 | "subscription.paymentSessionError" : "Não foi possÃvel abrir o formulário de pagamento", | 297 | "subscription.paymentSessionError" : "Não foi possÃvel abrir o formulário de pagamento", |
263 | "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", | 298 | "subscription.submit.label" : "Eu quero apoiar o desenvolvimento do Franz", |
@@ -277,9 +312,20 @@ | |||
277 | "tabs.item.reload" : "Recarregar", | 312 | "tabs.item.reload" : "Recarregar", |
278 | "validation.email" : "inválido", | 313 | "validation.email" : "inválido", |
279 | "validation.minLength" : "{campo} deve ter pelo menos {comprimento} mais caracteres ", | 314 | "validation.minLength" : "{campo} deve ter pelo menos {comprimento} mais caracteres ", |
280 | "validation.oneRequired" : "At least one is required", | 315 | "validation.oneRequired" : "Necessário pelo menos um", |
281 | "validation.required" : "{campo} obrigatório", | 316 | "validation.required" : "{campo} obrigatório", |
282 | "validation.url" : "{campo} essa URL não é válida", | 317 | "validation.url" : "{campo} essa URL não é válida", |
283 | "welcome.loginButton" : "Entrar na sua conta", | 318 | "welcome.loginButton" : "Entrar na sua conta", |
284 | "welcome.signupButton" : "Criar uma conta grátis" | 319 | "welcome.signupButton" : "Criar uma conta grátis", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Todos os serviços", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/pt.json b/src/i18n/locales/pt.json index 7e23aa0ba..302284ab8 100644 --- a/src/i18n/locales/pt.json +++ b/src/i18n/locales/pt.json | |||
@@ -1,15 +1,16 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Recarregar", | 2 | "app.errorHandler.action" : "Recarregar", |
3 | "app.errorHandler.headline" : "Alguma coisa correu mal", | 3 | "app.errorHandler.headline" : "Alguma coisa correu mal", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Faz parte do grupo de apoio do Franz", | 5 | "feature.delayApp.action" : "Faz parte do grupo de apoio do Franz", |
5 | "feature.delayApp.headline" : "Por favor compre uma licença Franz Supporter para saltar a fila de espera", | 6 | "feature.delayApp.headline" : "Por favor compre uma licença Franz Supporter para saltar a fila de espera", |
6 | "feature.delayApp.text" : "Franz irá continuar em {seconds} segundos.", | 7 | "feature.delayApp.text" : "Franz irá continuar em {seconds} segundos.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Enviar por e-mail", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "Compartilahr no Facebook", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Compartilhar no Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Não foi possÃvel estabelecer ligação aos serviços do Franz", | 15 | "global.api.unhealthy" : "Não foi possÃvel estabelecer ligação aos serviços do Franz", |
15 | "global.notConnectedToTheInternet" : "Não estás ligado à Internet", | 16 | "global.notConnectedToTheInternet" : "Não estás ligado à Internet", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Iniciar sessão", | 44 | "login.submit.label" : "Iniciar sessão", |
44 | "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.", | 45 | "login.tokenExpired" : "A sua sessão expirou, inicie sessão novamente.", |
45 | "menu.app.about" : "Sobre o Franz", | 46 | "menu.app.about" : "Sobre o Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Ocultar", | 48 | "menu.app.hide" : "Ocultar", |
47 | "menu.app.hideOthers" : "Ocultar Outros", | 49 | "menu.app.hideOthers" : "Ocultar Outros", |
48 | "menu.app.quit" : "Sair", | 50 | "menu.app.quit" : "Sair", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Janela", | 89 | "menu.window" : "Janela", |
88 | "menu.window.close" : "Fechar", | 90 | "menu.window.close" : "Fechar", |
89 | "menu.window.minimize" : "Minimizar", | 91 | "menu.window.minimize" : "Minimizar", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Todos os serviços", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Endereço de e-mail", | 97 | "password.email.label" : "Endereço de e-mail", |
91 | "password.headline" : "Repor a minha palavra-passe", | 98 | "password.headline" : "Repor a minha palavra-passe", |
92 | "password.link.login" : "Iniciar sessão", | 99 | "password.link.login" : "Iniciar sessão", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Oh não!", | 117 | "service.errorHandler.headline" : "Oh não!", |
111 | "service.errorHandler.message" : "Erro", | 118 | "service.errorHandler.message" : "Erro", |
112 | "service.errorHandler.text" : "{name} falhou o carregamento", | 119 | "service.errorHandler.text" : "{name} falhou o carregamento", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Vamos começar", | 121 | "services.getStarted" : "Vamos começar", |
114 | "services.welcome" : "Bem-vindo ao Franz", | 122 | "services.welcome" : "Bem-vindo ao Franz", |
115 | "settings.account.account.editButton" : "Editar conta", | 123 | "settings.account.account.editButton" : "Editar conta", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Geral", | 164 | "settings.app.headlineGeneral" : "Geral", |
157 | "settings.app.headlineLanguage" : "Idioma", | 165 | "settings.app.headlineLanguage" : "Idioma", |
158 | "settings.app.headlineUpdates" : "Atualizações", | 166 | "settings.app.headlineUpdates" : "Atualizações", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Alterações requerem reinÃcio", | 168 | "settings.app.restartRequired" : "Alterações requerem reinÃcio", |
160 | "settings.app.subheadlineCache" : "Cache", | 169 | "settings.app.subheadlineCache" : "Cache", |
161 | "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua lÃngua.", | 170 | "settings.app.translationHelp" : "Ajude-nos a traduzir a Franz para a sua lÃngua.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Convide Amigos", | 177 | "settings.navigation.inviteFriends" : "Convide Amigos", |
169 | "settings.navigation.logout" : "Terminar sessão", | 178 | "settings.navigation.logout" : "Terminar sessão", |
170 | "settings.navigation.settings" : "Definições", | 179 | "settings.navigation.settings" : "Definições", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Os seus serviços", | 181 | "settings.navigation.yourServices" : "Os seus serviços", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Todos os serviços", | 183 | "settings.recipes.all" : "Todos os serviços", |
173 | "settings.recipes.dev" : "Desenvolvimento", | 184 | "settings.recipes.dev" : "Desenvolvimento", |
174 | "settings.recipes.headline" : "Serviços disponÃveis", | 185 | "settings.recipes.headline" : "Serviços disponÃveis", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", | 237 | "settings.services.tooltip.isMuted" : "Todos os sons estão silenciados", |
227 | "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", | 238 | "settings.services.tooltip.notificationsDisabled" : "As notificações estão desativadas", |
228 | "settings.services.updatedInfo" : "As alterações foram guardadas", | 239 | "settings.services.updatedInfo" : "As alterações foram guardadas", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Equipa", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Empresa", | 246 | "settings.user.form.accountType.company" : "Empresa", |
230 | "settings.user.form.accountType.individual" : "IndivÃduo", | 247 | "settings.user.form.accountType.individual" : "IndivÃduo", |
231 | "settings.user.form.accountType.label" : "Tipo de conta", | 248 | "settings.user.form.accountType.label" : "Tipo de conta", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Primeiro Nome", | 252 | "settings.user.form.firstname" : "Primeiro Nome", |
236 | "settings.user.form.lastname" : "Último Nome", | 253 | "settings.user.form.lastname" : "Último Nome", |
237 | "settings.user.form.newPassword" : "Nova palavra-passe", | 254 | "settings.user.form.newPassword" : "Nova palavra-passe", |
255 | "settings.workspace.add.form.name" : "Nome", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Nome", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Tentar novamente", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Adicionar um novo serviço", | 270 | "sidebar.addNewService" : "Adicionar um novo serviço", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Desativar notificações e áudio", | 272 | "sidebar.muteApp" : "Desativar notificações e áudio", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Definições", | 274 | "sidebar.settings" : "Definições", |
241 | "sidebar.unmuteApp" : "Ativar notificações e áudio", | 275 | "sidebar.unmuteApp" : "Ativar notificações e áudio", |
242 | "signup.company.label" : "Empresa", | 276 | "signup.company.label" : "Empresa", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Adicione serviços como Mattermost no local ou online", | 292 | "subscription.features.onpremise.mattermost" : "Adicione serviços como Mattermost no local ou online", |
259 | "subscription.features.proxy" : "Suporte Proxy para os serviços", | 293 | "subscription.features.proxy" : "Suporte Proxy para os serviços", |
260 | "subscription.features.spellchecker" : "Suporte para correção ortográfica", | 294 | "subscription.features.spellchecker" : "Suporte para correção ortográfica", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a", | 296 | "subscription.includedFeatures" : "Ao subscrever uma Conta Premium, tem acesso a", |
262 | "subscription.paymentSessionError" : "Erro no serviço de pagamento", | 297 | "subscription.paymentSessionError" : "Erro no serviço de pagamento", |
263 | "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz", | 298 | "subscription.submit.label" : "Pretendo ajudar o desenvolvimento do Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} é obrigatório", | 316 | "validation.required" : "{field} é obrigatório", |
282 | "validation.url" : "{field} não é uma hiperligação válida", | 317 | "validation.url" : "{field} não é uma hiperligação válida", |
283 | "welcome.loginButton" : "Iniciar sessão", | 318 | "welcome.loginButton" : "Iniciar sessão", |
284 | "welcome.signupButton" : "Criar uma conta gratuita" | 319 | "welcome.signupButton" : "Criar uma conta gratuita", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Todos os serviços", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/ru.json b/src/i18n/locales/ru.json index d8e02b7f3..97ad98361 100644 --- a/src/i18n/locales/ru.json +++ b/src/i18n/locales/ru.json | |||
@@ -1,21 +1,22 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Перезагрузить", | 2 | "app.errorHandler.action" : "Перезагрузить", |
3 | "app.errorHandler.headline" : "Что-то пошло не так", | 3 | "app.errorHandler.headline" : "Что-то пошло не так", |
4 | "feature.announcements.changelog.headline" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ð² верÑии Franz {version}", | ||
4 | "feature.delayApp.action" : "Получите лицензию Franz Supporter", | 5 | "feature.delayApp.action" : "Получите лицензию Franz Supporter", |
5 | "feature.delayApp.headline" : "ПожалуйÑта приобретите лицензию Franz Supporter чтобы отменить ожидание", | 6 | "feature.delayApp.headline" : "ПожалуйÑта приобретите лицензию Franz Supporter чтобы убрать ожидание", |
6 | "feature.delayApp.text" : "Franz продолжит работу через {seconds} Ñекунд.", | 7 | "feature.delayApp.text" : "Franz продолжит работу через {seconds} Ñекунд.", |
7 | "feature.shareFranz.action.email" : "Send as email", | 8 | "feature.shareFranz.action.email" : "Отправить email", |
8 | "feature.shareFranz.action.facebook" : "Share on Facebook", | 9 | "feature.shareFranz.action.facebook" : "ПоделитьÑÑ Ð½Ð° Facebook", |
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "ПоделитьÑÑ Ð² Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "feature.shareFranz.headline" : "Сделаем Franz лучше вмеÑте!", |
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.email" : "Я добавил {count} ÑервиÑов во Franz! Теперь доÑтупны такие меÑÑенджеры как WhatsApp, Messenger, Slack, Skype и другие. Полый ÑпиÑок вы найдете на 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.shareText.twitter" : "Я добавил {count} ÑервиÑ(ов) в Franz! Скачай беÑплатную аппку Ð´Ð»Ñ WhatsApp, Messenger, Slack, Skype и иже на www.meetfranz.com \/cc @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "РаÑÑкажи Ñвоим друзьÑм и коллегам наÑколько прелеÑтен Franz и помоги нам развитьÑÑ", |
14 | "global.api.unhealthy" : "Ðевозможно подключитьÑÑ Ðº онлайн-ÑервиÑам Franz", | 15 | "global.api.unhealthy" : "Ðевозможно подключитьÑÑ Ðº онлайн-ÑервиÑам Franz", |
15 | "global.notConnectedToTheInternet" : "Ð’Ñ‹ не подключены к Ñети Интернет", | 16 | "global.notConnectedToTheInternet" : "Ð’Ñ‹ не подключены к Ñети Интернет", |
16 | "global.spellchecker.useDefault" : "ИÑпользовать ÑиÑтемные параметры по умолчанию ({default})", | 17 | "global.spellchecker.useDefault" : "ИÑпользовать ÑиÑтемные параметры по умолчанию ({default})", |
17 | "global.spellchecking.autodetect" : "Detect language automatically", | 18 | "global.spellchecking.autodetect" : "Ðайти Ñзык автоматичеÑки", |
18 | "global.spellchecking.autodetect.short" : "Automatic", | 19 | "global.spellchecking.autodetect.short" : "Ðвто", |
19 | "global.spellchecking.language" : "Проверка правопиÑаниÑ", | 20 | "global.spellchecking.language" : "Проверка правопиÑаниÑ", |
20 | "import.headline" : "Импортировать ваши ÑервиÑÑ‹ из Franz 4", | 21 | "import.headline" : "Импортировать ваши ÑервиÑÑ‹ из Franz 4", |
21 | "import.notSupportedHeadline" : "СервиÑÑ‹ пока ещё не поддерживаютÑÑ Ð² Franz 5", | 22 | "import.notSupportedHeadline" : "СервиÑÑ‹ пока ещё не поддерживаютÑÑ Ð² Franz 5", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Вход", | 44 | "login.submit.label" : "Вход", |
44 | "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", | 45 | "login.tokenExpired" : "СеÑÑÐ¸Ñ ÑƒÑтарела, пожалуйÑта, войдите Ñнова.", |
45 | "menu.app.about" : "О Franz", | 46 | "menu.app.about" : "О Franz", |
47 | "menu.app.announcement" : "Что нового?", | ||
46 | "menu.app.hide" : "Скрыть", | 48 | "menu.app.hide" : "Скрыть", |
47 | "menu.app.hideOthers" : "Скрыть оÑтальные", | 49 | "menu.app.hideOthers" : "Скрыть оÑтальные", |
48 | "menu.app.quit" : "Выйти", | 50 | "menu.app.quit" : "Выйти", |
@@ -70,9 +72,9 @@ | |||
70 | "menu.help.support" : "Поддержка", | 72 | "menu.help.support" : "Поддержка", |
71 | "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ", | 73 | "menu.help.tos" : "УÑÐ»Ð¾Ð²Ð¸Ñ Ð¸ÑпользованиÑ", |
72 | "menu.services" : "СервиÑ", | 74 | "menu.services" : "СервиÑ", |
73 | "menu.services.activatePreviousService" : "Activate previous service", | 75 | "menu.services.activatePreviousService" : "Ðктивировать предыдущий Ñервич", |
74 | "menu.services.addNewService" : "Добавить новый ÑервиÑ...", | 76 | "menu.services.addNewService" : "Добавить новый ÑервиÑ...", |
75 | "menu.services.setNextServiceActive" : "Activate next service", | 77 | "menu.services.setNextServiceActive" : "Ðктивировать Ñледующий ÑервиÑ", |
76 | "menu.view" : "Вид", | 78 | "menu.view" : "Вид", |
77 | "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран", | 79 | "menu.view.enterFullScreen" : "Ðа веÑÑŒ Ñкран", |
78 | "menu.view.exitFullScreen" : "В окне", | 80 | "menu.view.exitFullScreen" : "В окне", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Окно", | 89 | "menu.window" : "Окно", |
88 | "menu.window.close" : "Закрыть", | 90 | "menu.window.close" : "Закрыть", |
89 | "menu.window.minimize" : "Свернуть", | 91 | "menu.window.minimize" : "Свернуть", |
92 | "menu.workspaces" : "Окружение", | ||
93 | "menu.workspaces.addNewWorkspace" : "Добавить Ðовое Окружение...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Закрыть меню окружений", | ||
95 | "menu.workspaces.defaultWorkspace" : "Ð’Ñе ÑервиÑÑ‹", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Открыть меню окружений", | ||
90 | "password.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты", | 97 | "password.email.label" : "ÐÐ´Ñ€ÐµÑ Ñлектронной почты", |
91 | "password.headline" : "СброÑить пароль", | 98 | "password.headline" : "СброÑить пароль", |
92 | "password.link.login" : "Вход", | 99 | "password.link.login" : "Вход", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "О, нет!", | 117 | "service.errorHandler.headline" : "О, нет!", |
111 | "service.errorHandler.message" : "Ошибка", | 118 | "service.errorHandler.message" : "Ошибка", |
112 | "service.errorHandler.text" : "{name} не Ñмог загрузитьÑÑ.", | 119 | "service.errorHandler.text" : "{name} не Ñмог загрузитьÑÑ.", |
120 | "service.webviewLoader.loading" : "Загрузка", | ||
113 | "services.getStarted" : "Ðачать работу", | 121 | "services.getStarted" : "Ðачать работу", |
114 | "services.welcome" : "Добро пожаловать во Franz", | 122 | "services.welcome" : "Добро пожаловать во Franz", |
115 | "settings.account.account.editButton" : "Редактировать аккаунт", | 123 | "settings.account.account.editButton" : "Редактировать аккаунт", |
@@ -121,7 +129,7 @@ | |||
121 | "settings.account.deleteInfo" : "ЕÑли вам больше не нужна ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в Franz, вы можете удалить аккаунт и вÑÑŽ ÑвÑзанную Ñ Ð½ÐµÐ¹ информацию.", | 129 | "settings.account.deleteInfo" : "ЕÑли вам больше не нужна ваша ÑƒÑ‡ÐµÑ‚Ð½Ð°Ñ Ð·Ð°Ð¿Ð¸ÑÑŒ в Franz, вы можете удалить аккаунт и вÑÑŽ ÑвÑзанную Ñ Ð½ÐµÐ¹ информацию.", |
122 | "settings.account.headline" : "Ðккаунт", | 130 | "settings.account.headline" : "Ðккаунт", |
123 | "settings.account.headlineAccount" : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°", | 131 | "settings.account.headlineAccount" : "Ð˜Ð½Ñ„Ð¾Ñ€Ð¼Ð°Ñ†Ð¸Ñ Ð°ÐºÐºÐ°ÑƒÐ½Ñ‚Ð°", |
124 | "settings.account.headlineDangerZone" : "ОпаÑÐ½Ð°Ñ Ð—Ð¾Ð½Ð°", | 132 | "settings.account.headlineDangerZone" : "Ð—Ð°Ð¿Ñ€ÐµÑ‚Ð½Ð°Ñ Ð—Ð¾Ð½Ð°", |
125 | "settings.account.headlineInvoices" : "Счета", | 133 | "settings.account.headlineInvoices" : "Счета", |
126 | "settings.account.headlinePassword" : "Сменить пароль", | 134 | "settings.account.headlinePassword" : "Сменить пароль", |
127 | "settings.account.headlineProfile" : "Обновить профиль", | 135 | "settings.account.headlineProfile" : "Обновить профиль", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Общие", | 164 | "settings.app.headlineGeneral" : "Общие", |
157 | "settings.app.headlineLanguage" : "Язык", | 165 | "settings.app.headlineLanguage" : "Язык", |
158 | "settings.app.headlineUpdates" : "ОбновлениÑ", | 166 | "settings.app.headlineUpdates" : "ОбновлениÑ", |
167 | "settings.app.languageDisclaimer" : "ÐžÑ„Ð¸Ñ†Ð¸Ð°Ð»ÑŒÐ½Ð°Ñ Ð¿Ð¾Ð´Ð´ÐµÑ€Ð¶ÐºÐ° только Ð´Ð»Ñ Ð°Ð½Ð³Ð»Ð¸Ð¹Ñкого и немецкого Ñзыков. ОÑтальные Ñзыки переведены ÑообщеÑтвом.", | ||
159 | "settings.app.restartRequired" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ перезагрузки приложениÑ", | 168 | "settings.app.restartRequired" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñ‚Ñ€ÐµÐ±ÑƒÑŽÑ‚ перезагрузки приложениÑ", |
160 | "settings.app.subheadlineCache" : "КÑш", | 169 | "settings.app.subheadlineCache" : "КÑш", |
161 | "settings.app.translationHelp" : "Помогите нам перевеÑти Franz на ваш Ñзык.", | 170 | "settings.app.translationHelp" : "Помогите нам перевеÑти Franz на ваш Ñзык.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "ПриглаÑить друзей", | 177 | "settings.navigation.inviteFriends" : "ПриглаÑить друзей", |
169 | "settings.navigation.logout" : "Выход", | 178 | "settings.navigation.logout" : "Выход", |
170 | "settings.navigation.settings" : "ÐаÑтройки", | 179 | "settings.navigation.settings" : "ÐаÑтройки", |
180 | "settings.navigation.team" : "Управление Командой", | ||
171 | "settings.navigation.yourServices" : "Ваши ÑервиÑÑ‹", | 181 | "settings.navigation.yourServices" : "Ваши ÑервиÑÑ‹", |
182 | "settings.navigation.yourWorkspaces" : "Ваши окружениÑ", | ||
172 | "settings.recipes.all" : "Ð’Ñе ÑервиÑÑ‹", | 183 | "settings.recipes.all" : "Ð’Ñе ÑервиÑÑ‹", |
173 | "settings.recipes.dev" : "Разработка", | 184 | "settings.recipes.dev" : "Разработка", |
174 | "settings.recipes.headline" : "ДоÑтупные ÑервиÑÑ‹", | 185 | "settings.recipes.headline" : "ДоÑтупные ÑервиÑÑ‹", |
@@ -221,11 +232,17 @@ | |||
221 | "settings.services.discoverServices" : "Ðайти ÑервиÑÑ‹", | 232 | "settings.services.discoverServices" : "Ðайти ÑервиÑÑ‹", |
222 | "settings.services.headline" : "Ваши ÑервиÑÑ‹", | 233 | "settings.services.headline" : "Ваши ÑервиÑÑ‹", |
223 | "settings.services.noServicesAdded" : "Ð’Ñ‹ пока не добавили никаких ÑервиÑов.", | 234 | "settings.services.noServicesAdded" : "Ð’Ñ‹ пока не добавили никаких ÑервиÑов.", |
224 | "settings.services.servicesRequestFailed" : "Could not load your services", | 235 | "settings.services.servicesRequestFailed" : "Ошибка загрузки ÑервиÑов", |
225 | "settings.services.tooltip.isDisabled" : "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½", | 236 | "settings.services.tooltip.isDisabled" : "Ð¡ÐµÑ€Ð²Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½", |
226 | "settings.services.tooltip.isMuted" : "Ð’Ñе звуки отключены", | 237 | "settings.services.tooltip.isMuted" : "Ð’Ñе звуки отключены", |
227 | "settings.services.tooltip.notificationsDisabled" : "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹", | 238 | "settings.services.tooltip.notificationsDisabled" : "Ð£Ð²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¾Ñ‚ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ‹", |
228 | "settings.services.updatedInfo" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñохранены", | 239 | "settings.services.updatedInfo" : "Ð˜Ð·Ð¼ÐµÐ½ÐµÐ½Ð¸Ñ Ñохранены", |
240 | "settings.team.contentHeadline" : "Franz Ð´Ð»Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´", | ||
241 | "settings.team.copy" : "Franz Ð´Ð»Ñ ÐšÐ¾Ð¼Ð°Ð½Ð´ позволÑет приглаÑить коллег в вашу команду, отправив им емайл Ñ Ð¿Ñ€Ð¸Ð³Ð»Ð°ÑˆÐµÐ½Ð¸ÐµÐ¼, а также управлÑÑ‚ÑŒ их подпиÑками в наÑтройках вашего аккаунта. Ðе тратьте Ð²Ñ€ÐµÐ¼Ñ Ð½Ð° наÑтройку подпиÑок Ð´Ð»Ñ ÐºÐ°Ð¶Ð´Ð¾Ð³Ð¾ члена команды индивидуально, забудьте о многочиÑленных платежках и разных циклах оплаты - одна команда Ð´Ð»Ñ ÑƒÐ¿Ñ€Ð°Ð²Ð»ÐµÐ½Ð¸Ñ Ð²Ñеми!", | ||
242 | "settings.team.headline" : "Команда", | ||
243 | "settings.team.intro" : "Ð’Ñ‹ и ваша команда иÑпльзуете Franz? Ð’Ñ‹ теперь можете управлÑÑ‚ÑŒ Премиум подпиÑками любого количеÑтва коллег, друзей и членов Ñемьи, из одного и того же аккаунта.", | ||
244 | "settings.team.manageAction" : "УправлÑйте вашей Командой на meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Улучшить ваш аккаунт", | ||
229 | "settings.user.form.accountType.company" : "КомпаниÑ", | 246 | "settings.user.form.accountType.company" : "КомпаниÑ", |
230 | "settings.user.form.accountType.individual" : "Индивидуальный", | 247 | "settings.user.form.accountType.individual" : "Индивидуальный", |
231 | "settings.user.form.accountType.label" : "Тип аккаунта", | 248 | "settings.user.form.accountType.label" : "Тип аккаунта", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "ИмÑ", | 252 | "settings.user.form.firstname" : "ИмÑ", |
236 | "settings.user.form.lastname" : "ФамилиÑ", | 253 | "settings.user.form.lastname" : "ФамилиÑ", |
237 | "settings.user.form.newPassword" : "Ðовый пароль", | 254 | "settings.user.form.newPassword" : "Ðовый пароль", |
255 | "settings.workspace.add.form.name" : "ИмÑ", | ||
256 | "settings.workspace.add.form.submitButton" : "Создать окружение", | ||
257 | "settings.workspace.form.buttonDelete" : "Удалить окружение", | ||
258 | "settings.workspace.form.buttonSave" : "Сохранить окружение", | ||
259 | "settings.workspace.form.name" : "ИмÑ", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Ваши окружениÑ", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Ваши окружениÑ", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Попробовать Ñнова", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Добавить новый ÑервиÑ", | 270 | "sidebar.addNewService" : "Добавить новый ÑервиÑ", |
271 | "sidebar.closeWorkspaceDrawer" : "Закрыть меню окружений", | ||
239 | "sidebar.muteApp" : "Отключить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук", | 272 | "sidebar.muteApp" : "Отключить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук", |
273 | "sidebar.openWorkspaceDrawer" : "Открыть меню окружений", | ||
240 | "sidebar.settings" : "ÐаÑтройки", | 274 | "sidebar.settings" : "ÐаÑтройки", |
241 | "sidebar.unmuteApp" : "Включить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук", | 275 | "sidebar.unmuteApp" : "Включить ÑƒÐ²ÐµÐ´Ð¾Ð¼Ð»ÐµÐ½Ð¸Ñ Ð¸ звук", |
242 | "signup.company.label" : "ОрганизациÑ", | 276 | "signup.company.label" : "ОрганизациÑ", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хоÑтинге ÑервиÑÑ‹, такие как Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Локальные\/размещенные на хоÑтинге ÑервиÑÑ‹, такие как Mattermost", |
259 | "subscription.features.proxy" : "Подержка прокÑи Ð´Ð»Ñ ÑервиÑов", | 293 | "subscription.features.proxy" : "Подержка прокÑи Ð´Ð»Ñ ÑервиÑов", |
260 | "subscription.features.spellchecker" : "Поддержка проверки правопиÑаниÑ", | 294 | "subscription.features.spellchecker" : "Поддержка проверки правопиÑаниÑ", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает", | 296 | "subscription.includedFeatures" : "Платный премиум аккаунт Franz включает", |
262 | "subscription.paymentSessionError" : "Ðевозможно загрузить форму оплаты", | 297 | "subscription.paymentSessionError" : "Ðевозможно загрузить форму оплаты", |
263 | "subscription.submit.label" : "Я хочу поддержать разработку Franz", | 298 | "subscription.submit.label" : "Я хочу поддержать разработку Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} обÑзательно", | 316 | "validation.required" : "{field} обÑзательно", |
282 | "validation.url" : "{field} ÑвлÑетÑÑ Ð½ÐµÐ´ÐµÐ¹Ñтвительной ÑÑылкой", | 317 | "validation.url" : "{field} ÑвлÑетÑÑ Ð½ÐµÐ´ÐµÐ¹Ñтвительной ÑÑылкой", |
283 | "welcome.loginButton" : "Вход", | 318 | "welcome.loginButton" : "Вход", |
284 | "welcome.signupButton" : "Создать беÑплатный аккаунт" | 319 | "welcome.signupButton" : "Создать беÑплатный аккаунт", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Ð’Ñе ÑервиÑÑ‹", | ||
322 | "workspaceDrawer.headline" : "Окружение", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "ВоÑÑтановить премиум аккаунт", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/sk.json b/src/i18n/locales/sk.json index 688490b58..7af29ef1c 100644 --- a/src/i18n/locales/sk.json +++ b/src/i18n/locales/sk.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Obnoviť", | 2 | "app.errorHandler.action" : "Obnoviť", |
3 | "app.errorHandler.headline" : "Something went wrong", | 3 | "app.errorHandler.headline" : "Something went wrong", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz", | 15 | "global.api.unhealthy" : "Nedá sa pripojiť k online službám Franz", |
15 | "global.notConnectedToTheInternet" : "Nie ste pripojenà k internetu.", | 16 | "global.notConnectedToTheInternet" : "Nie ste pripojenà k internetu.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Prihlásiť sa", | 44 | "login.submit.label" : "Prihlásiť sa", |
44 | "login.tokenExpired" : "VaÅ¡a relácia vyprÅ¡ala, prihláste sa prosÃm znovu.", | 45 | "login.tokenExpired" : "VaÅ¡a relácia vyprÅ¡ala, prihláste sa prosÃm znovu.", |
45 | "menu.app.about" : "O aplikácii", | 46 | "menu.app.about" : "O aplikácii", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Skryť", | 48 | "menu.app.hide" : "Skryť", |
47 | "menu.app.hideOthers" : "Skryť ostatné", | 49 | "menu.app.hideOthers" : "Skryť ostatné", |
48 | "menu.app.quit" : "UkonÄiÅ¥", | 50 | "menu.app.quit" : "UkonÄiÅ¥", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Okno", | 89 | "menu.window" : "Okno", |
88 | "menu.window.close" : "Zatvoriť", | 90 | "menu.window.close" : "Zatvoriť", |
89 | "menu.window.minimize" : "Minimalizovať", | 91 | "menu.window.minimize" : "Minimalizovať", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Všetky služby", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-mailová adresa", | 97 | "password.email.label" : "E-mailová adresa", |
91 | "password.headline" : "Obnoviť heslo", | 98 | "password.headline" : "Obnoviť heslo", |
92 | "password.link.login" : "PrihlásiÅ¥ sa do vášho úÄtu", | 99 | "password.link.login" : "PrihlásiÅ¥ sa do vášho úÄtu", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Ale nie!", | 117 | "service.errorHandler.headline" : "Ale nie!", |
111 | "service.errorHandler.message" : "Chyba", | 118 | "service.errorHandler.message" : "Chyba", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "ZaÄÃname", | 121 | "services.getStarted" : "ZaÄÃname", |
114 | "services.welcome" : "VÃtajte v aplikácii Franz", | 122 | "services.welcome" : "VÃtajte v aplikácii Franz", |
115 | "settings.account.account.editButton" : "UpraviÅ¥ úÄet", | 123 | "settings.account.account.editButton" : "UpraviÅ¥ úÄet", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Všeobecné", | 164 | "settings.app.headlineGeneral" : "Všeobecné", |
157 | "settings.app.headlineLanguage" : "Jazyk", | 165 | "settings.app.headlineLanguage" : "Jazyk", |
158 | "settings.app.headlineUpdates" : "Aktualizácie", | 166 | "settings.app.headlineUpdates" : "Aktualizácie", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Zmeny vyžadujú reštart", | 168 | "settings.app.restartRequired" : "Zmeny vyžadujú reštart", |
160 | "settings.app.subheadlineCache" : "Vyrovnávacia pamäť", | 169 | "settings.app.subheadlineCache" : "Vyrovnávacia pamäť", |
161 | "settings.app.translationHelp" : "Pomôžte nám preložiť Franz do svojho jazyka.", | 170 | "settings.app.translationHelp" : "Pomôžte nám preložiť Franz do svojho jazyka.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Pozvať priateľov", | 177 | "settings.navigation.inviteFriends" : "Pozvať priateľov", |
169 | "settings.navigation.logout" : "Odhlásiť sa", | 178 | "settings.navigation.logout" : "Odhlásiť sa", |
170 | "settings.navigation.settings" : "Nastavenia", | 179 | "settings.navigation.settings" : "Nastavenia", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Vaše služby", | 181 | "settings.navigation.yourServices" : "Vaše služby", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Všetky služby", | 183 | "settings.recipes.all" : "Všetky služby", |
173 | "settings.recipes.dev" : "Vývoj", | 184 | "settings.recipes.dev" : "Vývoj", |
174 | "settings.recipes.headline" : "Dostupné služby", | 185 | "settings.recipes.headline" : "Dostupné služby", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "VÅ¡etky zvuky sú stÃÅ¡ené", | 237 | "settings.services.tooltip.isMuted" : "VÅ¡etky zvuky sú stÃÅ¡ené", |
227 | "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", | 238 | "settings.services.tooltip.notificationsDisabled" : "Oznámenia sú vypnuté", |
228 | "settings.services.updatedInfo" : "Vaše zmeny boli uložené", | 239 | "settings.services.updatedInfo" : "Vaše zmeny boli uložené", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "TÃm", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "SpoloÄnosÅ¥", | 246 | "settings.user.form.accountType.company" : "SpoloÄnosÅ¥", |
230 | "settings.user.form.accountType.individual" : "Osoba", | 247 | "settings.user.form.accountType.individual" : "Osoba", |
231 | "settings.user.form.accountType.label" : "Typ úÄtu", | 248 | "settings.user.form.accountType.label" : "Typ úÄtu", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Krstné meno", | 252 | "settings.user.form.firstname" : "Krstné meno", |
236 | "settings.user.form.lastname" : "Priezvisko", | 253 | "settings.user.form.lastname" : "Priezvisko", |
237 | "settings.user.form.newPassword" : "Nové heslo", | 254 | "settings.user.form.newPassword" : "Nové heslo", |
255 | "settings.workspace.add.form.name" : "Meno", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Meno", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Skúsiť znova", | ||
266 | "settings.workspaces.updatedInfo" : "Vaše zmeny boli uložené", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Pridať novú službu", | 270 | "sidebar.addNewService" : "Pridať novú službu", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Vypnúť upozornenia a zvuky", | 272 | "sidebar.muteApp" : "Vypnúť upozornenia a zvuky", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Nastavenia", | 274 | "sidebar.settings" : "Nastavenia", |
241 | "sidebar.unmuteApp" : "Povoliť oznámenia a zvuky", | 275 | "sidebar.unmuteApp" : "Povoliť oznámenia a zvuky", |
242 | "signup.company.label" : "SpoloÄnosÅ¥", | 276 | "signup.company.label" : "SpoloÄnosÅ¥", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Platený úÄet Premium Supporter Franz zahŕňa", | 296 | "subscription.includedFeatures" : "Platený úÄet Premium Supporter Franz zahŕňa", |
262 | "subscription.paymentSessionError" : "Nepodarilo sa inicializovať platbu od", | 297 | "subscription.paymentSessionError" : "Nepodarilo sa inicializovať platbu od", |
263 | "subscription.submit.label" : "Chcem podporiť vývoj aplikácie Franz", | 298 | "subscription.submit.label" : "Chcem podporiť vývoj aplikácie Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} je povinné", | 316 | "validation.required" : "{field} je povinné", |
282 | "validation.url" : "{field} nie je platné URL", | 317 | "validation.url" : "{field} nie je platné URL", |
283 | "welcome.loginButton" : "PrihlásiÅ¥ sa do vášho úÄtu", | 318 | "welcome.loginButton" : "PrihlásiÅ¥ sa do vášho úÄtu", |
284 | "welcome.signupButton" : "VytvoriÅ¥ úÄet zdarma" | 319 | "welcome.signupButton" : "VytvoriÅ¥ úÄet zdarma", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Všetky služby", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/sr.json b/src/i18n/locales/sr.json index a3a80925d..e5962566b 100644 --- a/src/i18n/locales/sr.json +++ b/src/i18n/locales/sr.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Ponovno uÄitavanje", | 2 | "app.errorHandler.action" : "Ponovno uÄitavanje", |
3 | "app.errorHandler.headline" : "Something went wrong", | 3 | "app.errorHandler.headline" : "Something went wrong", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Get a Franz Supporter License", | 5 | "feature.delayApp.action" : "Get a Franz Supporter License", |
5 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", | 6 | "feature.delayApp.headline" : "Please purchase a Franz Supporter License to skip waiting", |
6 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | 7 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ", | 15 | "global.api.unhealthy" : "Nije moguće pristupiti Franz-ovim on-line servisima. ", |
15 | "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", | 16 | "global.notConnectedToTheInternet" : "Niste povezani sa serverom.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Prijavite se", | 44 | "login.submit.label" : "Prijavite se", |
44 | "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", | 45 | "login.tokenExpired" : "Vaša sesija je istekla, prijavite se ponovo.", |
45 | "menu.app.about" : "O Francu", | 46 | "menu.app.about" : "O Francu", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Sakrij", | 48 | "menu.app.hide" : "Sakrij", |
47 | "menu.app.hideOthers" : "Sakrij ostale", | 49 | "menu.app.hideOthers" : "Sakrij ostale", |
48 | "menu.app.quit" : "Izađi", | 50 | "menu.app.quit" : "Izađi", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "У прозору", | 89 | "menu.window" : "У прозору", |
88 | "menu.window.close" : "Затвори", | 90 | "menu.window.close" : "Затвори", |
89 | "menu.window.minimize" : "Умањи", | 91 | "menu.window.minimize" : "Умањи", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Sve usluge", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Vaša e-adresa", | 97 | "password.email.label" : "Vaša e-adresa", |
91 | "password.headline" : "Stvorite novu zaporku", | 98 | "password.headline" : "Stvorite novu zaporku", |
92 | "password.link.login" : "Prijavite se na VaÅ¡ raÄun", | 99 | "password.link.login" : "Prijavite se na VaÅ¡ raÄun", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "O, ne! ", | 117 | "service.errorHandler.headline" : "O, ne! ", |
111 | "service.errorHandler.message" : "Greška ", | 118 | "service.errorHandler.message" : "Greška ", |
112 | "service.errorHandler.text" : "{name} has failed to load.", | 119 | "service.errorHandler.text" : "{name} has failed to load.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "ZapoÄnimo! ", | 121 | "services.getStarted" : "ZapoÄnimo! ", |
114 | "services.welcome" : "Dobrodošli u Franz", | 122 | "services.welcome" : "Dobrodošli u Franz", |
115 | "settings.account.account.editButton" : "Uredi raÄun", | 123 | "settings.account.account.editButton" : "Uredi raÄun", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Općenito", | 164 | "settings.app.headlineGeneral" : "Općenito", |
157 | "settings.app.headlineLanguage" : "Jezik", | 165 | "settings.app.headlineLanguage" : "Jezik", |
158 | "settings.app.headlineUpdates" : "Nadogradnje", | 166 | "settings.app.headlineUpdates" : "Nadogradnje", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni pogon", | 168 | "settings.app.restartRequired" : "Promjene postavki zahtijevaju ponovni pogon", |
160 | "settings.app.subheadlineCache" : "Кеш", | 169 | "settings.app.subheadlineCache" : "Кеш", |
161 | "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", | 170 | "settings.app.translationHelp" : "Pomozite nam prevesti aplikaciju na Vaš jezik. ", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Позови пријатеље", | 177 | "settings.navigation.inviteFriends" : "Позови пријатеље", |
169 | "settings.navigation.logout" : "Odjava", | 178 | "settings.navigation.logout" : "Odjava", |
170 | "settings.navigation.settings" : "Postavke", | 179 | "settings.navigation.settings" : "Postavke", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Vaše usluge", | 181 | "settings.navigation.yourServices" : "Vaše usluge", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Sve usluge", | 183 | "settings.recipes.all" : "Sve usluge", |
173 | "settings.recipes.dev" : "Razvoj", | 184 | "settings.recipes.dev" : "Razvoj", |
174 | "settings.recipes.headline" : "Dostupne usluge", | 185 | "settings.recipes.headline" : "Dostupne usluge", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.", | 237 | "settings.services.tooltip.isMuted" : "Svi zvukovi su onemogućeni.", |
227 | "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", | 238 | "settings.services.tooltip.notificationsDisabled" : "Obavijesti su onemogućene.", |
228 | "settings.services.updatedInfo" : "Vaše promjene su pohranjene.", | 239 | "settings.services.updatedInfo" : "Vaše promjene su pohranjene.", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Tim", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Tvrtka", | 246 | "settings.user.form.accountType.company" : "Tvrtka", |
230 | "settings.user.form.accountType.individual" : "Pojedinac", | 247 | "settings.user.form.accountType.individual" : "Pojedinac", |
231 | "settings.user.form.accountType.label" : "Tip raÄuna", | 248 | "settings.user.form.accountType.label" : "Tip raÄuna", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Ime", | 252 | "settings.user.form.firstname" : "Ime", |
236 | "settings.user.form.lastname" : "Prezime", | 253 | "settings.user.form.lastname" : "Prezime", |
237 | "settings.user.form.newPassword" : "Nova lozinka", | 254 | "settings.user.form.newPassword" : "Nova lozinka", |
255 | "settings.workspace.add.form.name" : "Ime", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Ime", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Pokušajte ponovno", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Dodajte novu uslugu", | 270 | "sidebar.addNewService" : "Dodajte novu uslugu", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Онемогући обавештења и звукове", | 272 | "sidebar.muteApp" : "Онемогући обавештења и звукове", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Postavke", | 274 | "sidebar.settings" : "Postavke", |
241 | "sidebar.unmuteApp" : "ИÑкључи обавештења и звукове", | 275 | "sidebar.unmuteApp" : "ИÑкључи обавештења и звукове", |
242 | "signup.company.label" : "Tvrtka", | 276 | "signup.company.label" : "Tvrtka", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "Add on-premise\/hosted services like Mattermost", |
259 | "subscription.features.proxy" : "Proxy support for services", | 293 | "subscription.features.proxy" : "Proxy support for services", |
260 | "subscription.features.spellchecker" : "Support for spellchecker", | 294 | "subscription.features.spellchecker" : "Support for spellchecker", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće:", | 296 | "subscription.includedFeatures" : "Plaćeni\/Premium raÄun ukljuÄuje sljedeće:", |
262 | "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", | 297 | "subscription.paymentSessionError" : "Nemoguće inicijalizirati obrazac za uplatu", |
263 | "subscription.submit.label" : "Želim da podržim razvoj Franca.", | 298 | "subscription.submit.label" : "Želim da podržim razvoj Franca.", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{поље} је неопходно", | 316 | "validation.required" : "{поље} је неопходно", |
282 | "validation.url" : "{field} није валидан УРЛ", | 317 | "validation.url" : "{field} није валидан УРЛ", |
283 | "welcome.loginButton" : "Prijavite se na raÄun", | 318 | "welcome.loginButton" : "Prijavite se na raÄun", |
284 | "welcome.signupButton" : "Stvorite novi korisniÄki raÄun" | 319 | "welcome.signupButton" : "Stvorite novi korisniÄki raÄun", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Sve usluge", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/tr.json b/src/i18n/locales/tr.json index 9f8313c2e..69c5ede37 100644 --- a/src/i18n/locales/tr.json +++ b/src/i18n/locales/tr.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Tekrar Yükle", | 2 | "app.errorHandler.action" : "Tekrar Yükle", |
3 | "app.errorHandler.headline" : "Bir terslik çıktı", | 3 | "app.errorHandler.headline" : "Bir terslik çıktı", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Franz Destek Lisansı'nı alın", | 5 | "feature.delayApp.action" : "Franz Destek Lisansı'nı alın", |
5 | "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın", | 6 | "feature.delayApp.headline" : "Beklememek için Franz Destek Lisansı'nı satın alın", |
6 | "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", | 7 | "feature.delayApp.text" : "Franz {seconds} saniye sonra devam edecek.", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Twitter'da PaylaÅŸ", | 10 | "feature.shareFranz.action.twitter" : "Twitter'da PaylaÅŸ", |
10 | "feature.shareFranz.headline" : "Franz birlikte daha iyi!", | 11 | "feature.shareFranz.headline" : "Franz birlikte daha iyi!", |
11 | "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.", | 12 | "feature.shareFranz.shareText.email" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin.", |
12 | "feature.shareFranz.shareText.twitter" : "Franz'a {count} tane servis ekledim! WhatsApp, Messenger, Slack ve fazlasını içeren ücretsiz uygulamayı www.meetfranz.com adresinden edinin. \/cc @MeetFranz", | 13 | "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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.", | 14 | "feature.shareFranz.text" : "Arkadaşlarına ve meslektaşlarına Franz'ın ne kadar harika olduğunu söyle ve bize bu kelimeyi yaymamızda yardım et.", |
14 | "global.api.unhealthy" : "Franz hizmetlerine ÅŸu anda eriÅŸilemiyor", | 15 | "global.api.unhealthy" : "Franz hizmetlerine ÅŸu anda eriÅŸilemiyor", |
15 | "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", | 16 | "global.notConnectedToTheInternet" : "İnternete bağlı değilsiniz.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Oturum Aç", | 44 | "login.submit.label" : "Oturum Aç", |
44 | "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.", | 45 | "login.tokenExpired" : "Oturum zaman aşımına uğradı, lütfen tekrar giriş yapın.", |
45 | "menu.app.about" : "Franz Hakkında", | 46 | "menu.app.about" : "Franz Hakkında", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Gizle", | 48 | "menu.app.hide" : "Gizle", |
47 | "menu.app.hideOthers" : "DiÄŸerlerini Gizle", | 49 | "menu.app.hideOthers" : "DiÄŸerlerini Gizle", |
48 | "menu.app.quit" : "Çıkış", | 50 | "menu.app.quit" : "Çıkış", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Pencere", | 89 | "menu.window" : "Pencere", |
88 | "menu.window.close" : "Kapat", | 90 | "menu.window.close" : "Kapat", |
89 | "menu.window.minimize" : "Simge Durumuna Küçült", | 91 | "menu.window.minimize" : "Simge Durumuna Küçült", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Tüm servisler", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "E-posta adresi", | 97 | "password.email.label" : "E-posta adresi", |
91 | "password.headline" : "Parola sıfırla", | 98 | "password.headline" : "Parola sıfırla", |
92 | "password.link.login" : "Hesabına giriş yap", | 99 | "password.link.login" : "Hesabına giriş yap", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "Hayııırrr!", | 117 | "service.errorHandler.headline" : "Hayııırrr!", |
111 | "service.errorHandler.message" : "Hata", | 118 | "service.errorHandler.message" : "Hata", |
112 | "service.errorHandler.text" : "{name} yüklenemedi.", | 119 | "service.errorHandler.text" : "{name} yüklenemedi.", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Haydi başlayalım", | 121 | "services.getStarted" : "Haydi başlayalım", |
114 | "services.welcome" : "Franz'a HoÅŸgeldiniz", | 122 | "services.welcome" : "Franz'a HoÅŸgeldiniz", |
115 | "settings.account.account.editButton" : "Hesabı düzenle", | 123 | "settings.account.account.editButton" : "Hesabı düzenle", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Genel", | 164 | "settings.app.headlineGeneral" : "Genel", |
157 | "settings.app.headlineLanguage" : "Dil", | 165 | "settings.app.headlineLanguage" : "Dil", |
158 | "settings.app.headlineUpdates" : "Güncellemeler", | 166 | "settings.app.headlineUpdates" : "Güncellemeler", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Değişiklikler yeniden başlatmayı gerektiriyor", | 168 | "settings.app.restartRequired" : "Değişiklikler yeniden başlatmayı gerektiriyor", |
160 | "settings.app.subheadlineCache" : "Önbellek", | 169 | "settings.app.subheadlineCache" : "Önbellek", |
161 | "settings.app.translationHelp" : "Franz'ı senin diline tercüme etmemiz için yardım et.", | 170 | "settings.app.translationHelp" : "Franz'ı senin diline tercüme etmemiz için yardım et.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "Arkadaşlarını Davet Et", | 177 | "settings.navigation.inviteFriends" : "Arkadaşlarını Davet Et", |
169 | "settings.navigation.logout" : "Çıkış", | 178 | "settings.navigation.logout" : "Çıkış", |
170 | "settings.navigation.settings" : "Ayarlar", | 179 | "settings.navigation.settings" : "Ayarlar", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Servislerin", | 181 | "settings.navigation.yourServices" : "Servislerin", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Tüm servisler", | 183 | "settings.recipes.all" : "Tüm servisler", |
173 | "settings.recipes.dev" : "GeliÅŸtirme", | 184 | "settings.recipes.dev" : "GeliÅŸtirme", |
174 | "settings.recipes.headline" : "Mevcut servisler", | 185 | "settings.recipes.headline" : "Mevcut servisler", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Tüm sesler kapalı", | 237 | "settings.services.tooltip.isMuted" : "Tüm sesler kapalı", |
227 | "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı", | 238 | "settings.services.tooltip.notificationsDisabled" : "Bildirimler devre dışı", |
228 | "settings.services.updatedInfo" : "DeÄŸiÅŸikliklerin kaydedildi", | 239 | "settings.services.updatedInfo" : "DeÄŸiÅŸikliklerin kaydedildi", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Takım", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "Kurum", | 246 | "settings.user.form.accountType.company" : "Kurum", |
230 | "settings.user.form.accountType.individual" : "Bireysel", | 247 | "settings.user.form.accountType.individual" : "Bireysel", |
231 | "settings.user.form.accountType.label" : "Hesap tipi", | 248 | "settings.user.form.accountType.label" : "Hesap tipi", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Ad", | 252 | "settings.user.form.firstname" : "Ad", |
236 | "settings.user.form.lastname" : "Soyad", | 253 | "settings.user.form.lastname" : "Soyad", |
237 | "settings.user.form.newPassword" : "Yeni ÅŸifre", | 254 | "settings.user.form.newPassword" : "Yeni ÅŸifre", |
255 | "settings.workspace.add.form.name" : "Name", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Name", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Tekrar deneyin", | ||
266 | "settings.workspaces.updatedInfo" : "DeÄŸiÅŸikliklerin kaydedildi", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Yeni servis ekle", | 270 | "sidebar.addNewService" : "Yeni servis ekle", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Bildirimleri ve sesli uyarıları kapat", | 272 | "sidebar.muteApp" : "Bildirimleri ve sesli uyarıları kapat", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "Ayarlar", | 274 | "sidebar.settings" : "Ayarlar", |
241 | "sidebar.unmuteApp" : "Bildirimleri ve sesli uyarıları etkinleştir", | 275 | "sidebar.unmuteApp" : "Bildirimleri ve sesli uyarıları etkinleştir", |
242 | "signup.company.label" : "Kurum", | 276 | "signup.company.label" : "Kurum", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "Mattermost gibi şirket-içi\/barındırılan servisler ekleyin", | 292 | "subscription.features.onpremise.mattermost" : "Mattermost gibi şirket-içi\/barındırılan servisler ekleyin", |
259 | "subscription.features.proxy" : "Servisler için proxy desteği", | 293 | "subscription.features.proxy" : "Servisler için proxy desteği", |
260 | "subscription.features.spellchecker" : "Yazım denetleyicisi desteği", | 294 | "subscription.features.spellchecker" : "Yazım denetleyicisi desteği", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", | 296 | "subscription.includedFeatures" : "Ücretli Franz Premium Destekçi Hesabına dahil", |
262 | "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", | 297 | "subscription.paymentSessionError" : "Ödeme formu başlatılamadı", |
263 | "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", | 298 | "subscription.submit.label" : "Franz'ın gelişimini desteklemek istiyorum", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} gereklidir", | 316 | "validation.required" : "{field} gereklidir", |
282 | "validation.url" : "{field} geçerli bir URL değil", | 317 | "validation.url" : "{field} geçerli bir URL değil", |
283 | "welcome.loginButton" : "Hesabına giriş yap", | 318 | "welcome.loginButton" : "Hesabına giriş yap", |
284 | "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur" | 319 | "welcome.signupButton" : "Ãœcretsiz hesap oluÅŸtur", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Tüm servisler", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/uk.json b/src/i18n/locales/uk.json index 56dda09d5..113665f5f 100644 --- a/src/i18n/locales/uk.json +++ b/src/i18n/locales/uk.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "Перезавантажити", | 2 | "app.errorHandler.action" : "Перезавантажити", |
3 | "app.errorHandler.headline" : "ЩоÑÑŒ пішло не так", | 3 | "app.errorHandler.headline" : "ЩоÑÑŒ пішло не так", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "Отримати ліцензію Franz Supporter ", | 5 | "feature.delayApp.action" : "Отримати ліцензію Franz Supporter ", |
5 | "feature.delayApp.headline" : "Будь лаÑка, придбайте ліцензію Franz Supporter аби пропуÑтити очікуваннÑ", | 6 | "feature.delayApp.headline" : "Будь лаÑка, придбайте ліцензію Franz Supporter аби пропуÑтити очікуваннÑ", |
6 | "feature.delayApp.text" : "Franz відновить роботу за {seconds} Ñекунд", | 7 | "feature.delayApp.text" : "Franz відновить роботу за {seconds} Ñекунд", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "Ðе можливо підключитиÑÑŒ до онлайн ÑервіÑів Franz", | 15 | "global.api.unhealthy" : "Ðе можливо підключитиÑÑŒ до онлайн ÑервіÑів Franz", |
15 | "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", | 16 | "global.notConnectedToTheInternet" : "Ви не підключені до Інтернету.", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "Увійти", | 44 | "login.submit.label" : "Увійти", |
44 | "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.", | 45 | "login.tokenExpired" : "Ваша ÑеÑÑ–Ñ Ð·Ð°ÐºÑ–Ð½Ñ‡Ð¸Ð»Ð°ÑÑŒ, будь лаÑка, увійдіть знову.", |
45 | "menu.app.about" : "Про Franz", | 46 | "menu.app.about" : "Про Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "Приховати", | 48 | "menu.app.hide" : "Приховати", |
47 | "menu.app.hideOthers" : "Приховати інші", | 49 | "menu.app.hideOthers" : "Приховати інші", |
48 | "menu.app.quit" : "Вийти", | 50 | "menu.app.quit" : "Вийти", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "Вікно", | 89 | "menu.window" : "Вікно", |
88 | "menu.window.close" : "Закрити", | 90 | "menu.window.close" : "Закрити", |
89 | "menu.window.minimize" : "Згорнути", | 91 | "menu.window.minimize" : "Згорнути", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "Ð’ÑÑ– ÑервіÑи", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "Email адреÑа", | 97 | "password.email.label" : "Email адреÑа", |
91 | "password.headline" : "Скинути пароль", | 98 | "password.headline" : "Скинути пароль", |
92 | "password.link.login" : "Увійти до вашого акаунту", | 99 | "password.link.login" : "Увійти до вашого акаунту", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "О, ні!", | 117 | "service.errorHandler.headline" : "О, ні!", |
111 | "service.errorHandler.message" : "Помилка", | 118 | "service.errorHandler.message" : "Помилка", |
112 | "service.errorHandler.text" : "{name} не завантажено", | 119 | "service.errorHandler.text" : "{name} не завантажено", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "Почати", | 121 | "services.getStarted" : "Почати", |
114 | "services.welcome" : "ЛаÑкаво проÑимо в Franz", | 122 | "services.welcome" : "ЛаÑкаво проÑимо в Franz", |
115 | "settings.account.account.editButton" : "Редагувати акаунт", | 123 | "settings.account.account.editButton" : "Редагувати акаунт", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "Загальні", | 164 | "settings.app.headlineGeneral" : "Загальні", |
157 | "settings.app.headlineLanguage" : "Мова", | 165 | "settings.app.headlineLanguage" : "Мова", |
158 | "settings.app.headlineUpdates" : "ОновленнÑ", | 166 | "settings.app.headlineUpdates" : "ОновленнÑ", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "Зміни потребують перезапуÑку", | 168 | "settings.app.restartRequired" : "Зміни потребують перезапуÑку", |
160 | "settings.app.subheadlineCache" : "Кеш", | 169 | "settings.app.subheadlineCache" : "Кеш", |
161 | "settings.app.translationHelp" : "Допоможіть переклаÑти Franz на Вашу мову.", | 170 | "settings.app.translationHelp" : "Допоможіть переклаÑти Franz на Вашу мову.", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "ЗапроÑити друзів", | 177 | "settings.navigation.inviteFriends" : "ЗапроÑити друзів", |
169 | "settings.navigation.logout" : "Вийти", | 178 | "settings.navigation.logout" : "Вийти", |
170 | "settings.navigation.settings" : "ÐалаштуваннÑ", | 179 | "settings.navigation.settings" : "ÐалаштуваннÑ", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "Ваші ÑервіÑи", | 181 | "settings.navigation.yourServices" : "Ваші ÑервіÑи", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "Ð’ÑÑ– ÑервіÑи", | 183 | "settings.recipes.all" : "Ð’ÑÑ– ÑервіÑи", |
173 | "settings.recipes.dev" : "Розробка", | 184 | "settings.recipes.dev" : "Розробка", |
174 | "settings.recipes.headline" : "ДоÑтупні ÑервіÑи", | 185 | "settings.recipes.headline" : "ДоÑтупні ÑервіÑи", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "Ð’ÑÑ– звуки вимкнено", | 237 | "settings.services.tooltip.isMuted" : "Ð’ÑÑ– звуки вимкнено", |
227 | "settings.services.tooltip.notificationsDisabled" : "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ–", | 238 | "settings.services.tooltip.notificationsDisabled" : "Ð¡Ð¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ð²Ñ–Ð´ÐºÐ»ÑŽÑ‡ÐµÐ½Ñ–", |
228 | "settings.services.updatedInfo" : "Ваші зміни були збережені", | 239 | "settings.services.updatedInfo" : "Ваші зміни були збережені", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "Команда", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "КомпаніÑ", | 246 | "settings.user.form.accountType.company" : "КомпаніÑ", |
230 | "settings.user.form.accountType.individual" : "Індивідуальний", | 247 | "settings.user.form.accountType.individual" : "Індивідуальний", |
231 | "settings.user.form.accountType.label" : "Тип акаунту", | 248 | "settings.user.form.accountType.label" : "Тип акаунту", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "Ім`Ñ", | 252 | "settings.user.form.firstname" : "Ім`Ñ", |
236 | "settings.user.form.lastname" : "Прізвище", | 253 | "settings.user.form.lastname" : "Прізвище", |
237 | "settings.user.form.newPassword" : "Ðовий пароль", | 254 | "settings.user.form.newPassword" : "Ðовий пароль", |
255 | "settings.workspace.add.form.name" : "Ім'Ñ", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "Ім'Ñ", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "Спробуйте ще раз", | ||
266 | "settings.workspaces.updatedInfo" : "Ваші зміни були збережені", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "Додати новий ÑервіÑ", | 270 | "sidebar.addNewService" : "Додати новий ÑервіÑ", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "Вимкнути ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð° звуки", | 272 | "sidebar.muteApp" : "Вимкнути ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð° звуки", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "ÐалаштуваннÑ", | 274 | "sidebar.settings" : "ÐалаштуваннÑ", |
241 | "sidebar.unmuteApp" : "Увімкнути ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð° звуки", | 275 | "sidebar.unmuteApp" : "Увімкнути ÑÐ¿Ð¾Ð²Ñ–Ñ‰ÐµÐ½Ð½Ñ Ñ‚Ð° звуки", |
242 | "signup.company.label" : "КомпаніÑ", | 276 | "signup.company.label" : "КомпаніÑ", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "СервіÑи, що виконуютьÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾\/вимагають хоÑтингу, приміром Mattermost", | 292 | "subscription.features.onpremise.mattermost" : "СервіÑи, що виконуютьÑÑ Ð»Ð¾ÐºÐ°Ð»ÑŒÐ½Ð¾\/вимагають хоÑтингу, приміром Mattermost", |
259 | "subscription.features.proxy" : "Підтримка прокÑÑ– ", | 293 | "subscription.features.proxy" : "Підтримка прокÑÑ– ", |
260 | "subscription.features.spellchecker" : "Підтримка перевірки правопиÑу", | 294 | "subscription.features.spellchecker" : "Підтримка перевірки правопиÑу", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Платний Преміальний Ðкаунт Прихильника Franz включає", | 296 | "subscription.includedFeatures" : "Платний Преміальний Ðкаунт Прихильника Franz включає", |
262 | "subscription.paymentSessionError" : "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ форму платежу", | 297 | "subscription.paymentSessionError" : "Ðе вдалоÑÑ Ñ–Ð½Ñ–Ñ†Ñ–Ð°Ð»Ñ–Ð·ÑƒÐ²Ð°Ñ‚Ð¸ форму платежу", |
263 | "subscription.submit.label" : "Я хочу підтримати розробку Franz", | 298 | "subscription.submit.label" : "Я хочу підтримати розробку Franz", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field} обов'Ñзвоке", | 316 | "validation.required" : "{field} обов'Ñзвоке", |
282 | "validation.url" : "{field} не валідний URL", | 317 | "validation.url" : "{field} не валідний URL", |
283 | "welcome.loginButton" : "Увійдіть до Ñвого акаунту", | 318 | "welcome.loginButton" : "Увійдіть до Ñвого акаунту", |
284 | "welcome.signupButton" : "Створити безплатний акаунт" | 319 | "welcome.signupButton" : "Створити безплатний акаунт", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "Ð’ÑÑ– ÑервіÑи", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/locales/zh-TW.json b/src/i18n/locales/zh-TW.json index 54245ba57..34bd2158c 100644 --- a/src/i18n/locales/zh-TW.json +++ b/src/i18n/locales/zh-TW.json | |||
@@ -1,6 +1,7 @@ | |||
1 | { | 1 | { |
2 | "app.errorHandler.action" : "é‡æ–°è¼‰å…¥", | 2 | "app.errorHandler.action" : "é‡æ–°è¼‰å…¥", |
3 | "app.errorHandler.headline" : "有些æ±è¥¿å‡ºéŒ¯äº†", | 3 | "app.errorHandler.headline" : "有些æ±è¥¿å‡ºéŒ¯äº†", |
4 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
4 | "feature.delayApp.action" : "å–å¾— Franz 支æ´æŽˆæ¬Š", | 5 | "feature.delayApp.action" : "å–å¾— Franz 支æ´æŽˆæ¬Š", |
5 | "feature.delayApp.headline" : "請購買 Franz 支æ´æŽˆæ¬Šä»¥è·³éŽç‰å€™", | 6 | "feature.delayApp.headline" : "請購買 Franz 支æ´æŽˆæ¬Šä»¥è·³éŽç‰å€™", |
6 | "feature.delayApp.text" : "Franz 會在 {seconds} 秒後繼續。", | 7 | "feature.delayApp.text" : "Franz 會在 {seconds} 秒後繼續。", |
@@ -9,7 +10,7 @@ | |||
9 | "feature.shareFranz.action.twitter" : "Share on Twitter", | 10 | "feature.shareFranz.action.twitter" : "Share on Twitter", |
10 | "feature.shareFranz.headline" : "Franz is better together!", | 11 | "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.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.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 @FranzMessenger", |
13 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | 14 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", |
14 | "global.api.unhealthy" : "無法連線至 Franz 的伺æœå™¨", | 15 | "global.api.unhealthy" : "無法連線至 Franz 的伺æœå™¨", |
15 | "global.notConnectedToTheInternet" : "ä½ æ²’æœ‰é€£ä¸Šç¶²è·¯ã€‚", | 16 | "global.notConnectedToTheInternet" : "ä½ æ²’æœ‰é€£ä¸Šç¶²è·¯ã€‚", |
@@ -43,6 +44,7 @@ | |||
43 | "login.submit.label" : "登入", | 44 | "login.submit.label" : "登入", |
44 | "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚", | 45 | "login.tokenExpired" : "您的登入已éŽæœŸï¼Œè«‹é‡æ–°ç™»å…¥ã€‚", |
45 | "menu.app.about" : "關於 Franz", | 46 | "menu.app.about" : "關於 Franz", |
47 | "menu.app.announcement" : "What's new?", | ||
46 | "menu.app.hide" : "éš±è—", | 48 | "menu.app.hide" : "éš±è—", |
47 | "menu.app.hideOthers" : "éš±è—其他", | 49 | "menu.app.hideOthers" : "éš±è—其他", |
48 | "menu.app.quit" : "çµæŸ", | 50 | "menu.app.quit" : "çµæŸ", |
@@ -87,6 +89,11 @@ | |||
87 | "menu.window" : "視窗", | 89 | "menu.window" : "視窗", |
88 | "menu.window.close" : "關閉", | 90 | "menu.window.close" : "關閉", |
89 | "menu.window.minimize" : "最å°åŒ–", | 91 | "menu.window.minimize" : "最å°åŒ–", |
92 | "menu.workspaces" : "Workspaces", | ||
93 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
94 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
95 | "menu.workspaces.defaultWorkspace" : "所有æœå‹™", | ||
96 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
90 | "password.email.label" : "é›»å郵件地å€", | 97 | "password.email.label" : "é›»å郵件地å€", |
91 | "password.headline" : "é‡è¨å¯†ç¢¼", | 98 | "password.headline" : "é‡è¨å¯†ç¢¼", |
92 | "password.link.login" : "登入您的帳號", | 99 | "password.link.login" : "登入您的帳號", |
@@ -110,6 +117,7 @@ | |||
110 | "service.errorHandler.headline" : "噢ä¸ï¼", | 117 | "service.errorHandler.headline" : "噢ä¸ï¼", |
111 | "service.errorHandler.message" : "錯誤", | 118 | "service.errorHandler.message" : "錯誤", |
112 | "service.errorHandler.text" : "{name} 載入失敗。", | 119 | "service.errorHandler.text" : "{name} 載入失敗。", |
120 | "service.webviewLoader.loading" : "Loading", | ||
113 | "services.getStarted" : "開始", | 121 | "services.getStarted" : "開始", |
114 | "services.welcome" : "æ¡è¿Žä½¿ç”¨ Franz", | 122 | "services.welcome" : "æ¡è¿Žä½¿ç”¨ Franz", |
115 | "settings.account.account.editButton" : "編輯帳號", | 123 | "settings.account.account.editButton" : "編輯帳號", |
@@ -156,6 +164,7 @@ | |||
156 | "settings.app.headlineGeneral" : "一般", | 164 | "settings.app.headlineGeneral" : "一般", |
157 | "settings.app.headlineLanguage" : "語言", | 165 | "settings.app.headlineLanguage" : "語言", |
158 | "settings.app.headlineUpdates" : "æ›´æ–°", | 166 | "settings.app.headlineUpdates" : "æ›´æ–°", |
167 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
159 | "settings.app.restartRequired" : "需è¦é‡å•Ÿä»¥æ›´è®Š", | 168 | "settings.app.restartRequired" : "需è¦é‡å•Ÿä»¥æ›´è®Š", |
160 | "settings.app.subheadlineCache" : "å¿«å–", | 169 | "settings.app.subheadlineCache" : "å¿«å–", |
161 | "settings.app.translationHelp" : "幫助我們將 Franz ç¿»è¯æˆæ‚¨çš„語言。", | 170 | "settings.app.translationHelp" : "幫助我們將 Franz ç¿»è¯æˆæ‚¨çš„語言。", |
@@ -168,7 +177,9 @@ | |||
168 | "settings.navigation.inviteFriends" : "邀請朋å‹", | 177 | "settings.navigation.inviteFriends" : "邀請朋å‹", |
169 | "settings.navigation.logout" : "登出", | 178 | "settings.navigation.logout" : "登出", |
170 | "settings.navigation.settings" : "è¨å®š", | 179 | "settings.navigation.settings" : "è¨å®š", |
180 | "settings.navigation.team" : "Manage Team", | ||
171 | "settings.navigation.yourServices" : "您的æœå‹™", | 181 | "settings.navigation.yourServices" : "您的æœå‹™", |
182 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
172 | "settings.recipes.all" : "所有æœå‹™", | 183 | "settings.recipes.all" : "所有æœå‹™", |
173 | "settings.recipes.dev" : "開發", | 184 | "settings.recipes.dev" : "開發", |
174 | "settings.recipes.headline" : "å¯ä½¿ç”¨çš„æœå‹™", | 185 | "settings.recipes.headline" : "å¯ä½¿ç”¨çš„æœå‹™", |
@@ -226,6 +237,12 @@ | |||
226 | "settings.services.tooltip.isMuted" : "所有的è²éŸ³éƒ½æ˜¯éœéŸ³", | 237 | "settings.services.tooltip.isMuted" : "所有的è²éŸ³éƒ½æ˜¯éœéŸ³", |
227 | "settings.services.tooltip.notificationsDisabled" : "通知已åœç”¨", | 238 | "settings.services.tooltip.notificationsDisabled" : "通知已åœç”¨", |
228 | "settings.services.updatedInfo" : "已儲å˜ä½ 的變更", | 239 | "settings.services.updatedInfo" : "已儲å˜ä½ 的變更", |
240 | "settings.team.contentHeadline" : "Franz for Teams", | ||
241 | "settings.team.copy" : "Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
242 | "settings.team.headline" : "團隊", | ||
243 | "settings.team.intro" : "You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
244 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
245 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
229 | "settings.user.form.accountType.company" : "å…¬å¸", | 246 | "settings.user.form.accountType.company" : "å…¬å¸", |
230 | "settings.user.form.accountType.individual" : "個人", | 247 | "settings.user.form.accountType.individual" : "個人", |
231 | "settings.user.form.accountType.label" : "帳戶類型", | 248 | "settings.user.form.accountType.label" : "帳戶類型", |
@@ -235,8 +252,25 @@ | |||
235 | "settings.user.form.firstname" : "å", | 252 | "settings.user.form.firstname" : "å", |
236 | "settings.user.form.lastname" : "姓", | 253 | "settings.user.form.lastname" : "姓", |
237 | "settings.user.form.newPassword" : "新密碼", | 254 | "settings.user.form.newPassword" : "新密碼", |
255 | "settings.workspace.add.form.name" : "å稱", | ||
256 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
257 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
258 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
259 | "settings.workspace.form.name" : "å稱", | ||
260 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
261 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
262 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
263 | "settings.workspaces.headline" : "Your workspaces", | ||
264 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
265 | "settings.workspaces.tryReloadWorkspaces" : "å†è©¦ä¸€æ¬¡", | ||
266 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
267 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
268 | "settings.workspaces.workspaceFeatureInfo" : "Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | ||
269 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
238 | "sidebar.addNewService" : "新增新的æœå‹™", | 270 | "sidebar.addNewService" : "新增新的æœå‹™", |
271 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
239 | "sidebar.muteApp" : "關閉通知和通知音效", | 272 | "sidebar.muteApp" : "關閉通知和通知音效", |
273 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
240 | "sidebar.settings" : "è¨å®š", | 274 | "sidebar.settings" : "è¨å®š", |
241 | "sidebar.unmuteApp" : "開啟通知和通知音效", | 275 | "sidebar.unmuteApp" : "開啟通知和通知音效", |
242 | "signup.company.label" : "å…¬å¸", | 276 | "signup.company.label" : "å…¬å¸", |
@@ -258,6 +292,7 @@ | |||
258 | "subscription.features.onpremise.mattermost" : "åŠ å…¥å¦‚ Mattermost ç‰å·²é 定 \/ 託管的æœå‹™", | 292 | "subscription.features.onpremise.mattermost" : "åŠ å…¥å¦‚ Mattermost ç‰å·²é 定 \/ 託管的æœå‹™", |
259 | "subscription.features.proxy" : "æœå‹™çš„代ç†ä¼ºæœå™¨æ”¯æ´", | 293 | "subscription.features.proxy" : "æœå‹™çš„代ç†ä¼ºæœå™¨æ”¯æ´", |
260 | "subscription.features.spellchecker" : "支æ´æ‹¼å—檢查", | 294 | "subscription.features.spellchecker" : "支æ´æ‹¼å—檢查", |
295 | "subscription.features.workspaces" : "Organize your services in workspaces", | ||
261 | "subscription.includedFeatures" : "Franz 高級支æ´å¸³æˆ¶åŒ…å«", | 296 | "subscription.includedFeatures" : "Franz 高級支æ´å¸³æˆ¶åŒ…å«", |
262 | "subscription.paymentSessionError" : "無法åˆå§‹åŒ–付款表單", | 297 | "subscription.paymentSessionError" : "無法åˆå§‹åŒ–付款表單", |
263 | "subscription.submit.label" : "æˆ‘æƒ³æ”¯æŒ Franz 開發", | 298 | "subscription.submit.label" : "æˆ‘æƒ³æ”¯æŒ Franz 開發", |
@@ -281,5 +316,16 @@ | |||
281 | "validation.required" : "{field}為必填", | 316 | "validation.required" : "{field}為必填", |
282 | "validation.url" : "{field}ä¸æ˜¯å€‹æœ‰æ•ˆçš„網å€", | 317 | "validation.url" : "{field}ä¸æ˜¯å€‹æœ‰æ•ˆçš„網å€", |
283 | "welcome.loginButton" : "登入您的帳戶", | 318 | "welcome.loginButton" : "登入您的帳戶", |
284 | "welcome.signupButton" : "建立å…費帳號" | 319 | "welcome.signupButton" : "建立å…費帳號", |
320 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
321 | "workspaceDrawer.allServices" : "所有æœå‹™", | ||
322 | "workspaceDrawer.headline" : "Workspaces", | ||
323 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
324 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
325 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
326 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
327 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
328 | "workspaceDrawer.workspaceFeatureInfo" : "<p>Franz Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time.<\/p><p>You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.<\/p>", | ||
329 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
330 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
285 | } | 331 | } |
diff --git a/src/i18n/messages/src/components/layout/AppLayout.json b/src/i18n/messages/src/components/layout/AppLayout.json index 92593ed5c..4dd354afc 100644 --- a/src/i18n/messages/src/components/layout/AppLayout.json +++ b/src/i18n/messages/src/components/layout/AppLayout.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Your services have been updated.", | 4 | "defaultMessage": "!!!Your services have been updated.", |
5 | "file": "src/components/layout/AppLayout.js", | 5 | "file": "src/components/layout/AppLayout.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 25, | 7 | "line": 26, |
8 | "column": 19 | 8 | "column": 19 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 28, | 11 | "line": 29, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!A new update for Franz is available.", | 17 | "defaultMessage": "!!!A new update for Franz is available.", |
18 | "file": "src/components/layout/AppLayout.js", | 18 | "file": "src/components/layout/AppLayout.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 29, | 20 | "line": 30, |
21 | "column": 19 | 21 | "column": 19 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 32, | 24 | "line": 33, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Reload services", | 30 | "defaultMessage": "!!!Reload services", |
31 | "file": "src/components/layout/AppLayout.js", | 31 | "file": "src/components/layout/AppLayout.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 33, | 33 | "line": 34, |
34 | "column": 24 | 34 | "column": 24 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 36, | 37 | "line": 37, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Changelog", | 43 | "defaultMessage": "!!!Changelog", |
44 | "file": "src/components/layout/AppLayout.js", | 44 | "file": "src/components/layout/AppLayout.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 37, | 46 | "line": 38, |
47 | "column": 13 | 47 | "column": 13 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 40, | 50 | "line": 41, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Restart & install update", | 56 | "defaultMessage": "!!!Restart & install update", |
57 | "file": "src/components/layout/AppLayout.js", | 57 | "file": "src/components/layout/AppLayout.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 41, | 59 | "line": 42, |
60 | "column": 23 | 60 | "column": 23 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 44, | 63 | "line": 45, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Could not load services and user information", | 69 | "defaultMessage": "!!!Could not load services and user information", |
70 | "file": "src/components/layout/AppLayout.js", | 70 | "file": "src/components/layout/AppLayout.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 45, | 72 | "line": 46, |
73 | "column": 26 | 73 | "column": 26 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 48, | 76 | "line": 49, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | } | 79 | } |
diff --git a/src/i18n/messages/src/components/settings/account/AccountDashboard.json b/src/i18n/messages/src/components/settings/account/AccountDashboard.json index 603950395..4969db910 100644 --- a/src/i18n/messages/src/components/settings/account/AccountDashboard.json +++ b/src/i18n/messages/src/components/settings/account/AccountDashboard.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Account", | 4 | "defaultMessage": "!!!Account", |
5 | "file": "src/components/settings/account/AccountDashboard.js", | 5 | "file": "src/components/settings/account/AccountDashboard.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 15, | 7 | "line": 14, |
8 | "column": 12 | 8 | "column": 12 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 18, | 11 | "line": 17, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Your Subscription", | 17 | "defaultMessage": "!!!Your Subscription", |
18 | "file": "src/components/settings/account/AccountDashboard.js", | 18 | "file": "src/components/settings/account/AccountDashboard.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 19, | 20 | "line": 18, |
21 | "column": 24 | 21 | "column": 24 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 22, | 24 | "line": 21, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,24 +30,11 @@ | |||
30 | "defaultMessage": "!!!Upgrade your Account", | 30 | "defaultMessage": "!!!Upgrade your Account", |
31 | "file": "src/components/settings/account/AccountDashboard.js", | 31 | "file": "src/components/settings/account/AccountDashboard.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 23, | 33 | "line": 22, |
34 | "column": 19 | 34 | "column": 19 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 26, | 37 | "line": 25, |
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 | 38 | "column": 3 |
52 | } | 39 | } |
53 | }, | 40 | }, |
@@ -56,11 +43,11 @@ | |||
56 | "defaultMessage": "!!Danger Zone", | 43 | "defaultMessage": "!!Danger Zone", |
57 | "file": "src/components/settings/account/AccountDashboard.js", | 44 | "file": "src/components/settings/account/AccountDashboard.js", |
58 | "start": { | 45 | "start": { |
59 | "line": 31, | 46 | "line": 26, |
60 | "column": 22 | 47 | "column": 22 |
61 | }, | 48 | }, |
62 | "end": { | 49 | "end": { |
63 | "line": 34, | 50 | "line": 29, |
64 | "column": 3 | 51 | "column": 3 |
65 | } | 52 | } |
66 | }, | 53 | }, |
@@ -69,11 +56,11 @@ | |||
69 | "defaultMessage": "!!!Manage your subscription", | 56 | "defaultMessage": "!!!Manage your subscription", |
70 | "file": "src/components/settings/account/AccountDashboard.js", | 57 | "file": "src/components/settings/account/AccountDashboard.js", |
71 | "start": { | 58 | "start": { |
72 | "line": 35, | 59 | "line": 30, |
73 | "column": 33 | 60 | "column": 33 |
74 | }, | 61 | }, |
75 | "end": { | 62 | "end": { |
76 | "line": 38, | 63 | "line": 33, |
77 | "column": 3 | 64 | "column": 3 |
78 | } | 65 | } |
79 | }, | 66 | }, |
@@ -82,11 +69,11 @@ | |||
82 | "defaultMessage": "!!!Basic Account", | 69 | "defaultMessage": "!!!Basic Account", |
83 | "file": "src/components/settings/account/AccountDashboard.js", | 70 | "file": "src/components/settings/account/AccountDashboard.js", |
84 | "start": { | 71 | "start": { |
85 | "line": 39, | 72 | "line": 34, |
86 | "column": 20 | 73 | "column": 20 |
87 | }, | 74 | }, |
88 | "end": { | 75 | "end": { |
89 | "line": 42, | 76 | "line": 37, |
90 | "column": 3 | 77 | "column": 3 |
91 | } | 78 | } |
92 | }, | 79 | }, |
@@ -95,11 +82,11 @@ | |||
95 | "defaultMessage": "!!!Premium Supporter Account", | 82 | "defaultMessage": "!!!Premium Supporter Account", |
96 | "file": "src/components/settings/account/AccountDashboard.js", | 83 | "file": "src/components/settings/account/AccountDashboard.js", |
97 | "start": { | 84 | "start": { |
98 | "line": 43, | 85 | "line": 38, |
99 | "column": 22 | 86 | "column": 22 |
100 | }, | 87 | }, |
101 | "end": { | 88 | "end": { |
102 | "line": 46, | 89 | "line": 41, |
103 | "column": 3 | 90 | "column": 3 |
104 | } | 91 | } |
105 | }, | 92 | }, |
@@ -108,11 +95,24 @@ | |||
108 | "defaultMessage": "!!!Edit Account", | 95 | "defaultMessage": "!!!Edit Account", |
109 | "file": "src/components/settings/account/AccountDashboard.js", | 96 | "file": "src/components/settings/account/AccountDashboard.js", |
110 | "start": { | 97 | "start": { |
111 | "line": 47, | 98 | "line": 42, |
112 | "column": 21 | 99 | "column": 21 |
113 | }, | 100 | }, |
114 | "end": { | 101 | "end": { |
115 | "line": 50, | 102 | "line": 45, |
103 | "column": 3 | ||
104 | } | ||
105 | }, | ||
106 | { | ||
107 | "id": "settings.account.headlineInvoices", | ||
108 | "defaultMessage": "!!Invoices", | ||
109 | "file": "src/components/settings/account/AccountDashboard.js", | ||
110 | "start": { | ||
111 | "line": 46, | ||
112 | "column": 18 | ||
113 | }, | ||
114 | "end": { | ||
115 | "line": 49, | ||
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Download", | 121 | "defaultMessage": "!!!Download", |
122 | "file": "src/components/settings/account/AccountDashboard.js", | 122 | "file": "src/components/settings/account/AccountDashboard.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 51, | 124 | "line": 50, |
125 | "column": 19 | 125 | "column": 19 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 54, | 128 | "line": 53, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Could not load user information", | 134 | "defaultMessage": "!!!Could not load user information", |
135 | "file": "src/components/settings/account/AccountDashboard.js", | 135 | "file": "src/components/settings/account/AccountDashboard.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 55, | 137 | "line": 54, |
138 | "column": 25 | 138 | "column": 25 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 58, | 141 | "line": 57, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Try again", | 147 | "defaultMessage": "!!!Try again", |
148 | "file": "src/components/settings/account/AccountDashboard.js", | 148 | "file": "src/components/settings/account/AccountDashboard.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 59, | 150 | "line": 58, |
151 | "column": 28 | 151 | "column": 28 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 62, | 154 | "line": 61, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Delete account", | 160 | "defaultMessage": "!!!Delete account", |
161 | "file": "src/components/settings/account/AccountDashboard.js", | 161 | "file": "src/components/settings/account/AccountDashboard.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 63, | 163 | "line": 62, |
164 | "column": 17 | 164 | "column": 17 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 66, | 167 | "line": 65, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!If you don't need your Franz account any longer, you can delete your account and all related data here.", | 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", | 174 | "file": "src/components/settings/account/AccountDashboard.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 67, | 176 | "line": 66, |
177 | "column": 14 | 177 | "column": 14 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 70, | 180 | "line": 69, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | }, | 183 | }, |
@@ -186,11 +186,11 @@ | |||
186 | "defaultMessage": "!!!You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | 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", | 187 | "file": "src/components/settings/account/AccountDashboard.js", |
188 | "start": { | 188 | "start": { |
189 | "line": 71, | 189 | "line": 70, |
190 | "column": 19 | 190 | "column": 19 |
191 | }, | 191 | }, |
192 | "end": { | 192 | "end": { |
193 | "line": 74, | 193 | "line": 73, |
194 | "column": 3 | 194 | "column": 3 |
195 | } | 195 | } |
196 | } | 196 | } |
diff --git a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json index 77b0ed8a4..70a989211 100644 --- a/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json +++ b/src/i18n/messages/src/components/settings/navigation/SettingsNavigation.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Available services", | 4 | "defaultMessage": "!!!Available services", |
5 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 5 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 12, | 7 | "line": 13, |
8 | "column": 21 | 8 | "column": 21 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 15, | 11 | "line": 16, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Your services", | 17 | "defaultMessage": "!!!Your services", |
18 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 18 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 16, | 20 | "line": 17, |
21 | "column": 16 | 21 | "column": 16 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 19, | 24 | "line": 20, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Your workspaces", | 30 | "defaultMessage": "!!!Your workspaces", |
31 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 31 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 20, | 33 | "line": 21, |
34 | "column": 18 | 34 | "column": 18 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 23, | 37 | "line": 24, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,24 @@ | |||
43 | "defaultMessage": "!!!Account", | 43 | "defaultMessage": "!!!Account", |
44 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 44 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 24, | 46 | "line": 25, |
47 | "column": 11 | 47 | "column": 11 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 27, | 50 | "line": 28, |
51 | "column": 3 | ||
52 | } | ||
53 | }, | ||
54 | { | ||
55 | "id": "settings.navigation.team", | ||
56 | "defaultMessage": "!!!Manage Team", | ||
57 | "file": "src/components/settings/navigation/SettingsNavigation.js", | ||
58 | "start": { | ||
59 | "line": 29, | ||
60 | "column": 8 | ||
61 | }, | ||
62 | "end": { | ||
63 | "line": 32, | ||
51 | "column": 3 | 64 | "column": 3 |
52 | } | 65 | } |
53 | }, | 66 | }, |
@@ -56,11 +69,11 @@ | |||
56 | "defaultMessage": "!!!Settings", | 69 | "defaultMessage": "!!!Settings", |
57 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 70 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
58 | "start": { | 71 | "start": { |
59 | "line": 28, | 72 | "line": 33, |
60 | "column": 12 | 73 | "column": 12 |
61 | }, | 74 | }, |
62 | "end": { | 75 | "end": { |
63 | "line": 31, | 76 | "line": 36, |
64 | "column": 3 | 77 | "column": 3 |
65 | } | 78 | } |
66 | }, | 79 | }, |
@@ -69,11 +82,11 @@ | |||
69 | "defaultMessage": "!!!Invite Friends", | 82 | "defaultMessage": "!!!Invite Friends", |
70 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 83 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
71 | "start": { | 84 | "start": { |
72 | "line": 32, | 85 | "line": 37, |
73 | "column": 17 | 86 | "column": 17 |
74 | }, | 87 | }, |
75 | "end": { | 88 | "end": { |
76 | "line": 35, | 89 | "line": 40, |
77 | "column": 3 | 90 | "column": 3 |
78 | } | 91 | } |
79 | }, | 92 | }, |
@@ -82,11 +95,11 @@ | |||
82 | "defaultMessage": "!!!Logout", | 95 | "defaultMessage": "!!!Logout", |
83 | "file": "src/components/settings/navigation/SettingsNavigation.js", | 96 | "file": "src/components/settings/navigation/SettingsNavigation.js", |
84 | "start": { | 97 | "start": { |
85 | "line": 36, | 98 | "line": 41, |
86 | "column": 10 | 99 | "column": 10 |
87 | }, | 100 | }, |
88 | "end": { | 101 | "end": { |
89 | "line": 39, | 102 | "line": 44, |
90 | "column": 3 | 103 | "column": 3 |
91 | } | 104 | } |
92 | } | 105 | } |
diff --git a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json index c64f477be..fa21db10a 100644 --- a/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json +++ b/src/i18n/messages/src/components/settings/settings/EditSettingsForm.json | |||
@@ -219,5 +219,18 @@ | |||
219 | "line": 83, | 219 | "line": 83, |
220 | "column": 3 | 220 | "column": 3 |
221 | } | 221 | } |
222 | }, | ||
223 | { | ||
224 | "id": "settings.app.languageDisclaimer", | ||
225 | "defaultMessage": "!!!Official translations are English & German. All other languages are community based translations.", | ||
226 | "file": "src/components/settings/settings/EditSettingsForm.js", | ||
227 | "start": { | ||
228 | "line": 84, | ||
229 | "column": 22 | ||
230 | }, | ||
231 | "end": { | ||
232 | "line": 87, | ||
233 | "column": 3 | ||
234 | } | ||
222 | } | 235 | } |
223 | ] \ No newline at end of file | 236 | ] \ No newline at end of file |
diff --git a/src/i18n/messages/src/components/settings/team/TeamDashboard.json b/src/i18n/messages/src/components/settings/team/TeamDashboard.json new file mode 100644 index 000000000..6bccc25ff --- /dev/null +++ b/src/i18n/messages/src/components/settings/team/TeamDashboard.json | |||
@@ -0,0 +1,80 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.team.headline", | ||
4 | "defaultMessage": "!!!Team", | ||
5 | "file": "src/components/settings/team/TeamDashboard.js", | ||
6 | "start": { | ||
7 | "line": 14, | ||
8 | "column": 12 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 17, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "settings.team.contentHeadline", | ||
17 | "defaultMessage": "!!!Franz for Teams", | ||
18 | "file": "src/components/settings/team/TeamDashboard.js", | ||
19 | "start": { | ||
20 | "line": 18, | ||
21 | "column": 19 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 21, | ||
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "settings.team.intro", | ||
30 | "defaultMessage": "!!!You and your team use Franz? You can now manage Premium subscriptions for as many colleagues, friends or family members as you want, all from within one account.", | ||
31 | "file": "src/components/settings/team/TeamDashboard.js", | ||
32 | "start": { | ||
33 | "line": 22, | ||
34 | "column": 9 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 25, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "settings.team.copy", | ||
43 | "defaultMessage": "!!!Franz for Teams gives you the option to invite co-workers to your team by sending them email invitations and manage their subscriptions in your account’s preferences. Don’t waste time setting up subscriptions for every team member individually, forget about multiple invoices and different billing cycles - one team to rule them all!", | ||
44 | "file": "src/components/settings/team/TeamDashboard.js", | ||
45 | "start": { | ||
46 | "line": 26, | ||
47 | "column": 8 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 29, | ||
51 | "column": 3 | ||
52 | } | ||
53 | }, | ||
54 | { | ||
55 | "id": "settings.team.manageAction", | ||
56 | "defaultMessage": "!!!Manage your Team on meetfranz.com", | ||
57 | "file": "src/components/settings/team/TeamDashboard.js", | ||
58 | "start": { | ||
59 | "line": 30, | ||
60 | "column": 16 | ||
61 | }, | ||
62 | "end": { | ||
63 | "line": 33, | ||
64 | "column": 3 | ||
65 | } | ||
66 | }, | ||
67 | { | ||
68 | "id": "settings.team.upgradeAction", | ||
69 | "defaultMessage": "!!!Upgrade your Account", | ||
70 | "file": "src/components/settings/team/TeamDashboard.js", | ||
71 | "start": { | ||
72 | "line": 34, | ||
73 | "column": 17 | ||
74 | }, | ||
75 | "end": { | ||
76 | "line": 37, | ||
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 index cc7470358..f98eb986f 100644 --- a/src/i18n/messages/src/components/subscription/SubscriptionForm.json +++ b/src/i18n/messages/src/components/subscription/SubscriptionForm.json | |||
@@ -130,15 +130,28 @@ | |||
130 | } | 130 | } |
131 | }, | 131 | }, |
132 | { | 132 | { |
133 | "id": "subscription.features.workspaces", | ||
134 | "defaultMessage": "!!!Organize your services in workspaces", | ||
135 | "file": "src/components/subscription/SubscriptionForm.js", | ||
136 | "start": { | ||
137 | "line": 54, | ||
138 | "column": 14 | ||
139 | }, | ||
140 | "end": { | ||
141 | "line": 57, | ||
142 | "column": 3 | ||
143 | } | ||
144 | }, | ||
145 | { | ||
133 | "id": "subscription.features.ads", | 146 | "id": "subscription.features.ads", |
134 | "defaultMessage": "!!!No ads, ever!", | 147 | "defaultMessage": "!!!No ads, ever!", |
135 | "file": "src/components/subscription/SubscriptionForm.js", | 148 | "file": "src/components/subscription/SubscriptionForm.js", |
136 | "start": { | 149 | "start": { |
137 | "line": 54, | 150 | "line": 58, |
138 | "column": 7 | 151 | "column": 7 |
139 | }, | 152 | }, |
140 | "end": { | 153 | "end": { |
141 | "line": 57, | 154 | "line": 61, |
142 | "column": 3 | 155 | "column": 3 |
143 | } | 156 | } |
144 | }, | 157 | }, |
@@ -147,11 +160,11 @@ | |||
147 | "defaultMessage": "!!!coming soon", | 160 | "defaultMessage": "!!!coming soon", |
148 | "file": "src/components/subscription/SubscriptionForm.js", | 161 | "file": "src/components/subscription/SubscriptionForm.js", |
149 | "start": { | 162 | "start": { |
150 | "line": 58, | 163 | "line": 62, |
151 | "column": 14 | 164 | "column": 14 |
152 | }, | 165 | }, |
153 | "end": { | 166 | "end": { |
154 | "line": 61, | 167 | "line": 65, |
155 | "column": 3 | 168 | "column": 3 |
156 | } | 169 | } |
157 | }, | 170 | }, |
@@ -160,11 +173,11 @@ | |||
160 | "defaultMessage": "!!!EU residents: local sales tax may apply", | 173 | "defaultMessage": "!!!EU residents: local sales tax may apply", |
161 | "file": "src/components/subscription/SubscriptionForm.js", | 174 | "file": "src/components/subscription/SubscriptionForm.js", |
162 | "start": { | 175 | "start": { |
163 | "line": 62, | 176 | "line": 66, |
164 | "column": 13 | 177 | "column": 13 |
165 | }, | 178 | }, |
166 | "end": { | 179 | "end": { |
167 | "line": 65, | 180 | "line": 69, |
168 | "column": 3 | 181 | "column": 3 |
169 | } | 182 | } |
170 | } | 183 | } |
diff --git a/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json new file mode 100644 index 000000000..eb1b66916 --- /dev/null +++ b/src/i18n/messages/src/features/announcements/components/AnnouncementScreen.json | |||
@@ -0,0 +1,15 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "feature.announcements.changelog.headline", | ||
4 | "defaultMessage": "!!!Changes in Franz {version}", | ||
5 | "file": "src/features/announcements/components/AnnouncementScreen.js", | ||
6 | "start": { | ||
7 | "line": 20, | ||
8 | "column": 12 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 23, | ||
12 | "column": 3 | ||
13 | } | ||
14 | } | ||
15 | ] \ 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 index 7b0c3e1ce..20ed99f8d 100644 --- a/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json +++ b/src/i18n/messages/src/features/workspaces/components/EditWorkspaceForm.json | |||
@@ -63,5 +63,31 @@ | |||
63 | "line": 38, | 63 | "line": 38, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | ||
67 | { | ||
68 | "id": "settings.services.noServicesAdded", | ||
69 | "defaultMessage": "!!!You haven't added any services yet.", | ||
70 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
71 | "start": { | ||
72 | "line": 39, | ||
73 | "column": 19 | ||
74 | }, | ||
75 | "end": { | ||
76 | "line": 42, | ||
77 | "column": 3 | ||
78 | } | ||
79 | }, | ||
80 | { | ||
81 | "id": "settings.services.discoverServices", | ||
82 | "defaultMessage": "!!!Discover services", | ||
83 | "file": "src/features/workspaces/components/EditWorkspaceForm.js", | ||
84 | "start": { | ||
85 | "line": 43, | ||
86 | "column": 20 | ||
87 | }, | ||
88 | "end": { | ||
89 | "line": 46, | ||
90 | "column": 3 | ||
91 | } | ||
66 | } | 92 | } |
67 | ] \ No newline at end of file | 93 | ] \ No newline at end of file |
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 3889d39e0..2adf5b787 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Edit", | 4 | "defaultMessage": "!!!Edit", |
5 | "file": "src/lib/Menu.js", | 5 | "file": "src/lib/Menu.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 13, | 7 | "line": 15, |
8 | "column": 8 | 8 | "column": 8 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 16, | 11 | "line": 18, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Undo", | 17 | "defaultMessage": "!!!Undo", |
18 | "file": "src/lib/Menu.js", | 18 | "file": "src/lib/Menu.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 17, | 20 | "line": 19, |
21 | "column": 8 | 21 | "column": 8 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 20, | 24 | "line": 22, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Redo", | 30 | "defaultMessage": "!!!Redo", |
31 | "file": "src/lib/Menu.js", | 31 | "file": "src/lib/Menu.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 21, | 33 | "line": 23, |
34 | "column": 8 | 34 | "column": 8 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 24, | 37 | "line": 26, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Cut", | 43 | "defaultMessage": "!!!Cut", |
44 | "file": "src/lib/Menu.js", | 44 | "file": "src/lib/Menu.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 25, | 46 | "line": 27, |
47 | "column": 7 | 47 | "column": 7 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 28, | 50 | "line": 30, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Copy", | 56 | "defaultMessage": "!!!Copy", |
57 | "file": "src/lib/Menu.js", | 57 | "file": "src/lib/Menu.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 29, | 59 | "line": 31, |
60 | "column": 8 | 60 | "column": 8 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 32, | 63 | "line": 34, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Paste", | 69 | "defaultMessage": "!!!Paste", |
70 | "file": "src/lib/Menu.js", | 70 | "file": "src/lib/Menu.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 33, | 72 | "line": 35, |
73 | "column": 9 | 73 | "column": 9 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 36, | 76 | "line": 38, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Paste And Match Style", | 82 | "defaultMessage": "!!!Paste And Match Style", |
83 | "file": "src/lib/Menu.js", | 83 | "file": "src/lib/Menu.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 37, | 85 | "line": 39, |
86 | "column": 22 | 86 | "column": 22 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 40, | 89 | "line": 42, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Delete", | 95 | "defaultMessage": "!!!Delete", |
96 | "file": "src/lib/Menu.js", | 96 | "file": "src/lib/Menu.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 41, | 98 | "line": 43, |
99 | "column": 10 | 99 | "column": 10 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 44, | 102 | "line": 46, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Select All", | 108 | "defaultMessage": "!!!Select All", |
109 | "file": "src/lib/Menu.js", | 109 | "file": "src/lib/Menu.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 45, | 111 | "line": 47, |
112 | "column": 13 | 112 | "column": 13 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 48, | 115 | "line": 50, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Speech", | 121 | "defaultMessage": "!!!Speech", |
122 | "file": "src/lib/Menu.js", | 122 | "file": "src/lib/Menu.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 49, | 124 | "line": 51, |
125 | "column": 10 | 125 | "column": 10 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 52, | 128 | "line": 54, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Start Speaking", | 134 | "defaultMessage": "!!!Start Speaking", |
135 | "file": "src/lib/Menu.js", | 135 | "file": "src/lib/Menu.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 53, | 137 | "line": 55, |
138 | "column": 17 | 138 | "column": 17 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 56, | 141 | "line": 58, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Stop Speaking", | 147 | "defaultMessage": "!!!Stop Speaking", |
148 | "file": "src/lib/Menu.js", | 148 | "file": "src/lib/Menu.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 57, | 150 | "line": 59, |
151 | "column": 16 | 151 | "column": 16 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 60, | 154 | "line": 62, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Start Dictation", | 160 | "defaultMessage": "!!!Start Dictation", |
161 | "file": "src/lib/Menu.js", | 161 | "file": "src/lib/Menu.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 61, | 163 | "line": 63, |
164 | "column": 18 | 164 | "column": 18 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 64, | 167 | "line": 66, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!Emoji & Symbols", | 173 | "defaultMessage": "!!!Emoji & Symbols", |
174 | "file": "src/lib/Menu.js", | 174 | "file": "src/lib/Menu.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 65, | 176 | "line": 67, |
177 | "column": 16 | 177 | "column": 16 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 68, | 180 | "line": 70, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | }, | 183 | }, |
@@ -186,11 +186,11 @@ | |||
186 | "defaultMessage": "!!!Actual Size", | 186 | "defaultMessage": "!!!Actual Size", |
187 | "file": "src/lib/Menu.js", | 187 | "file": "src/lib/Menu.js", |
188 | "start": { | 188 | "start": { |
189 | "line": 69, | 189 | "line": 71, |
190 | "column": 13 | 190 | "column": 13 |
191 | }, | 191 | }, |
192 | "end": { | 192 | "end": { |
193 | "line": 72, | 193 | "line": 74, |
194 | "column": 3 | 194 | "column": 3 |
195 | } | 195 | } |
196 | }, | 196 | }, |
@@ -199,11 +199,11 @@ | |||
199 | "defaultMessage": "!!!Zoom In", | 199 | "defaultMessage": "!!!Zoom In", |
200 | "file": "src/lib/Menu.js", | 200 | "file": "src/lib/Menu.js", |
201 | "start": { | 201 | "start": { |
202 | "line": 73, | 202 | "line": 75, |
203 | "column": 10 | 203 | "column": 10 |
204 | }, | 204 | }, |
205 | "end": { | 205 | "end": { |
206 | "line": 76, | 206 | "line": 78, |
207 | "column": 3 | 207 | "column": 3 |
208 | } | 208 | } |
209 | }, | 209 | }, |
@@ -212,11 +212,11 @@ | |||
212 | "defaultMessage": "!!!Zoom Out", | 212 | "defaultMessage": "!!!Zoom Out", |
213 | "file": "src/lib/Menu.js", | 213 | "file": "src/lib/Menu.js", |
214 | "start": { | 214 | "start": { |
215 | "line": 77, | 215 | "line": 79, |
216 | "column": 11 | 216 | "column": 11 |
217 | }, | 217 | }, |
218 | "end": { | 218 | "end": { |
219 | "line": 80, | 219 | "line": 82, |
220 | "column": 3 | 220 | "column": 3 |
221 | } | 221 | } |
222 | }, | 222 | }, |
@@ -225,11 +225,11 @@ | |||
225 | "defaultMessage": "!!!Enter Full Screen", | 225 | "defaultMessage": "!!!Enter Full Screen", |
226 | "file": "src/lib/Menu.js", | 226 | "file": "src/lib/Menu.js", |
227 | "start": { | 227 | "start": { |
228 | "line": 81, | 228 | "line": 83, |
229 | "column": 19 | 229 | "column": 19 |
230 | }, | 230 | }, |
231 | "end": { | 231 | "end": { |
232 | "line": 84, | 232 | "line": 86, |
233 | "column": 3 | 233 | "column": 3 |
234 | } | 234 | } |
235 | }, | 235 | }, |
@@ -238,11 +238,11 @@ | |||
238 | "defaultMessage": "!!!Exit Full Screen", | 238 | "defaultMessage": "!!!Exit Full Screen", |
239 | "file": "src/lib/Menu.js", | 239 | "file": "src/lib/Menu.js", |
240 | "start": { | 240 | "start": { |
241 | "line": 85, | 241 | "line": 87, |
242 | "column": 18 | 242 | "column": 18 |
243 | }, | 243 | }, |
244 | "end": { | 244 | "end": { |
245 | "line": 88, | 245 | "line": 90, |
246 | "column": 3 | 246 | "column": 3 |
247 | } | 247 | } |
248 | }, | 248 | }, |
@@ -251,11 +251,11 @@ | |||
251 | "defaultMessage": "!!!Toggle Full Screen", | 251 | "defaultMessage": "!!!Toggle Full Screen", |
252 | "file": "src/lib/Menu.js", | 252 | "file": "src/lib/Menu.js", |
253 | "start": { | 253 | "start": { |
254 | "line": 89, | 254 | "line": 91, |
255 | "column": 20 | 255 | "column": 20 |
256 | }, | 256 | }, |
257 | "end": { | 257 | "end": { |
258 | "line": 92, | 258 | "line": 94, |
259 | "column": 3 | 259 | "column": 3 |
260 | } | 260 | } |
261 | }, | 261 | }, |
@@ -264,11 +264,11 @@ | |||
264 | "defaultMessage": "!!!Toggle Developer Tools", | 264 | "defaultMessage": "!!!Toggle Developer Tools", |
265 | "file": "src/lib/Menu.js", | 265 | "file": "src/lib/Menu.js", |
266 | "start": { | 266 | "start": { |
267 | "line": 93, | 267 | "line": 95, |
268 | "column": 18 | 268 | "column": 18 |
269 | }, | 269 | }, |
270 | "end": { | 270 | "end": { |
271 | "line": 96, | 271 | "line": 98, |
272 | "column": 3 | 272 | "column": 3 |
273 | } | 273 | } |
274 | }, | 274 | }, |
@@ -277,11 +277,11 @@ | |||
277 | "defaultMessage": "!!!Toggle Service Developer Tools", | 277 | "defaultMessage": "!!!Toggle Service Developer Tools", |
278 | "file": "src/lib/Menu.js", | 278 | "file": "src/lib/Menu.js", |
279 | "start": { | 279 | "start": { |
280 | "line": 97, | 280 | "line": 99, |
281 | "column": 25 | 281 | "column": 25 |
282 | }, | 282 | }, |
283 | "end": { | 283 | "end": { |
284 | "line": 100, | 284 | "line": 102, |
285 | "column": 3 | 285 | "column": 3 |
286 | } | 286 | } |
287 | }, | 287 | }, |
@@ -290,11 +290,11 @@ | |||
290 | "defaultMessage": "!!!Reload Service", | 290 | "defaultMessage": "!!!Reload Service", |
291 | "file": "src/lib/Menu.js", | 291 | "file": "src/lib/Menu.js", |
292 | "start": { | 292 | "start": { |
293 | "line": 101, | 293 | "line": 103, |
294 | "column": 17 | 294 | "column": 17 |
295 | }, | 295 | }, |
296 | "end": { | 296 | "end": { |
297 | "line": 104, | 297 | "line": 106, |
298 | "column": 3 | 298 | "column": 3 |
299 | } | 299 | } |
300 | }, | 300 | }, |
@@ -303,11 +303,11 @@ | |||
303 | "defaultMessage": "!!!Reload Franz", | 303 | "defaultMessage": "!!!Reload Franz", |
304 | "file": "src/lib/Menu.js", | 304 | "file": "src/lib/Menu.js", |
305 | "start": { | 305 | "start": { |
306 | "line": 105, | 306 | "line": 107, |
307 | "column": 15 | 307 | "column": 15 |
308 | }, | 308 | }, |
309 | "end": { | 309 | "end": { |
310 | "line": 108, | 310 | "line": 110, |
311 | "column": 3 | 311 | "column": 3 |
312 | } | 312 | } |
313 | }, | 313 | }, |
@@ -316,11 +316,11 @@ | |||
316 | "defaultMessage": "!!!Minimize", | 316 | "defaultMessage": "!!!Minimize", |
317 | "file": "src/lib/Menu.js", | 317 | "file": "src/lib/Menu.js", |
318 | "start": { | 318 | "start": { |
319 | "line": 109, | 319 | "line": 111, |
320 | "column": 12 | 320 | "column": 12 |
321 | }, | 321 | }, |
322 | "end": { | 322 | "end": { |
323 | "line": 112, | 323 | "line": 114, |
324 | "column": 3 | 324 | "column": 3 |
325 | } | 325 | } |
326 | }, | 326 | }, |
@@ -329,11 +329,11 @@ | |||
329 | "defaultMessage": "!!!Close", | 329 | "defaultMessage": "!!!Close", |
330 | "file": "src/lib/Menu.js", | 330 | "file": "src/lib/Menu.js", |
331 | "start": { | 331 | "start": { |
332 | "line": 113, | 332 | "line": 115, |
333 | "column": 9 | 333 | "column": 9 |
334 | }, | 334 | }, |
335 | "end": { | 335 | "end": { |
336 | "line": 116, | 336 | "line": 118, |
337 | "column": 3 | 337 | "column": 3 |
338 | } | 338 | } |
339 | }, | 339 | }, |
@@ -342,11 +342,11 @@ | |||
342 | "defaultMessage": "!!!Learn More", | 342 | "defaultMessage": "!!!Learn More", |
343 | "file": "src/lib/Menu.js", | 343 | "file": "src/lib/Menu.js", |
344 | "start": { | 344 | "start": { |
345 | "line": 117, | 345 | "line": 119, |
346 | "column": 13 | 346 | "column": 13 |
347 | }, | 347 | }, |
348 | "end": { | 348 | "end": { |
349 | "line": 120, | 349 | "line": 122, |
350 | "column": 3 | 350 | "column": 3 |
351 | } | 351 | } |
352 | }, | 352 | }, |
@@ -355,11 +355,11 @@ | |||
355 | "defaultMessage": "!!!Changelog", | 355 | "defaultMessage": "!!!Changelog", |
356 | "file": "src/lib/Menu.js", | 356 | "file": "src/lib/Menu.js", |
357 | "start": { | 357 | "start": { |
358 | "line": 121, | 358 | "line": 123, |
359 | "column": 13 | 359 | "column": 13 |
360 | }, | 360 | }, |
361 | "end": { | 361 | "end": { |
362 | "line": 124, | 362 | "line": 126, |
363 | "column": 3 | 363 | "column": 3 |
364 | } | 364 | } |
365 | }, | 365 | }, |
@@ -368,11 +368,11 @@ | |||
368 | "defaultMessage": "!!!Support", | 368 | "defaultMessage": "!!!Support", |
369 | "file": "src/lib/Menu.js", | 369 | "file": "src/lib/Menu.js", |
370 | "start": { | 370 | "start": { |
371 | "line": 125, | 371 | "line": 127, |
372 | "column": 11 | 372 | "column": 11 |
373 | }, | 373 | }, |
374 | "end": { | 374 | "end": { |
375 | "line": 128, | 375 | "line": 130, |
376 | "column": 3 | 376 | "column": 3 |
377 | } | 377 | } |
378 | }, | 378 | }, |
@@ -381,11 +381,11 @@ | |||
381 | "defaultMessage": "!!!Terms of Service", | 381 | "defaultMessage": "!!!Terms of Service", |
382 | "file": "src/lib/Menu.js", | 382 | "file": "src/lib/Menu.js", |
383 | "start": { | 383 | "start": { |
384 | "line": 129, | 384 | "line": 131, |
385 | "column": 7 | 385 | "column": 7 |
386 | }, | 386 | }, |
387 | "end": { | 387 | "end": { |
388 | "line": 132, | 388 | "line": 134, |
389 | "column": 3 | 389 | "column": 3 |
390 | } | 390 | } |
391 | }, | 391 | }, |
@@ -394,11 +394,11 @@ | |||
394 | "defaultMessage": "!!!Privacy Statement", | 394 | "defaultMessage": "!!!Privacy Statement", |
395 | "file": "src/lib/Menu.js", | 395 | "file": "src/lib/Menu.js", |
396 | "start": { | 396 | "start": { |
397 | "line": 133, | 397 | "line": 135, |
398 | "column": 11 | 398 | "column": 11 |
399 | }, | 399 | }, |
400 | "end": { | 400 | "end": { |
401 | "line": 136, | 401 | "line": 138, |
402 | "column": 3 | 402 | "column": 3 |
403 | } | 403 | } |
404 | }, | 404 | }, |
@@ -407,11 +407,11 @@ | |||
407 | "defaultMessage": "!!!File", | 407 | "defaultMessage": "!!!File", |
408 | "file": "src/lib/Menu.js", | 408 | "file": "src/lib/Menu.js", |
409 | "start": { | 409 | "start": { |
410 | "line": 137, | 410 | "line": 139, |
411 | "column": 8 | 411 | "column": 8 |
412 | }, | 412 | }, |
413 | "end": { | 413 | "end": { |
414 | "line": 140, | 414 | "line": 142, |
415 | "column": 3 | 415 | "column": 3 |
416 | } | 416 | } |
417 | }, | 417 | }, |
@@ -420,11 +420,11 @@ | |||
420 | "defaultMessage": "!!!View", | 420 | "defaultMessage": "!!!View", |
421 | "file": "src/lib/Menu.js", | 421 | "file": "src/lib/Menu.js", |
422 | "start": { | 422 | "start": { |
423 | "line": 141, | 423 | "line": 143, |
424 | "column": 8 | 424 | "column": 8 |
425 | }, | 425 | }, |
426 | "end": { | 426 | "end": { |
427 | "line": 144, | 427 | "line": 146, |
428 | "column": 3 | 428 | "column": 3 |
429 | } | 429 | } |
430 | }, | 430 | }, |
@@ -433,11 +433,11 @@ | |||
433 | "defaultMessage": "!!!Services", | 433 | "defaultMessage": "!!!Services", |
434 | "file": "src/lib/Menu.js", | 434 | "file": "src/lib/Menu.js", |
435 | "start": { | 435 | "start": { |
436 | "line": 145, | 436 | "line": 147, |
437 | "column": 12 | 437 | "column": 12 |
438 | }, | 438 | }, |
439 | "end": { | 439 | "end": { |
440 | "line": 148, | 440 | "line": 150, |
441 | "column": 3 | 441 | "column": 3 |
442 | } | 442 | } |
443 | }, | 443 | }, |
@@ -446,11 +446,11 @@ | |||
446 | "defaultMessage": "!!!Window", | 446 | "defaultMessage": "!!!Window", |
447 | "file": "src/lib/Menu.js", | 447 | "file": "src/lib/Menu.js", |
448 | "start": { | 448 | "start": { |
449 | "line": 149, | 449 | "line": 151, |
450 | "column": 10 | 450 | "column": 10 |
451 | }, | 451 | }, |
452 | "end": { | 452 | "end": { |
453 | "line": 152, | 453 | "line": 154, |
454 | "column": 3 | 454 | "column": 3 |
455 | } | 455 | } |
456 | }, | 456 | }, |
@@ -459,11 +459,11 @@ | |||
459 | "defaultMessage": "!!!Help", | 459 | "defaultMessage": "!!!Help", |
460 | "file": "src/lib/Menu.js", | 460 | "file": "src/lib/Menu.js", |
461 | "start": { | 461 | "start": { |
462 | "line": 153, | 462 | "line": 155, |
463 | "column": 8 | 463 | "column": 8 |
464 | }, | 464 | }, |
465 | "end": { | 465 | "end": { |
466 | "line": 156, | 466 | "line": 158, |
467 | "column": 3 | 467 | "column": 3 |
468 | } | 468 | } |
469 | }, | 469 | }, |
@@ -472,11 +472,24 @@ | |||
472 | "defaultMessage": "!!!About Franz", | 472 | "defaultMessage": "!!!About Franz", |
473 | "file": "src/lib/Menu.js", | 473 | "file": "src/lib/Menu.js", |
474 | "start": { | 474 | "start": { |
475 | "line": 157, | 475 | "line": 159, |
476 | "column": 9 | 476 | "column": 9 |
477 | }, | 477 | }, |
478 | "end": { | 478 | "end": { |
479 | "line": 160, | 479 | "line": 162, |
480 | "column": 3 | ||
481 | } | ||
482 | }, | ||
483 | { | ||
484 | "id": "menu.app.announcement", | ||
485 | "defaultMessage": "!!!What's new?", | ||
486 | "file": "src/lib/Menu.js", | ||
487 | "start": { | ||
488 | "line": 163, | ||
489 | "column": 16 | ||
490 | }, | ||
491 | "end": { | ||
492 | "line": 166, | ||
480 | "column": 3 | 493 | "column": 3 |
481 | } | 494 | } |
482 | }, | 495 | }, |
@@ -485,11 +498,11 @@ | |||
485 | "defaultMessage": "!!!Settings", | 498 | "defaultMessage": "!!!Settings", |
486 | "file": "src/lib/Menu.js", | 499 | "file": "src/lib/Menu.js", |
487 | "start": { | 500 | "start": { |
488 | "line": 161, | 501 | "line": 167, |
489 | "column": 12 | 502 | "column": 12 |
490 | }, | 503 | }, |
491 | "end": { | 504 | "end": { |
492 | "line": 164, | 505 | "line": 170, |
493 | "column": 3 | 506 | "column": 3 |
494 | } | 507 | } |
495 | }, | 508 | }, |
@@ -498,11 +511,11 @@ | |||
498 | "defaultMessage": "!!!Hide", | 511 | "defaultMessage": "!!!Hide", |
499 | "file": "src/lib/Menu.js", | 512 | "file": "src/lib/Menu.js", |
500 | "start": { | 513 | "start": { |
501 | "line": 165, | 514 | "line": 171, |
502 | "column": 8 | 515 | "column": 8 |
503 | }, | 516 | }, |
504 | "end": { | 517 | "end": { |
505 | "line": 168, | 518 | "line": 174, |
506 | "column": 3 | 519 | "column": 3 |
507 | } | 520 | } |
508 | }, | 521 | }, |
@@ -511,11 +524,11 @@ | |||
511 | "defaultMessage": "!!!Hide Others", | 524 | "defaultMessage": "!!!Hide Others", |
512 | "file": "src/lib/Menu.js", | 525 | "file": "src/lib/Menu.js", |
513 | "start": { | 526 | "start": { |
514 | "line": 169, | 527 | "line": 175, |
515 | "column": 14 | 528 | "column": 14 |
516 | }, | 529 | }, |
517 | "end": { | 530 | "end": { |
518 | "line": 172, | 531 | "line": 178, |
519 | "column": 3 | 532 | "column": 3 |
520 | } | 533 | } |
521 | }, | 534 | }, |
@@ -524,11 +537,11 @@ | |||
524 | "defaultMessage": "!!!Unhide", | 537 | "defaultMessage": "!!!Unhide", |
525 | "file": "src/lib/Menu.js", | 538 | "file": "src/lib/Menu.js", |
526 | "start": { | 539 | "start": { |
527 | "line": 173, | 540 | "line": 179, |
528 | "column": 10 | 541 | "column": 10 |
529 | }, | 542 | }, |
530 | "end": { | 543 | "end": { |
531 | "line": 176, | 544 | "line": 182, |
532 | "column": 3 | 545 | "column": 3 |
533 | } | 546 | } |
534 | }, | 547 | }, |
@@ -537,11 +550,11 @@ | |||
537 | "defaultMessage": "!!!Quit", | 550 | "defaultMessage": "!!!Quit", |
538 | "file": "src/lib/Menu.js", | 551 | "file": "src/lib/Menu.js", |
539 | "start": { | 552 | "start": { |
540 | "line": 177, | 553 | "line": 183, |
541 | "column": 8 | 554 | "column": 8 |
542 | }, | 555 | }, |
543 | "end": { | 556 | "end": { |
544 | "line": 180, | 557 | "line": 186, |
545 | "column": 3 | 558 | "column": 3 |
546 | } | 559 | } |
547 | }, | 560 | }, |
@@ -550,11 +563,11 @@ | |||
550 | "defaultMessage": "!!!Add New Service...", | 563 | "defaultMessage": "!!!Add New Service...", |
551 | "file": "src/lib/Menu.js", | 564 | "file": "src/lib/Menu.js", |
552 | "start": { | 565 | "start": { |
553 | "line": 181, | 566 | "line": 187, |
554 | "column": 17 | 567 | "column": 17 |
555 | }, | 568 | }, |
556 | "end": { | 569 | "end": { |
557 | "line": 184, | 570 | "line": 190, |
558 | "column": 3 | 571 | "column": 3 |
559 | } | 572 | } |
560 | }, | 573 | }, |
@@ -563,11 +576,11 @@ | |||
563 | "defaultMessage": "!!!Add New Workspace...", | 576 | "defaultMessage": "!!!Add New Workspace...", |
564 | "file": "src/lib/Menu.js", | 577 | "file": "src/lib/Menu.js", |
565 | "start": { | 578 | "start": { |
566 | "line": 185, | 579 | "line": 191, |
567 | "column": 19 | 580 | "column": 19 |
568 | }, | 581 | }, |
569 | "end": { | 582 | "end": { |
570 | "line": 188, | 583 | "line": 194, |
571 | "column": 3 | 584 | "column": 3 |
572 | } | 585 | } |
573 | }, | 586 | }, |
@@ -576,11 +589,11 @@ | |||
576 | "defaultMessage": "!!!Open workspace drawer", | 589 | "defaultMessage": "!!!Open workspace drawer", |
577 | "file": "src/lib/Menu.js", | 590 | "file": "src/lib/Menu.js", |
578 | "start": { | 591 | "start": { |
579 | "line": 189, | 592 | "line": 195, |
580 | "column": 23 | 593 | "column": 23 |
581 | }, | 594 | }, |
582 | "end": { | 595 | "end": { |
583 | "line": 192, | 596 | "line": 198, |
584 | "column": 3 | 597 | "column": 3 |
585 | } | 598 | } |
586 | }, | 599 | }, |
@@ -589,11 +602,11 @@ | |||
589 | "defaultMessage": "!!!Close workspace drawer", | 602 | "defaultMessage": "!!!Close workspace drawer", |
590 | "file": "src/lib/Menu.js", | 603 | "file": "src/lib/Menu.js", |
591 | "start": { | 604 | "start": { |
592 | "line": 193, | 605 | "line": 199, |
593 | "column": 24 | 606 | "column": 24 |
594 | }, | 607 | }, |
595 | "end": { | 608 | "end": { |
596 | "line": 196, | 609 | "line": 202, |
597 | "column": 3 | 610 | "column": 3 |
598 | } | 611 | } |
599 | }, | 612 | }, |
@@ -602,11 +615,11 @@ | |||
602 | "defaultMessage": "!!!Activate next service...", | 615 | "defaultMessage": "!!!Activate next service...", |
603 | "file": "src/lib/Menu.js", | 616 | "file": "src/lib/Menu.js", |
604 | "start": { | 617 | "start": { |
605 | "line": 197, | 618 | "line": 203, |
606 | "column": 23 | 619 | "column": 23 |
607 | }, | 620 | }, |
608 | "end": { | 621 | "end": { |
609 | "line": 200, | 622 | "line": 206, |
610 | "column": 3 | 623 | "column": 3 |
611 | } | 624 | } |
612 | }, | 625 | }, |
@@ -615,11 +628,11 @@ | |||
615 | "defaultMessage": "!!!Activate previous service...", | 628 | "defaultMessage": "!!!Activate previous service...", |
616 | "file": "src/lib/Menu.js", | 629 | "file": "src/lib/Menu.js", |
617 | "start": { | 630 | "start": { |
618 | "line": 201, | 631 | "line": 207, |
619 | "column": 27 | 632 | "column": 27 |
620 | }, | 633 | }, |
621 | "end": { | 634 | "end": { |
622 | "line": 204, | 635 | "line": 210, |
623 | "column": 3 | 636 | "column": 3 |
624 | } | 637 | } |
625 | }, | 638 | }, |
@@ -628,11 +641,11 @@ | |||
628 | "defaultMessage": "!!!Disable notifications & audio", | 641 | "defaultMessage": "!!!Disable notifications & audio", |
629 | "file": "src/lib/Menu.js", | 642 | "file": "src/lib/Menu.js", |
630 | "start": { | 643 | "start": { |
631 | "line": 205, | 644 | "line": 211, |
632 | "column": 11 | 645 | "column": 11 |
633 | }, | 646 | }, |
634 | "end": { | 647 | "end": { |
635 | "line": 208, | 648 | "line": 214, |
636 | "column": 3 | 649 | "column": 3 |
637 | } | 650 | } |
638 | }, | 651 | }, |
@@ -641,11 +654,11 @@ | |||
641 | "defaultMessage": "!!!Enable notifications & audio", | 654 | "defaultMessage": "!!!Enable notifications & audio", |
642 | "file": "src/lib/Menu.js", | 655 | "file": "src/lib/Menu.js", |
643 | "start": { | 656 | "start": { |
644 | "line": 209, | 657 | "line": 215, |
645 | "column": 13 | 658 | "column": 13 |
646 | }, | 659 | }, |
647 | "end": { | 660 | "end": { |
648 | "line": 212, | 661 | "line": 218, |
649 | "column": 3 | 662 | "column": 3 |
650 | } | 663 | } |
651 | }, | 664 | }, |
@@ -654,11 +667,11 @@ | |||
654 | "defaultMessage": "!!!Workspaces", | 667 | "defaultMessage": "!!!Workspaces", |
655 | "file": "src/lib/Menu.js", | 668 | "file": "src/lib/Menu.js", |
656 | "start": { | 669 | "start": { |
657 | "line": 213, | 670 | "line": 219, |
658 | "column": 14 | 671 | "column": 14 |
659 | }, | 672 | }, |
660 | "end": { | 673 | "end": { |
661 | "line": 216, | 674 | "line": 222, |
662 | "column": 3 | 675 | "column": 3 |
663 | } | 676 | } |
664 | }, | 677 | }, |
@@ -667,11 +680,11 @@ | |||
667 | "defaultMessage": "!!!Default", | 680 | "defaultMessage": "!!!Default", |
668 | "file": "src/lib/Menu.js", | 681 | "file": "src/lib/Menu.js", |
669 | "start": { | 682 | "start": { |
670 | "line": 217, | 683 | "line": 223, |
671 | "column": 20 | 684 | "column": 20 |
672 | }, | 685 | }, |
673 | "end": { | 686 | "end": { |
674 | "line": 220, | 687 | "line": 226, |
675 | "column": 3 | 688 | "column": 3 |
676 | } | 689 | } |
677 | } | 690 | } |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index a4e41c17c..da2540274 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -6,6 +6,8 @@ import { isMac, ctrlKey, cmdKey } from '../environment'; | |||
6 | import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../features/workspaces/index'; | 6 | import { GA_CATEGORY_WORKSPACES, workspaceStore } from '../features/workspaces/index'; |
7 | import { workspaceActions } from '../features/workspaces/actions'; | 7 | import { workspaceActions } from '../features/workspaces/actions'; |
8 | import { gaEvent } from './analytics'; | 8 | import { gaEvent } from './analytics'; |
9 | import { announcementActions } from '../features/announcements/actions'; | ||
10 | import { announcementsStore } from '../features/announcements'; | ||
9 | 11 | ||
10 | const { app, Menu, dialog } = remote; | 12 | const { app, Menu, dialog } = remote; |
11 | 13 | ||
@@ -158,6 +160,10 @@ const menuItems = defineMessages({ | |||
158 | id: 'menu.app.about', | 160 | id: 'menu.app.about', |
159 | defaultMessage: '!!!About Franz', | 161 | defaultMessage: '!!!About Franz', |
160 | }, | 162 | }, |
163 | announcement: { | ||
164 | id: 'menu.app.announcement', | ||
165 | defaultMessage: '!!!What\'s new?', | ||
166 | }, | ||
161 | settings: { | 167 | settings: { |
162 | id: 'menu.app.settings', | 168 | id: 'menu.app.settings', |
163 | defaultMessage: '!!!Settings', | 169 | defaultMessage: '!!!Settings', |
@@ -348,8 +354,11 @@ const _templateFactory = intl => [ | |||
348 | click() { shell.openExternal('https://meetfranz.com'); }, | 354 | click() { shell.openExternal('https://meetfranz.com'); }, |
349 | }, | 355 | }, |
350 | { | 356 | { |
351 | label: intl.formatMessage(menuItems.changelog), | 357 | label: intl.formatMessage(menuItems.announcement), |
352 | click() { shell.openExternal('https://github.com/meetfranz/franz/blob/master/CHANGELOG.md'); }, | 358 | click: () => { |
359 | announcementActions.show(); | ||
360 | }, | ||
361 | visible: window.franz.stores.user.isLoggedIn && announcementsStore.areNewsAvailable, | ||
353 | }, | 362 | }, |
354 | { | 363 | { |
355 | type: 'separator', | 364 | type: 'separator', |
diff --git a/src/lib/analytics.js b/src/lib/analytics.js index e7daa9d06..c305fdb00 100644 --- a/src/lib/analytics.js +++ b/src/lib/analytics.js | |||
@@ -1,5 +1,8 @@ | |||
1 | import { remote } from 'electron'; | 1 | import { remote } from 'electron'; |
2 | import { GA_ID } from '../config'; | 2 | import querystring from 'querystring'; |
3 | |||
4 | import { GA_ID, STATS_API } from '../config'; | ||
5 | import { isDevMode } from '../environment'; | ||
3 | 6 | ||
4 | const debug = require('debug')('Franz:Analytics'); | 7 | const debug = require('debug')('Franz:Analytics'); |
5 | 8 | ||
@@ -35,3 +38,18 @@ export function gaEvent(category, action, label) { | |||
35 | ga('send', 'event', category, action, label); | 38 | ga('send', 'event', category, action, label); |
36 | debug('GA track event', category, action, label); | 39 | debug('GA track event', category, action, label); |
37 | } | 40 | } |
41 | |||
42 | export function statsEvent(key, value) { | ||
43 | const params = { | ||
44 | key, | ||
45 | value: value || key, | ||
46 | platform: process.platform, | ||
47 | version: remote.app.getVersion(), | ||
48 | }; | ||
49 | |||
50 | debug('Send Franz stats event', params); | ||
51 | |||
52 | if (!isDevMode) { | ||
53 | window.fetch(`${STATS_API}/event/?${querystring.stringify(params)}`); | ||
54 | } | ||
55 | } | ||
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 351ad6422..72c4b4d0b 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -14,7 +14,7 @@ import Request from './lib/Request'; | |||
14 | import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; | 14 | import { CHECK_INTERVAL, DEFAULT_APP_SETTINGS } from '../config'; |
15 | import { isMac } from '../environment'; | 15 | import { isMac } from '../environment'; |
16 | import locales from '../i18n/translations'; | 16 | import locales from '../i18n/translations'; |
17 | import { gaEvent, gaPage } from '../lib/analytics'; | 17 | import { gaEvent, gaPage, statsEvent } from '../lib/analytics'; |
18 | import { onVisibilityChange } from '../helpers/visibility-helper'; | 18 | import { onVisibilityChange } from '../helpers/visibility-helper'; |
19 | import { getLocale } from '../helpers/i18n-helpers'; | 19 | import { getLocale } from '../helpers/i18n-helpers'; |
20 | 20 | ||
@@ -67,6 +67,8 @@ export default class AppStore extends Store { | |||
67 | 67 | ||
68 | @observable isFocused = true; | 68 | @observable isFocused = true; |
69 | 69 | ||
70 | @observable nextAppReleaseVersion = null; | ||
71 | |||
70 | dictionaries = []; | 72 | dictionaries = []; |
71 | 73 | ||
72 | constructor(...args) { | 74 | constructor(...args) { |
@@ -123,7 +125,7 @@ export default class AppStore extends Store { | |||
123 | ipcRenderer.on('autoUpdate', (event, data) => { | 125 | ipcRenderer.on('autoUpdate', (event, data) => { |
124 | if (data.available) { | 126 | if (data.available) { |
125 | this.updateStatus = this.updateStatusTypes.AVAILABLE; | 127 | this.updateStatus = this.updateStatusTypes.AVAILABLE; |
126 | 128 | this.nextAppReleaseVersion = data.version; | |
127 | if (isMac) { | 129 | if (isMac) { |
128 | app.dock.bounce(); | 130 | app.dock.bounce(); |
129 | } | 131 | } |
@@ -172,7 +174,8 @@ export default class AppStore extends Store { | |||
172 | reaction(() => this.stores.router.location.pathname, (pathname) => { | 174 | reaction(() => this.stores.router.location.pathname, (pathname) => { |
173 | gaPage(pathname); | 175 | gaPage(pathname); |
174 | }); | 176 | }); |
175 | console.log('router location', this.stores.router.location); | 177 | |
178 | statsEvent('app-start'); | ||
176 | } | 179 | } |
177 | 180 | ||
178 | @computed get cacheSize() { | 181 | @computed get cacheSize() { |
diff --git a/src/stores/FeaturesStore.js b/src/stores/FeaturesStore.js index 8fe576813..e7832088b 100644 --- a/src/stores/FeaturesStore.js +++ b/src/stores/FeaturesStore.js | |||
@@ -14,6 +14,8 @@ import serviceProxy from '../features/serviceProxy'; | |||
14 | import basicAuth from '../features/basicAuth'; | 14 | import basicAuth from '../features/basicAuth'; |
15 | import workspaces from '../features/workspaces'; | 15 | import workspaces from '../features/workspaces'; |
16 | import shareFranz from '../features/shareFranz'; | 16 | import shareFranz from '../features/shareFranz'; |
17 | import announcements from '../features/announcements'; | ||
18 | import settingsWS from '../features/settingsWS'; | ||
17 | 19 | ||
18 | import { DEFAULT_FEATURES_CONFIG } from '../config'; | 20 | import { DEFAULT_FEATURES_CONFIG } from '../config'; |
19 | 21 | ||
@@ -71,5 +73,7 @@ export default class FeaturesStore extends Store { | |||
71 | basicAuth(this.stores, this.actions); | 73 | basicAuth(this.stores, this.actions); |
72 | workspaces(this.stores, this.actions); | 74 | workspaces(this.stores, this.actions); |
73 | shareFranz(this.stores, this.actions); | 75 | shareFranz(this.stores, this.actions); |
76 | announcements(this.stores, this.actions); | ||
77 | settingsWS(this.stores, this.actions); | ||
74 | } | 78 | } |
75 | } | 79 | } |
diff --git a/src/stores/PaymentStore.js b/src/stores/PaymentStore.js index 4cabee194..d4de476c8 100644 --- a/src/stores/PaymentStore.js +++ b/src/stores/PaymentStore.js | |||
@@ -10,15 +10,10 @@ export default class PaymentStore extends Store { | |||
10 | 10 | ||
11 | @observable createHostedPageRequest = new Request(this.api.payment, 'getHostedPage'); | 11 | @observable createHostedPageRequest = new Request(this.api.payment, 'getHostedPage'); |
12 | 12 | ||
13 | @observable createDashboardUrlRequest = new Request(this.api.payment, 'getDashboardUrl'); | ||
14 | |||
15 | @observable ordersDataRequest = new CachedRequest(this.api.payment, 'getOrders'); | ||
16 | |||
17 | constructor(...args) { | 13 | constructor(...args) { |
18 | super(...args); | 14 | super(...args); |
19 | 15 | ||
20 | this.actions.payment.createHostedPage.listen(this._createHostedPage.bind(this)); | 16 | this.actions.payment.createHostedPage.listen(this._createHostedPage.bind(this)); |
21 | this.actions.payment.createDashboardUrl.listen(this._createDashboardUrl.bind(this)); | ||
22 | } | 17 | } |
23 | 18 | ||
24 | @computed get plan() { | 19 | @computed get plan() { |
@@ -28,10 +23,6 @@ export default class PaymentStore extends Store { | |||
28 | return this.plansRequest.execute().result || {}; | 23 | return this.plansRequest.execute().result || {}; |
29 | } | 24 | } |
30 | 25 | ||
31 | @computed get orders() { | ||
32 | return this.ordersDataRequest.execute().result || []; | ||
33 | } | ||
34 | |||
35 | @action _createHostedPage({ planId }) { | 26 | @action _createHostedPage({ planId }) { |
36 | const request = this.createHostedPageRequest.execute(planId); | 27 | const request = this.createHostedPageRequest.execute(planId); |
37 | 28 | ||
@@ -39,12 +30,4 @@ export default class PaymentStore extends Store { | |||
39 | 30 | ||
40 | return request; | 31 | return request; |
41 | } | 32 | } |
42 | |||
43 | @action _createDashboardUrl() { | ||
44 | const request = this.createDashboardUrlRequest.execute(); | ||
45 | |||
46 | gaEvent('Payment', 'createDashboardUrl'); | ||
47 | |||
48 | return request; | ||
49 | } | ||
50 | } | 33 | } |
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 0ec6bf550..d63302fce 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -11,7 +11,7 @@ import Store from './lib/Store'; | |||
11 | import Request from './lib/Request'; | 11 | import Request from './lib/Request'; |
12 | import CachedRequest from './lib/CachedRequest'; | 12 | import CachedRequest from './lib/CachedRequest'; |
13 | import { matchRoute } from '../helpers/routing-helpers'; | 13 | import { matchRoute } from '../helpers/routing-helpers'; |
14 | import { gaEvent } from '../lib/analytics'; | 14 | import { gaEvent, statsEvent } from '../lib/analytics'; |
15 | import { workspaceStore } from '../features/workspaces'; | 15 | import { workspaceStore } from '../features/workspaces'; |
16 | 16 | ||
17 | const debug = require('debug')('Franz:ServiceStore'); | 17 | const debug = require('debug')('Franz:ServiceStore'); |
@@ -36,6 +36,7 @@ export default class ServicesStore extends Store { | |||
36 | 36 | ||
37 | // Register action handlers | 37 | // Register action handlers |
38 | this.actions.service.setActive.listen(this._setActive.bind(this)); | 38 | this.actions.service.setActive.listen(this._setActive.bind(this)); |
39 | this.actions.service.blurActive.listen(this._blurActive.bind(this)); | ||
39 | this.actions.service.setActiveNext.listen(this._setActiveNext.bind(this)); | 40 | this.actions.service.setActiveNext.listen(this._setActiveNext.bind(this)); |
40 | this.actions.service.setActivePrev.listen(this._setActivePrev.bind(this)); | 41 | this.actions.service.setActivePrev.listen(this._setActivePrev.bind(this)); |
41 | this.actions.service.showAddServiceInterface.listen(this._showAddServiceInterface.bind(this)); | 42 | this.actions.service.showAddServiceInterface.listen(this._showAddServiceInterface.bind(this)); |
@@ -290,7 +291,8 @@ export default class ServicesStore extends Store { | |||
290 | gaEvent('Service', 'clear cache'); | 291 | gaEvent('Service', 'clear cache'); |
291 | } | 292 | } |
292 | 293 | ||
293 | @action _setActive({ serviceId }) { | 294 | @action _setActive({ serviceId, keepActiveRoute }) { |
295 | if (!keepActiveRoute) this.stores.router.push('/'); | ||
294 | const service = this.one(serviceId); | 296 | const service = this.one(serviceId); |
295 | 297 | ||
296 | this.all.forEach((s, index) => { | 298 | this.all.forEach((s, index) => { |
@@ -298,9 +300,16 @@ export default class ServicesStore extends Store { | |||
298 | }); | 300 | }); |
299 | service.isActive = true; | 301 | service.isActive = true; |
300 | 302 | ||
303 | statsEvent('activate-service', service.recipe.id); | ||
304 | |||
301 | this._focusActiveService(); | 305 | this._focusActiveService(); |
302 | } | 306 | } |
303 | 307 | ||
308 | @action _blurActive() { | ||
309 | if (!this.active) return; | ||
310 | this.active.isActive = false; | ||
311 | } | ||
312 | |||
304 | @action _setActiveNext() { | 313 | @action _setActiveNext() { |
305 | const nextIndex = this._wrapIndex(this.allDisplayed.findIndex(service => service.isActive), 1, this.allDisplayed.length); | 314 | const nextIndex = this._wrapIndex(this.allDisplayed.findIndex(service => service.isActive), 1, this.allDisplayed.length); |
306 | 315 | ||
@@ -509,7 +518,16 @@ export default class ServicesStore extends Store { | |||
509 | this.actions.ui.toggleServiceUpdatedInfoBar({ visible: false }); | 518 | this.actions.ui.toggleServiceUpdatedInfoBar({ visible: false }); |
510 | } | 519 | } |
511 | 520 | ||
512 | @action _reorder({ oldIndex, newIndex }) { | 521 | @action _reorder(params) { |
522 | const { workspaces } = this.stores; | ||
523 | if (workspaces.isAnyWorkspaceActive) { | ||
524 | workspaces.reorderServicesOfActiveWorkspace(params); | ||
525 | } else { | ||
526 | this._reorderService(params); | ||
527 | } | ||
528 | } | ||
529 | |||
530 | @action _reorderService({ oldIndex, newIndex }) { | ||
513 | const showDisabledServices = this.stores.settings.all.app.showDisabledServices; | 531 | const showDisabledServices = this.stores.settings.all.app.showDisabledServices; |
514 | const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); | 532 | const oldEnabledSortIndex = showDisabledServices ? oldIndex : this.all.indexOf(this.enabled[oldIndex]); |
515 | const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); | 533 | const newEnabledSortIndex = showDisabledServices ? newIndex : this.all.indexOf(this.enabled[newIndex]); |
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index 534690fbb..31555dd5c 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -178,6 +178,7 @@ export default class UserStore extends Store { | |||
178 | password, | 178 | password, |
179 | accountType, | 179 | accountType, |
180 | company, | 180 | company, |
181 | locale: this.stores.app.locale, | ||
181 | }); | 182 | }); |
182 | 183 | ||
183 | this.hasCompletedSignup = false; | 184 | this.hasCompletedSignup = false; |
diff --git a/src/stores/index.js b/src/stores/index.js index 96b844c95..1912418a2 100644 --- a/src/stores/index.js +++ b/src/stores/index.js | |||
@@ -10,6 +10,8 @@ import PaymentStore from './PaymentStore'; | |||
10 | import NewsStore from './NewsStore'; | 10 | import NewsStore from './NewsStore'; |
11 | import RequestStore from './RequestStore'; | 11 | import RequestStore from './RequestStore'; |
12 | import GlobalErrorStore from './GlobalErrorStore'; | 12 | import GlobalErrorStore from './GlobalErrorStore'; |
13 | import { workspaceStore } from '../features/workspaces'; | ||
14 | import { announcementsStore } from '../features/announcements'; | ||
13 | 15 | ||
14 | export default (api, actions, router) => { | 16 | export default (api, actions, router) => { |
15 | const stores = {}; | 17 | const stores = {}; |
@@ -27,6 +29,8 @@ export default (api, actions, router) => { | |||
27 | news: new NewsStore(stores, api, actions), | 29 | news: new NewsStore(stores, api, actions), |
28 | requests: new RequestStore(stores, api, actions), | 30 | requests: new RequestStore(stores, api, actions), |
29 | globalError: new GlobalErrorStore(stores, api, actions), | 31 | globalError: new GlobalErrorStore(stores, api, actions), |
32 | workspaces: workspaceStore, | ||
33 | announcements: announcementsStore, | ||
30 | }); | 34 | }); |
31 | // Initialize all stores | 35 | // Initialize all stores |
32 | Object.keys(stores).forEach((name) => { | 36 | Object.keys(stores).forEach((name) => { |
diff --git a/src/stores/lib/Reaction.js b/src/stores/lib/Reaction.js index 46aa4dae6..f2642908f 100644 --- a/src/stores/lib/Reaction.js +++ b/src/stores/lib/Reaction.js | |||
@@ -1,24 +1,31 @@ | |||
1 | // @flow | ||
2 | import { autorun } from 'mobx'; | 1 | import { autorun } from 'mobx'; |
3 | 2 | ||
4 | export default class Reaction { | 3 | export default class Reaction { |
5 | reaction; | 4 | reaction; |
6 | 5 | ||
7 | hasBeenStarted; | 6 | isRunning = false; |
8 | 7 | ||
9 | dispose; | 8 | dispose; |
10 | 9 | ||
11 | constructor(reaction) { | 10 | constructor(reaction) { |
12 | this.reaction = reaction; | 11 | this.reaction = reaction; |
13 | this.hasBeenStarted = false; | ||
14 | } | 12 | } |
15 | 13 | ||
16 | start() { | 14 | start() { |
17 | this.dispose = autorun(() => this.reaction()); | 15 | if (!this.isRunning) { |
18 | this.hasBeenStarted = true; | 16 | this.dispose = autorun(() => this.reaction()); |
17 | this.isActive = true; | ||
18 | } | ||
19 | } | 19 | } |
20 | 20 | ||
21 | stop() { | 21 | stop() { |
22 | if (this.hasBeenStarted) this.dispose(); | 22 | if (this.isRunning) { |
23 | this.dispose(); | ||
24 | this.isActive = false; | ||
25 | } | ||
23 | } | 26 | } |
24 | } | 27 | } |
28 | |||
29 | export const createReactions = reactions => ( | ||
30 | reactions.map(r => new Reaction(r)) | ||
31 | ); | ||
diff --git a/src/styles/badge.scss b/src/styles/badge.scss index f9fac039a..69879de31 100644 --- a/src/styles/badge.scss +++ b/src/styles/badge.scss | |||
@@ -8,7 +8,7 @@ | |||
8 | &.badge--primary, | 8 | &.badge--primary, |
9 | &.badge--premium { | 9 | &.badge--premium { |
10 | background: $theme-brand-primary; | 10 | background: $theme-brand-primary; |
11 | color: $dark-theme-gray-smoke; | 11 | color: $dark-theme-gray-lightest; |
12 | } | 12 | } |
13 | } | 13 | } |
14 | 14 | ||
@@ -19,6 +19,7 @@ | |||
19 | display: inline-block; | 19 | display: inline-block; |
20 | font-size: 14px; | 20 | font-size: 14px; |
21 | padding: 5px 10px; | 21 | padding: 5px 10px; |
22 | letter-spacing: 0; | ||
22 | 23 | ||
23 | &.badge--primary, | 24 | &.badge--primary, |
24 | &.badge--premium { | 25 | &.badge--premium { |
diff --git a/src/styles/info-bar.scss b/src/styles/info-bar.scss index fb4917358..d3010942f 100644 --- a/src/styles/info-bar.scss +++ b/src/styles/info-bar.scss | |||
@@ -43,6 +43,10 @@ | |||
43 | } | 43 | } |
44 | } | 44 | } |
45 | 45 | ||
46 | .info-bar__inline-button { | ||
47 | color: white; | ||
48 | } | ||
49 | |||
46 | &.info-bar--bottom { order: 10; } | 50 | &.info-bar--bottom { order: 10; } |
47 | 51 | ||
48 | &.info-bar--primary { | 52 | &.info-bar--primary { |
diff --git a/src/styles/settings.scss b/src/styles/settings.scss index dd6f56d2b..1baff8b54 100644 --- a/src/styles/settings.scss +++ b/src/styles/settings.scss | |||
@@ -61,11 +61,6 @@ | |||
61 | 61 | ||
62 | .account { | 62 | .account { |
63 | .account__box { background: $dark-theme-gray-darker; } | 63 | .account__box { background: $dark-theme-gray-darker; } |
64 | |||
65 | .invoices { | ||
66 | td { border-bottom: 1px solid $dark-theme-gray-darker; } | ||
67 | .invoices__action button { color: $theme-brand-primary; } | ||
68 | } | ||
69 | } | 64 | } |
70 | 65 | ||
71 | .premium-info { | 66 | .premium-info { |
@@ -329,15 +324,6 @@ | |||
329 | .account__avatar { | 324 | .account__avatar { |
330 | margin-right: 20px; | 325 | margin-right: 20px; |
331 | position: relative; | 326 | position: relative; |
332 | |||
333 | .emoji img { width: 30px; } | ||
334 | } | ||
335 | |||
336 | .account__avatar-premium { | ||
337 | font-size: 26px; | ||
338 | position: absolute; | ||
339 | right: 2px; | ||
340 | top: 2px; | ||
341 | } | 327 | } |
342 | 328 | ||
343 | .account__info { | 329 | .account__info { |
@@ -345,6 +331,7 @@ | |||
345 | 331 | ||
346 | h2 { margin-bottom: 5px; } | 332 | h2 { margin-bottom: 5px; } |
347 | .badge { margin-top: 5px; } | 333 | .badge { margin-top: 5px; } |
334 | .username { margin-right: 10 } | ||
348 | } | 335 | } |
349 | 336 | ||
350 | .account__subscription { | 337 | .account__subscription { |
@@ -354,6 +341,22 @@ | |||
354 | .badge { margin-left: 10px; } | 341 | .badge { margin-left: 10px; } |
355 | } | 342 | } |
356 | 343 | ||
344 | .badge--premium { | ||
345 | margin-left: 1px; | ||
346 | position: relative; | ||
347 | top: -3px; | ||
348 | padding-top: 4px; | ||
349 | color: #FFF; | ||
350 | border-radius: 3px; | ||
351 | } | ||
352 | |||
353 | |||
354 | .manage-user-links { | ||
355 | margin-top: 20px; | ||
356 | display: flex; | ||
357 | justify-content: space-between; | ||
358 | } | ||
359 | |||
357 | .account__subscription-button { margin-left: auto; } | 360 | .account__subscription-button { margin-left: auto; } |
358 | .franz-form__button { white-space: nowrap; } | 361 | .franz-form__button { white-space: nowrap; } |
359 | div { height: auto; } | 362 | div { height: auto; } |