diff options
86 files changed, 8709 insertions, 2046 deletions
@@ -1 +1 @@ | |||
10.17.0 | 12.16.3 | ||
diff --git a/.travis.yml b/.travis.yml index 80b9dedd1..0d818e995 100644 --- a/.travis.yml +++ b/.travis.yml | |||
@@ -13,7 +13,7 @@ matrix: | |||
13 | - rpm | 13 | - rpm |
14 | - os: osx | 14 | - os: osx |
15 | if: branch IN (nightly, release) | 15 | if: branch IN (nightly, release) |
16 | osx_image: xcode11 | 16 | osx_image: xcode12 |
17 | 17 | ||
18 | language: node_js | 18 | language: node_js |
19 | git: | 19 | git: |
diff --git a/CHANGELOG.md b/CHANGELOG.md index d36e75ed9..fada8808a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md | |||
@@ -1,4 +1,4 @@ | |||
1 | # [5.6.0-beta.1](https://github.com/getferdi/ferdi/compare/v5.5.0...v5.6.0-beta.1) (2020-06-14) | 1 | # [5.6.0-beta.2](https://github.com/getferdi/ferdi/compare/v5.5.0...v5.6.0-beta.2) (2020-06-14) |
2 | 2 | ||
3 | ### Features | 3 | ### Features |
4 | - Make the notifications badge work with LauncherAPI-compliant (#736) 💖 @gabspeck | 4 | - Make the notifications badge work with LauncherAPI-compliant (#736) 💖 @gabspeck |
diff --git a/appveyor.yml b/appveyor.yml index 2f5299dd9..9ca5e17f5 100644 --- a/appveyor.yml +++ b/appveyor.yml | |||
@@ -9,6 +9,8 @@ cache: | |||
9 | - '%APPDATA%\npm-cache' | 9 | - '%APPDATA%\npm-cache' |
10 | - node_modules | 10 | - node_modules |
11 | 11 | ||
12 | image: Visual Studio 2019 | ||
13 | |||
12 | install: | 14 | install: |
13 | - appveyor-retry git submodule update --init --recursive | 15 | - appveyor-retry git submodule update --init --recursive |
14 | - ps: Install-Product node 10 | 16 | - ps: Install-Product node 10 |
diff --git a/build-helpers/default.entitlements.mac.plist b/build-helpers/default.entitlements.mac.plist new file mode 100644 index 000000000..0d5b36ba1 --- /dev/null +++ b/build-helpers/default.entitlements.mac.plist | |||
@@ -0,0 +1,14 @@ | |||
1 | <?xml version="1.0" encoding="UTF-8"?> | ||
2 | <!DOCTYPE plist PUBLIC "-//Apple//DTD PLIST 1.0//EN" "http://www.apple.com/DTDs/PropertyList-1.0.dtd"> | ||
3 | <plist version="1.0"> | ||
4 | <dict> | ||
5 | <key>com.apple.security.cs.allow-unsigned-executable-memory</key> | ||
6 | <true/> | ||
7 | <key>com.apple.security.cs.disable-library-validation</key> | ||
8 | <true/> | ||
9 | <key>com.apple.security.device.camera</key> | ||
10 | <true/> | ||
11 | <key>com.apple.security.device.audio-input</key> | ||
12 | <true/> | ||
13 | </dict> | ||
14 | </plist> | ||
diff --git a/electron-builder.yml b/electron-builder.yml index 86349ba6b..7091dfb74 100644 --- a/electron-builder.yml +++ b/electron-builder.yml | |||
@@ -15,10 +15,8 @@ mac: | |||
15 | entitlements: "./build-helpers/entitlements.mas.plist" | 15 | entitlements: "./build-helpers/entitlements.mas.plist" |
16 | entitlementsInherit: "./build-helpers/entitlements.mas.inherit.plist" | 16 | entitlementsInherit: "./build-helpers/entitlements.mas.inherit.plist" |
17 | extendInfo: | 17 | extendInfo: |
18 | NSMicrophoneUsageDescription: "This app requires camera access for video messaging services." | 18 | NSCameraUsageDescription: "This app requires camera access for video chats" |
19 | NSCameraUsageDescription: "This app requires microphone access for audio messaging services." | 19 | NSMicrophoneUsageDescription: "This app requires microphone access for voice chats" |
20 | |||
21 | afterSign: ./build-helpers/notarize.js | ||
22 | 20 | ||
23 | dmg: | 21 | dmg: |
24 | background: ./build-helpers/images/dmgInstaller.tiff | 22 | background: ./build-helpers/images/dmgInstaller.tiff |
@@ -30,6 +28,8 @@ dmg: | |||
30 | { x: 122, y: 240, type: file }, | 28 | { x: 122, y: 240, type: file }, |
31 | ] | 29 | ] |
32 | 30 | ||
31 | afterSign: ./build-helpers/notarize.js | ||
32 | |||
33 | win: | 33 | win: |
34 | icon: ./build-helpers/images/icon.ico | 34 | icon: ./build-helpers/images/icon.ico |
35 | target: | 35 | target: |
@@ -43,8 +43,8 @@ linux: | |||
43 | icon: ./build-helpers/images/icons | 43 | icon: ./build-helpers/images/icons |
44 | category: Network;InstantMessaging; | 44 | category: Network;InstantMessaging; |
45 | executableName: ferdi | 45 | executableName: ferdi |
46 | synopsis: "Messaging app for WhatsApp, Slack, Telegram, HipChat, Hangouts and many many more." | 46 | synopsis: "Messaging app for WhatsApp, Slack, Telegram, Gmail, Hangouts and many many more." |
47 | description: "Ferdi is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Ferdi currently supports Slack, WhatsApp, WeChat, HipChat, Facebook Messenger, Telegram, Google Hangouts, GroupMe, Skype and many more. You can download Ferdi for free for Mac & Windows." | 47 | description: "Ferdi is your messaging app / former Emperor of Austria and combines chat & messaging services into one application. Ferdi currently supports Slack, WhatsApp, Gmail, Facebook Messenger, Telegram, Google Hangouts, GroupMe, Skype and many more. You can download Ferdi for free for Mac & Windows." |
48 | target: | 48 | target: |
49 | - target: AppImage | 49 | - target: AppImage |
50 | - target: deb | 50 | - target: deb |
@@ -62,4 +62,4 @@ protocols: | |||
62 | asarUnpack: | 62 | asarUnpack: |
63 | - ./recipes | 63 | - ./recipes |
64 | - ./node_modules/mac-screen-capture-permissions | 64 | - ./node_modules/mac-screen-capture-permissions |
65 | - ./assets/images/taskbar | 65 | - ./assets/images/taskbar \ No newline at end of file |
diff --git a/package-lock.json b/package-lock.json index 2cf5046b9..532fd96e9 100644 --- a/package-lock.json +++ b/package-lock.json | |||
@@ -1438,6 +1438,12 @@ | |||
1438 | "@babel/types": "^7.4.4" | 1438 | "@babel/types": "^7.4.4" |
1439 | } | 1439 | } |
1440 | }, | 1440 | }, |
1441 | "@babel/helper-validator-identifier": { | ||
1442 | "version": "7.10.4", | ||
1443 | "resolved": "https://registry.npmjs.org/@babel/helper-validator-identifier/-/helper-validator-identifier-7.10.4.tgz", | ||
1444 | "integrity": "sha512-3U9y+43hz7ZM+rzG24Qe2mufW5KhvFg/NhnNph+i9mgCtdTCtMJuI1TMkrIUiK7Ix4PYlRF9I5dhqaLYA/ADXw==", | ||
1445 | "dev": true | ||
1446 | }, | ||
1441 | "@babel/helper-wrap-function": { | 1447 | "@babel/helper-wrap-function": { |
1442 | "version": "7.7.4", | 1448 | "version": "7.7.4", |
1443 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", | 1449 | "resolved": "https://registry.npmjs.org/@babel/helper-wrap-function/-/helper-wrap-function-7.7.4.tgz", |
@@ -1991,13 +1997,111 @@ | |||
1991 | } | 1997 | } |
1992 | }, | 1998 | }, |
1993 | "@babel/plugin-transform-dotall-regex": { | 1999 | "@babel/plugin-transform-dotall-regex": { |
1994 | "version": "7.7.4", | 2000 | "version": "7.12.1", |
1995 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.7.4.tgz", | 2001 | "resolved": "https://registry.npmjs.org/@babel/plugin-transform-dotall-regex/-/plugin-transform-dotall-regex-7.12.1.tgz", |
1996 | "integrity": "sha512-mk0cH1zyMa/XHeb6LOTXTbG7uIJ8Rrjlzu91pUx/KS3JpcgaTDwMS8kM+ar8SLOvlL2Lofi4CGBAjCo3a2x+lw==", | 2002 | "integrity": "sha512-B2pXeRKoLszfEW7J4Hg9LoFaWEbr/kzo3teWHmtFCszjRNa/b40f9mfeqZsIDLLt/FjwQ6pz/Gdlwy85xNckBA==", |
1997 | "dev": true, | 2003 | "dev": true, |
1998 | "requires": { | 2004 | "requires": { |
1999 | "@babel/helper-create-regexp-features-plugin": "^7.7.4", | 2005 | "@babel/helper-create-regexp-features-plugin": "^7.12.1", |
2000 | "@babel/helper-plugin-utils": "^7.0.0" | 2006 | "@babel/helper-plugin-utils": "^7.10.4" |
2007 | }, | ||
2008 | "dependencies": { | ||
2009 | "@babel/helper-annotate-as-pure": { | ||
2010 | "version": "7.10.4", | ||
2011 | "resolved": "https://registry.npmjs.org/@babel/helper-annotate-as-pure/-/helper-annotate-as-pure-7.10.4.tgz", | ||
2012 | "integrity": "sha512-XQlqKQP4vXFB7BN8fEEerrmYvHp3fK/rBkRFz9jaJbzK0B1DSfej9Kc7ZzE8Z/OnId1jpJdNAZ3BFQjWG68rcA==", | ||
2013 | "dev": true, | ||
2014 | "requires": { | ||
2015 | "@babel/types": "^7.10.4" | ||
2016 | } | ||
2017 | }, | ||
2018 | "@babel/helper-create-regexp-features-plugin": { | ||
2019 | "version": "7.12.1", | ||
2020 | "resolved": "https://registry.npmjs.org/@babel/helper-create-regexp-features-plugin/-/helper-create-regexp-features-plugin-7.12.1.tgz", | ||
2021 | "integrity": "sha512-rsZ4LGvFTZnzdNZR5HZdmJVuXK8834R5QkF3WvcnBhrlVtF0HSIUC6zbreL9MgjTywhKokn8RIYRiq99+DLAxA==", | ||
2022 | "dev": true, | ||
2023 | "requires": { | ||
2024 | "@babel/helper-annotate-as-pure": "^7.10.4", | ||
2025 | "@babel/helper-regex": "^7.10.4", | ||
2026 | "regexpu-core": "^4.7.1" | ||
2027 | } | ||
2028 | }, | ||
2029 | "@babel/helper-plugin-utils": { | ||
2030 | "version": "7.10.4", | ||
2031 | "resolved": "https://registry.npmjs.org/@babel/helper-plugin-utils/-/helper-plugin-utils-7.10.4.tgz", | ||
2032 | "integrity": "sha512-O4KCvQA6lLiMU9l2eawBPMf1xPP8xPfB3iEQw150hOVTqj/rfXz0ThTb4HEzqQfs2Bmo5Ay8BzxfzVtBrr9dVg==", | ||
2033 | "dev": true | ||
2034 | }, | ||
2035 | "@babel/helper-regex": { | ||
2036 | "version": "7.10.5", | ||
2037 | "resolved": "https://registry.npmjs.org/@babel/helper-regex/-/helper-regex-7.10.5.tgz", | ||
2038 | "integrity": "sha512-68kdUAzDrljqBrio7DYAEgCoJHxppJOERHOgOrDN7WjOzP0ZQ1LsSDRXcemzVZaLvjaJsJEESb6qt+znNuENDg==", | ||
2039 | "dev": true, | ||
2040 | "requires": { | ||
2041 | "lodash": "^4.17.19" | ||
2042 | } | ||
2043 | }, | ||
2044 | "@babel/types": { | ||
2045 | "version": "7.12.1", | ||
2046 | "resolved": "https://registry.npmjs.org/@babel/types/-/types-7.12.1.tgz", | ||
2047 | "integrity": "sha512-BzSY3NJBKM4kyatSOWh3D/JJ2O3CVzBybHWxtgxnggaxEuaSTTDqeiSb/xk9lrkw2Tbqyivw5ZU4rT+EfznQsA==", | ||
2048 | "dev": true, | ||
2049 | "requires": { | ||
2050 | "@babel/helper-validator-identifier": "^7.10.4", | ||
2051 | "lodash": "^4.17.19", | ||
2052 | "to-fast-properties": "^2.0.0" | ||
2053 | } | ||
2054 | }, | ||
2055 | "jsesc": { | ||
2056 | "version": "0.5.0", | ||
2057 | "resolved": "https://registry.npmjs.org/jsesc/-/jsesc-0.5.0.tgz", | ||
2058 | "integrity": "sha1-597mbjXW/Bb3EP6R1c9p9w8IkR0=", | ||
2059 | "dev": true | ||
2060 | }, | ||
2061 | "lodash": { | ||
2062 | "version": "4.17.20", | ||
2063 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", | ||
2064 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", | ||
2065 | "dev": true | ||
2066 | }, | ||
2067 | "regenerate-unicode-properties": { | ||
2068 | "version": "8.2.0", | ||
2069 | "resolved": "https://registry.npmjs.org/regenerate-unicode-properties/-/regenerate-unicode-properties-8.2.0.tgz", | ||
2070 | "integrity": "sha512-F9DjY1vKLo/tPePDycuH3dn9H1OTPIkVD9Kz4LODu+F2C75mgjAJ7x/gwy6ZcSNRAAkhNlJSOHRe8k3p+K9WhA==", | ||
2071 | "dev": true, | ||
2072 | "requires": { | ||
2073 | "regenerate": "^1.4.0" | ||
2074 | } | ||
2075 | }, | ||
2076 | "regexpu-core": { | ||
2077 | "version": "4.7.1", | ||
2078 | "resolved": "https://registry.npmjs.org/regexpu-core/-/regexpu-core-4.7.1.tgz", | ||
2079 | "integrity": "sha512-ywH2VUraA44DZQuRKzARmw6S66mr48pQVva4LBeRhcOltJ6hExvWly5ZjFLYo67xbIxb6W1q4bAGtgfEl20zfQ==", | ||
2080 | "dev": true, | ||
2081 | "requires": { | ||
2082 | "regenerate": "^1.4.0", | ||
2083 | "regenerate-unicode-properties": "^8.2.0", | ||
2084 | "regjsgen": "^0.5.1", | ||
2085 | "regjsparser": "^0.6.4", | ||
2086 | "unicode-match-property-ecmascript": "^1.0.4", | ||
2087 | "unicode-match-property-value-ecmascript": "^1.2.0" | ||
2088 | } | ||
2089 | }, | ||
2090 | "regjsparser": { | ||
2091 | "version": "0.6.4", | ||
2092 | "resolved": "https://registry.npmjs.org/regjsparser/-/regjsparser-0.6.4.tgz", | ||
2093 | "integrity": "sha512-64O87/dPDgfk8/RQqC4gkZoGyyWFIEUTTh80CU6CWuK5vkCGyekIx+oKcEIYtP/RAxSQltCZHCNu/mdd7fqlJw==", | ||
2094 | "dev": true, | ||
2095 | "requires": { | ||
2096 | "jsesc": "~0.5.0" | ||
2097 | } | ||
2098 | }, | ||
2099 | "unicode-match-property-value-ecmascript": { | ||
2100 | "version": "1.2.0", | ||
2101 | "resolved": "https://registry.npmjs.org/unicode-match-property-value-ecmascript/-/unicode-match-property-value-ecmascript-1.2.0.tgz", | ||
2102 | "integrity": "sha512-wjuQHGQVofmSJv1uVISKLE5zO2rNGzM/KCYZch/QQvez7C1hUhBIuZ701fYXExuufJFMPhv2SyL8CyoIfMLbIQ==", | ||
2103 | "dev": true | ||
2104 | } | ||
2001 | } | 2105 | } |
2002 | }, | 2106 | }, |
2003 | "@babel/plugin-transform-duplicate-keys": { | 2107 | "@babel/plugin-transform-duplicate-keys": { |
@@ -2566,20 +2670,19 @@ | |||
2566 | } | 2670 | } |
2567 | }, | 2671 | }, |
2568 | "@electron/get": { | 2672 | "@electron/get": { |
2569 | "version": "1.12.3", | 2673 | "version": "1.12.2", |
2570 | "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.3.tgz", | 2674 | "resolved": "https://registry.npmjs.org/@electron/get/-/get-1.12.2.tgz", |
2571 | "integrity": "sha512-NFwSnVZQK7dhOYF1NQCt+HGqgL1aNdj0LUSx75uCqnZJqyiWCVdAMFV4b4/kC8HjUJAnsvdSEmjEt4G2qNQ9+Q==", | 2675 | "integrity": "sha512-vAuHUbfvBQpYTJ5wB7uVIDq5c/Ry0fiTBMs7lnEYAo/qXXppIVcWdfBr57u6eRnKdVso7KSiH6p/LbQAG6Izrg==", |
2572 | "dev": true, | 2676 | "dev": true, |
2573 | "requires": { | 2677 | "requires": { |
2574 | "debug": "^4.1.1", | 2678 | "debug": "^4.1.1", |
2575 | "env-paths": "^2.2.0", | 2679 | "env-paths": "^2.2.0", |
2576 | "filenamify": "^4.1.0", | ||
2577 | "fs-extra": "^8.1.0", | 2680 | "fs-extra": "^8.1.0", |
2578 | "global-agent": "^2.0.2", | 2681 | "global-agent": "^2.0.2", |
2579 | "global-tunnel-ng": "^2.7.1", | 2682 | "global-tunnel-ng": "^2.7.1", |
2580 | "got": "^9.6.0", | 2683 | "got": "^9.6.0", |
2581 | "progress": "^2.0.3", | 2684 | "progress": "^2.0.3", |
2582 | "semver": "^6.2.0", | 2685 | "sanitize-filename": "^1.6.2", |
2583 | "sumchecker": "^3.0.1" | 2686 | "sumchecker": "^3.0.1" |
2584 | }, | 2687 | }, |
2585 | "dependencies": { | 2688 | "dependencies": { |
@@ -2589,17 +2692,6 @@ | |||
2589 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", | 2692 | "integrity": "sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==", |
2590 | "dev": true | 2693 | "dev": true |
2591 | }, | 2694 | }, |
2592 | "filenamify": { | ||
2593 | "version": "4.2.0", | ||
2594 | "resolved": "https://registry.npmjs.org/filenamify/-/filenamify-4.2.0.tgz", | ||
2595 | "integrity": "sha512-pkgE+4p7N1n7QieOopmn3TqJaefjdWXwEkj2XLZJLKfOgcQKkn11ahvGNgTD8mLggexLiDFQxeTs14xVU22XPA==", | ||
2596 | "dev": true, | ||
2597 | "requires": { | ||
2598 | "filename-reserved-regex": "^2.0.0", | ||
2599 | "strip-outer": "^1.0.1", | ||
2600 | "trim-repeated": "^1.0.0" | ||
2601 | } | ||
2602 | }, | ||
2603 | "fs-extra": { | 2695 | "fs-extra": { |
2604 | "version": "8.1.0", | 2696 | "version": "8.1.0", |
2605 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", | 2697 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", |
@@ -2610,12 +2702,6 @@ | |||
2610 | "jsonfile": "^4.0.0", | 2702 | "jsonfile": "^4.0.0", |
2611 | "universalify": "^0.1.0" | 2703 | "universalify": "^0.1.0" |
2612 | } | 2704 | } |
2613 | }, | ||
2614 | "semver": { | ||
2615 | "version": "6.3.0", | ||
2616 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | ||
2617 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | ||
2618 | "dev": true | ||
2619 | } | 2705 | } |
2620 | } | 2706 | } |
2621 | }, | 2707 | }, |
@@ -3151,6 +3237,19 @@ | |||
3151 | "yargs": "^14.2.2" | 3237 | "yargs": "^14.2.2" |
3152 | }, | 3238 | }, |
3153 | "dependencies": { | 3239 | "dependencies": { |
3240 | "@mdi/js": { | ||
3241 | "version": "3.9.97", | ||
3242 | "resolved": "https://registry.npmjs.org/@mdi/js/-/js-3.9.97.tgz", | ||
3243 | "integrity": "sha512-JzX6rDlUcNZHaoUg9sAzdg5Js287tvgRbNmMIyKoJK2ZCP9JupeWTYlpbX4oNJ9Zg9v8YH76WuWLALKOospQgw==" | ||
3244 | }, | ||
3245 | "@meetfranz/theme": { | ||
3246 | "version": "1.0.14", | ||
3247 | "resolved": "https://registry.npmjs.org/@meetfranz/theme/-/theme-1.0.14.tgz", | ||
3248 | "integrity": "sha512-iWP+3ifiNum98sHKiNdUJK+R0p4Z7TT8OenA1N2BnSC6CFob+dLhzAK+o5lxcyEcKZKYDwd7JKRZj93wqpBPpg==", | ||
3249 | "requires": { | ||
3250 | "color": "^3.1.0" | ||
3251 | } | ||
3252 | }, | ||
3154 | "ansi-regex": { | 3253 | "ansi-regex": { |
3155 | "version": "4.1.0", | 3254 | "version": "4.1.0", |
3156 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | 3255 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", |
@@ -3212,9 +3311,9 @@ | |||
3212 | } | 3311 | } |
3213 | }, | 3312 | }, |
3214 | "yargs": { | 3313 | "yargs": { |
3215 | "version": "14.2.2", | 3314 | "version": "14.2.3", |
3216 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", | 3315 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", |
3217 | "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", | 3316 | "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", |
3218 | "dev": true, | 3317 | "dev": true, |
3219 | "requires": { | 3318 | "requires": { |
3220 | "cliui": "^5.0.0", | 3319 | "cliui": "^5.0.0", |
@@ -3227,13 +3326,13 @@ | |||
3227 | "string-width": "^3.0.0", | 3326 | "string-width": "^3.0.0", |
3228 | "which-module": "^2.0.0", | 3327 | "which-module": "^2.0.0", |
3229 | "y18n": "^4.0.0", | 3328 | "y18n": "^4.0.0", |
3230 | "yargs-parser": "^15.0.0" | 3329 | "yargs-parser": "^15.0.1" |
3231 | } | 3330 | } |
3232 | }, | 3331 | }, |
3233 | "yargs-parser": { | 3332 | "yargs-parser": { |
3234 | "version": "15.0.0", | 3333 | "version": "15.0.1", |
3235 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", | 3334 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", |
3236 | "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", | 3335 | "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", |
3237 | "dev": true, | 3336 | "dev": true, |
3238 | "requires": { | 3337 | "requires": { |
3239 | "camelcase": "^5.0.0", | 3338 | "camelcase": "^5.0.0", |
@@ -3265,6 +3364,21 @@ | |||
3265 | "minimatch": "^3.0.4", | 3364 | "minimatch": "^3.0.4", |
3266 | "npmlog": "^4.1.2", | 3365 | "npmlog": "^4.1.2", |
3267 | "slash": "^2.0.0" | 3366 | "slash": "^2.0.0" |
3367 | }, | ||
3368 | "dependencies": { | ||
3369 | "@mdi/js": { | ||
3370 | "version": "3.9.97", | ||
3371 | "resolved": "https://registry.npmjs.org/@mdi/js/-/js-3.9.97.tgz", | ||
3372 | "integrity": "sha512-JzX6rDlUcNZHaoUg9sAzdg5Js287tvgRbNmMIyKoJK2ZCP9JupeWTYlpbX4oNJ9Zg9v8YH76WuWLALKOospQgw==" | ||
3373 | }, | ||
3374 | "@meetfranz/theme": { | ||
3375 | "version": "1.0.14", | ||
3376 | "resolved": "https://registry.npmjs.org/@meetfranz/theme/-/theme-1.0.14.tgz", | ||
3377 | "integrity": "sha512-iWP+3ifiNum98sHKiNdUJK+R0p4Z7TT8OenA1N2BnSC6CFob+dLhzAK+o5lxcyEcKZKYDwd7JKRZj93wqpBPpg==", | ||
3378 | "requires": { | ||
3379 | "color": "^3.1.0" | ||
3380 | } | ||
3381 | } | ||
3268 | } | 3382 | } |
3269 | }, | 3383 | }, |
3270 | "@lerna/command": { | 3384 | "@lerna/command": { |
@@ -3906,6 +4020,12 @@ | |||
3906 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | 4020 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", |
3907 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", | 4021 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==", |
3908 | "dev": true | 4022 | "dev": true |
4023 | }, | ||
4024 | "type-fest": { | ||
4025 | "version": "0.3.1", | ||
4026 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", | ||
4027 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", | ||
4028 | "dev": true | ||
3909 | } | 4029 | } |
3910 | } | 4030 | } |
3911 | }, | 4031 | }, |
@@ -4009,6 +4129,12 @@ | |||
4009 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", | 4129 | "resolved": "https://registry.npmjs.org/resolve-from/-/resolve-from-4.0.0.tgz", |
4010 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", | 4130 | "integrity": "sha512-pb/MYmXstAkysRFx8piNI1tGFNQIFA3vkE3Gq4EuA1dF6gHp/+vgZqsCGJapvy8N3Q+4o7FwvquPJcnZ7RYy4g==", |
4011 | "dev": true | 4131 | "dev": true |
4132 | }, | ||
4133 | "type-fest": { | ||
4134 | "version": "0.3.1", | ||
4135 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", | ||
4136 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", | ||
4137 | "dev": true | ||
4012 | } | 4138 | } |
4013 | } | 4139 | } |
4014 | }, | 4140 | }, |
@@ -4299,6 +4425,12 @@ | |||
4299 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | 4425 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", |
4300 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | 4426 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", |
4301 | "dev": true | 4427 | "dev": true |
4428 | }, | ||
4429 | "type-fest": { | ||
4430 | "version": "0.3.1", | ||
4431 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", | ||
4432 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", | ||
4433 | "dev": true | ||
4302 | } | 4434 | } |
4303 | } | 4435 | } |
4304 | }, | 4436 | }, |
@@ -4337,6 +4469,7 @@ | |||
4337 | "requires": { | 4469 | "requires": { |
4338 | "@mdi/js": "^3.3.92", | 4470 | "@mdi/js": "^3.3.92", |
4339 | "@mdi/react": "^1.1.0", | 4471 | "@mdi/react": "^1.1.0", |
4472 | "@meetfranz/theme": "^1.0.14", | ||
4340 | "react-html-attributes": "^1.4.3", | 4473 | "react-html-attributes": "^1.4.3", |
4341 | "react-loader": "^2.4.5" | 4474 | "react-loader": "^2.4.5" |
4342 | }, | 4475 | }, |
@@ -4357,8 +4490,8 @@ | |||
4357 | "@meetfranz/ui": { | 4490 | "@meetfranz/ui": { |
4358 | "version": "file:packages/ui", | 4491 | "version": "file:packages/ui", |
4359 | "requires": { | 4492 | "requires": { |
4360 | "@mdi/js": "^3.3.92", | ||
4361 | "@mdi/react": "^1.1.0", | 4493 | "@mdi/react": "^1.1.0", |
4494 | "@meetfranz/theme": "^1.0.14", | ||
4362 | "react-loader": "^2.4.5" | 4495 | "react-loader": "^2.4.5" |
4363 | }, | 4496 | }, |
4364 | "dependencies": { | 4497 | "dependencies": { |
@@ -4941,9 +5074,10 @@ | |||
4941 | "dev": true | 5074 | "dev": true |
4942 | }, | 5075 | }, |
4943 | "@types/node": { | 5076 | "@types/node": { |
4944 | "version": "12.7.5", | 5077 | "version": "12.12.54", |
4945 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.7.5.tgz", | 5078 | "resolved": "https://registry.npmjs.org/@types/node/-/node-12.12.54.tgz", |
4946 | "integrity": "sha512-9fq4jZVhPNW8r+UYKnxF1e2HkDWOWKM5bC2/7c9wPV835I0aOrVbS/Hw/pWPk2uKrNXQqg9Z959Kz+IYDd5p3w==" | 5079 | "integrity": "sha512-ge4xZ3vSBornVYlDnk7yZ0gK6ChHf/CHB7Gl1I0Jhah8DDnEQqBzgohYG4FX4p81TNirSETOiSyn+y1r9/IR6w==", |
5080 | "dev": true | ||
4947 | }, | 5081 | }, |
4948 | "@types/normalize-package-data": { | 5082 | "@types/normalize-package-data": { |
4949 | "version": "2.4.0", | 5083 | "version": "2.4.0", |
@@ -4996,12 +5130,9 @@ | |||
4996 | } | 5130 | } |
4997 | }, | 5131 | }, |
4998 | "@types/semver": { | 5132 | "@types/semver": { |
4999 | "version": "7.1.0", | 5133 | "version": "7.3.4", |
5000 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.1.0.tgz", | 5134 | "resolved": "https://registry.npmjs.org/@types/semver/-/semver-7.3.4.tgz", |
5001 | "integrity": "sha512-pOKLaubrAEMUItGNpgwl0HMFPrSAFic8oSVIvfu1UwcgGNmNyK9gyhBHKmBnUTwwVvpZfkzUC0GaMgnL6P86uA==", | 5135 | "integrity": "sha512-+nVsLKlcUCeMzD2ufHEYuJ9a2ovstb6Dp52A5VsoKxDXgvE051XgHI/33I1EymwkRGQkwnA0LkhnUzituGs4EQ==" |
5002 | "requires": { | ||
5003 | "@types/node": "*" | ||
5004 | } | ||
5005 | }, | 5136 | }, |
5006 | "@types/stack-utils": { | 5137 | "@types/stack-utils": { |
5007 | "version": "1.0.1", | 5138 | "version": "1.0.1", |
@@ -5252,9 +5383,9 @@ | |||
5252 | } | 5383 | } |
5253 | }, | 5384 | }, |
5254 | "abab": { | 5385 | "abab": { |
5255 | "version": "2.0.3", | 5386 | "version": "2.0.5", |
5256 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.3.tgz", | 5387 | "resolved": "https://registry.npmjs.org/abab/-/abab-2.0.5.tgz", |
5257 | "integrity": "sha512-tsFzPpcttalNjFBCFMqsKYQcWxxen1pgJR56by//QwvJc4/OUS3kPOOttx2tSIfjsylB0pYu7f5D3K1RCxUnUg==", | 5388 | "integrity": "sha512-9IK9EadsbHo6jLWIpxpR6pL0sazTXV6+SQv25ZB+F7Bj9mJNaOc4nCRabwd5M/JwmUa8idz6Eci6eKfJryPs6Q==", |
5258 | "dev": true | 5389 | "dev": true |
5259 | }, | 5390 | }, |
5260 | "abbrev": { | 5391 | "abbrev": { |
@@ -5347,11 +5478,18 @@ | |||
5347 | "dev": true | 5478 | "dev": true |
5348 | }, | 5479 | }, |
5349 | "address-rfc2822": { | 5480 | "address-rfc2822": { |
5350 | "version": "2.0.4", | 5481 | "version": "2.0.5", |
5351 | "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.4.tgz", | 5482 | "resolved": "https://registry.npmjs.org/address-rfc2822/-/address-rfc2822-2.0.5.tgz", |
5352 | "integrity": "sha1-Lb07jWwt4elXwahUncAS1Au8NDE=", | 5483 | "integrity": "sha512-SDmgEM2qAXyBZ9v6QMGbBKsvfkClZy8I2ormg/+uopbrP8XzpcoObd1QNe6bnc+KWaHLjGVu7+PghCOC52TqGA==", |
5353 | "requires": { | 5484 | "requires": { |
5354 | "email-addresses": "^3.0.0" | 5485 | "email-addresses": "^3.1.0" |
5486 | }, | ||
5487 | "dependencies": { | ||
5488 | "email-addresses": { | ||
5489 | "version": "3.1.0", | ||
5490 | "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.1.0.tgz", | ||
5491 | "integrity": "sha512-k0/r7GrWVL32kZlGwfPNgB2Y/mMXVTq/decgLczm/j34whdaspNrZO8CnXPf1laaHxI6ptUlsnAxN+UAPw+fzg==" | ||
5492 | } | ||
5355 | } | 5493 | } |
5356 | }, | 5494 | }, |
5357 | "after": { | 5495 | "after": { |
@@ -5379,14 +5517,21 @@ | |||
5379 | } | 5517 | } |
5380 | }, | 5518 | }, |
5381 | "ajv": { | 5519 | "ajv": { |
5382 | "version": "6.10.2", | 5520 | "version": "6.12.6", |
5383 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.10.2.tgz", | 5521 | "resolved": "https://registry.npmjs.org/ajv/-/ajv-6.12.6.tgz", |
5384 | "integrity": "sha512-TXtUUEYHuaTEbLZWIKUr5pmBuhDLy+8KYtPYdcV8qC+pOZL+NKqYwvWSRrVXHn+ZmRRAu8vJTAznH7Oag6RVRw==", | 5522 | "integrity": "sha512-j3fVLgvTo527anyYyJOGTYJbG+vnnQYvE0m5mmkc1TK+nxAppkCLMIL0aZ4dblVCNoGShhm+kzE4ZUykBoMg4g==", |
5385 | "requires": { | 5523 | "requires": { |
5386 | "fast-deep-equal": "^2.0.1", | 5524 | "fast-deep-equal": "^3.1.1", |
5387 | "fast-json-stable-stringify": "^2.0.0", | 5525 | "fast-json-stable-stringify": "^2.0.0", |
5388 | "json-schema-traverse": "^0.4.1", | 5526 | "json-schema-traverse": "^0.4.1", |
5389 | "uri-js": "^4.2.2" | 5527 | "uri-js": "^4.2.2" |
5528 | }, | ||
5529 | "dependencies": { | ||
5530 | "fast-deep-equal": { | ||
5531 | "version": "3.1.3", | ||
5532 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-3.1.3.tgz", | ||
5533 | "integrity": "sha512-f3qQ9oQy9j2AhBe/H9VC91wLmKBCCU/gDOnKNAYG5hswO7BLKj09Hc5HYNz9cGI++xlpDCIgDaitVs03ATR84Q==" | ||
5534 | } | ||
5390 | } | 5535 | } |
5391 | }, | 5536 | }, |
5392 | "ajv-errors": { | 5537 | "ajv-errors": { |
@@ -5396,9 +5541,9 @@ | |||
5396 | "dev": true | 5541 | "dev": true |
5397 | }, | 5542 | }, |
5398 | "ajv-keywords": { | 5543 | "ajv-keywords": { |
5399 | "version": "3.4.1", | 5544 | "version": "3.5.2", |
5400 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.4.1.tgz", | 5545 | "resolved": "https://registry.npmjs.org/ajv-keywords/-/ajv-keywords-3.5.2.tgz", |
5401 | "integrity": "sha512-RO1ibKvd27e6FEShVFfPALuHI3WjSVNeK5FIsmme/LYRNxjKuNj+Dt7bucLa6NdSv3JcVTyMlm9kGR84z1XpaQ==", | 5546 | "integrity": "sha512-5p6WTN0DdTGVQk6VjcEju19IgaHudalcfabD7yhDGeA6bcQnmL+CpveLJq/3hvfwd1aof6L386Ougkx6RfyMIQ==", |
5402 | "dev": true | 5547 | "dev": true |
5403 | }, | 5548 | }, |
5404 | "all-contributors-cli": { | 5549 | "all-contributors-cli": { |
@@ -5426,19 +5571,18 @@ | |||
5426 | "dev": true | 5571 | "dev": true |
5427 | }, | 5572 | }, |
5428 | "ansi-styles": { | 5573 | "ansi-styles": { |
5429 | "version": "4.2.0", | 5574 | "version": "4.3.0", |
5430 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.0.tgz", | 5575 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
5431 | "integrity": "sha512-7kFQgnEaMdRtwf6uSfUnVr9gSGC7faurn+J/Mv90/W+iTtN0405/nLdopfMWwchyxhbGYl6TC4Sccn9TUkGAgg==", | 5576 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
5432 | "dev": true, | 5577 | "dev": true, |
5433 | "requires": { | 5578 | "requires": { |
5434 | "@types/color-name": "^1.1.1", | ||
5435 | "color-convert": "^2.0.1" | 5579 | "color-convert": "^2.0.1" |
5436 | } | 5580 | } |
5437 | }, | 5581 | }, |
5438 | "async": { | 5582 | "async": { |
5439 | "version": "3.1.0", | 5583 | "version": "3.2.0", |
5440 | "resolved": "https://registry.npmjs.org/async/-/async-3.1.0.tgz", | 5584 | "resolved": "https://registry.npmjs.org/async/-/async-3.2.0.tgz", |
5441 | "integrity": "sha512-4vx/aaY6j/j3Lw3fbCHNWP0pPaTCew3F6F3hYyl/tHs/ndmV1q7NW9T5yuJ2XAGwdQrP+6Wu20x06U4APo/iQQ==", | 5585 | "integrity": "sha512-TR2mEZFVOj2pLStYxLht7TyfuRzaydfpxr3k9RpHIzMgw7A64dzsdqCxH1WJyQdoe8T10nDXd9wnEigmiuHIZw==", |
5442 | "dev": true | 5586 | "dev": true |
5443 | }, | 5587 | }, |
5444 | "chalk": { | 5588 | "chalk": { |
@@ -5522,9 +5666,9 @@ | |||
5522 | } | 5666 | } |
5523 | }, | 5667 | }, |
5524 | "supports-color": { | 5668 | "supports-color": { |
5525 | "version": "7.1.0", | 5669 | "version": "7.2.0", |
5526 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.1.0.tgz", | 5670 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", |
5527 | "integrity": "sha512-oRSIpR8pxT1Wr2FquTNnGet79b3BWljqOuoW/h4oBhxJ/HUbX5nX6JSruTkvXDCFMwDPvsaTTbvMLKZWSy0R5g==", | 5671 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", |
5528 | "dev": true, | 5672 | "dev": true, |
5529 | "requires": { | 5673 | "requires": { |
5530 | "has-flag": "^4.0.0" | 5674 | "has-flag": "^4.0.0" |
@@ -5568,9 +5712,9 @@ | |||
5568 | } | 5712 | } |
5569 | }, | 5713 | }, |
5570 | "yargs": { | 5714 | "yargs": { |
5571 | "version": "14.2.2", | 5715 | "version": "14.2.3", |
5572 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.2.tgz", | 5716 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-14.2.3.tgz", |
5573 | "integrity": "sha512-/4ld+4VV5RnrynMhPZJ/ZpOCGSCeghMykZ3BhdFBDa9Wy/RH6uEGNWDJog+aUlq+9OM1CFTgtYRW5Is1Po9NOA==", | 5717 | "integrity": "sha512-ZbotRWhF+lkjijC/VhmOT9wSgyBQ7+zr13+YLkhfsSiTriYsMzkTUFP18pFhWwBeMa5gUc1MzbhrO6/VB7c9Xg==", |
5574 | "dev": true, | 5718 | "dev": true, |
5575 | "requires": { | 5719 | "requires": { |
5576 | "cliui": "^5.0.0", | 5720 | "cliui": "^5.0.0", |
@@ -5583,13 +5727,13 @@ | |||
5583 | "string-width": "^3.0.0", | 5727 | "string-width": "^3.0.0", |
5584 | "which-module": "^2.0.0", | 5728 | "which-module": "^2.0.0", |
5585 | "y18n": "^4.0.0", | 5729 | "y18n": "^4.0.0", |
5586 | "yargs-parser": "^15.0.0" | 5730 | "yargs-parser": "^15.0.1" |
5587 | } | 5731 | } |
5588 | }, | 5732 | }, |
5589 | "yargs-parser": { | 5733 | "yargs-parser": { |
5590 | "version": "15.0.0", | 5734 | "version": "15.0.1", |
5591 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.0.tgz", | 5735 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-15.0.1.tgz", |
5592 | "integrity": "sha512-xLTUnCMc4JhxrPEPUYD5IBR1mWCK/aT6+RJ/K29JY2y1vD+FhtgKK0AXRWvI262q3QSffAQuTouFIKUuHX89wQ==", | 5736 | "integrity": "sha512-0OAMV2mAZQrs3FkNpDQcBk1x5HXb8X4twADss4S0Iuk+2dGnLOE/fRHrsYm542GduMveyA77OF4wrNJuanRCWw==", |
5593 | "dev": true, | 5737 | "dev": true, |
5594 | "requires": { | 5738 | "requires": { |
5595 | "camelcase": "^5.0.0", | 5739 | "camelcase": "^5.0.0", |
@@ -5904,29 +6048,29 @@ | |||
5904 | } | 6048 | } |
5905 | }, | 6049 | }, |
5906 | "app-builder-bin": { | 6050 | "app-builder-bin": { |
5907 | "version": "3.5.10", | 6051 | "version": "3.5.9", |
5908 | "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.10.tgz", | 6052 | "resolved": "https://registry.npmjs.org/app-builder-bin/-/app-builder-bin-3.5.9.tgz", |
5909 | "integrity": "sha512-Jd+GW68lR0NeetgZDo47PdWBEPdnD+p0jEa7XaxjRC8u6Oo/wgJsfKUkORRgr2NpkD19IFKN50P6JYy04XHFLQ==", | 6053 | "integrity": "sha512-NSjtqZ3x2kYiDp3Qezsgukx/AUzKPr3Xgf9by4cYt05ILWGAptepeeu0Uv+7MO+41o6ujhLixTou8979JGg2Kg==", |
5910 | "dev": true | 6054 | "dev": true |
5911 | }, | 6055 | }, |
5912 | "app-builder-lib": { | 6056 | "app-builder-lib": { |
5913 | "version": "22.8.1", | 6057 | "version": "22.7.0", |
5914 | "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.8.1.tgz", | 6058 | "resolved": "https://registry.npmjs.org/app-builder-lib/-/app-builder-lib-22.7.0.tgz", |
5915 | "integrity": "sha512-D/ac1+vuGIAAwEeTtXl8b+qWl7Gz/IQatFyzYl2ocag/7N8LqUjKzZFJJISQPWt6PFDPDH0oCj8/GMh63aV0yw==", | 6059 | "integrity": "sha512-blRKwV8h0ztualXS50ciCTo39tbuDGNS+ldcy8+KLvKXuT6OpYnSJ7M6MSfPT+xWatshMHJV1rJx3Tl+k/Sn/g==", |
5916 | "dev": true, | 6060 | "dev": true, |
5917 | "requires": { | 6061 | "requires": { |
5918 | "7zip-bin": "~5.0.3", | 6062 | "7zip-bin": "~5.0.3", |
5919 | "@develar/schema-utils": "~2.6.5", | 6063 | "@develar/schema-utils": "~2.6.5", |
5920 | "async-exit-hook": "^2.0.1", | 6064 | "async-exit-hook": "^2.0.1", |
5921 | "bluebird-lst": "^1.0.9", | 6065 | "bluebird-lst": "^1.0.9", |
5922 | "builder-util": "22.8.1", | 6066 | "builder-util": "22.7.0", |
5923 | "builder-util-runtime": "8.7.2", | 6067 | "builder-util-runtime": "8.7.1", |
5924 | "chromium-pickle-js": "^0.2.0", | 6068 | "chromium-pickle-js": "^0.2.0", |
5925 | "debug": "^4.2.0", | 6069 | "debug": "^4.2.0", |
5926 | "ejs": "^3.1.3", | 6070 | "ejs": "^3.1.3", |
5927 | "electron-publish": "22.8.1", | 6071 | "electron-publish": "22.7.0", |
5928 | "fs-extra": "^9.0.1", | 6072 | "fs-extra": "^9.0.0", |
5929 | "hosted-git-info": "^3.0.5", | 6073 | "hosted-git-info": "^3.0.4", |
5930 | "is-ci": "^2.0.0", | 6074 | "is-ci": "^2.0.0", |
5931 | "isbinaryfile": "^4.0.6", | 6075 | "isbinaryfile": "^4.0.6", |
5932 | "js-yaml": "^3.14.0", | 6076 | "js-yaml": "^3.14.0", |
@@ -5939,16 +6083,59 @@ | |||
5939 | "temp-file": "^3.3.7" | 6083 | "temp-file": "^3.3.7" |
5940 | }, | 6084 | }, |
5941 | "dependencies": { | 6085 | "dependencies": { |
6086 | "@types/fs-extra": { | ||
6087 | "version": "9.0.2", | ||
6088 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.2.tgz", | ||
6089 | "integrity": "sha512-jp0RI6xfZpi5JL8v7WQwpBEQTq63RqW2kxwTZt+m27LcJqQdPVU1yGnT1ZI4EtCDynQQJtIGyQahkiCGCS7e+A==", | ||
6090 | "dev": true, | ||
6091 | "requires": { | ||
6092 | "@types/node": "*" | ||
6093 | } | ||
6094 | }, | ||
6095 | "ansi-styles": { | ||
6096 | "version": "4.3.0", | ||
6097 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", | ||
6098 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", | ||
6099 | "dev": true, | ||
6100 | "requires": { | ||
6101 | "color-convert": "^2.0.1" | ||
6102 | } | ||
6103 | }, | ||
5942 | "builder-util-runtime": { | 6104 | "builder-util-runtime": { |
5943 | "version": "8.7.2", | 6105 | "version": "8.7.1", |
5944 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", | 6106 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz", |
5945 | "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", | 6107 | "integrity": "sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg==", |
5946 | "dev": true, | 6108 | "dev": true, |
5947 | "requires": { | 6109 | "requires": { |
5948 | "debug": "^4.1.1", | 6110 | "debug": "^4.2.0", |
5949 | "sax": "^1.2.4" | 6111 | "sax": "^1.2.4" |
5950 | } | 6112 | } |
5951 | }, | 6113 | }, |
6114 | "chalk": { | ||
6115 | "version": "4.1.0", | ||
6116 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", | ||
6117 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", | ||
6118 | "dev": true, | ||
6119 | "requires": { | ||
6120 | "ansi-styles": "^4.1.0", | ||
6121 | "supports-color": "^7.1.0" | ||
6122 | } | ||
6123 | }, | ||
6124 | "color-convert": { | ||
6125 | "version": "2.0.1", | ||
6126 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
6127 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
6128 | "dev": true, | ||
6129 | "requires": { | ||
6130 | "color-name": "~1.1.4" | ||
6131 | } | ||
6132 | }, | ||
6133 | "color-name": { | ||
6134 | "version": "1.1.4", | ||
6135 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
6136 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
6137 | "dev": true | ||
6138 | }, | ||
5952 | "debug": { | 6139 | "debug": { |
5953 | "version": "4.2.0", | 6140 | "version": "4.2.0", |
5954 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", | 6141 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", |
@@ -5958,6 +6145,22 @@ | |||
5958 | "ms": "2.1.2" | 6145 | "ms": "2.1.2" |
5959 | } | 6146 | } |
5960 | }, | 6147 | }, |
6148 | "electron-publish": { | ||
6149 | "version": "22.7.0", | ||
6150 | "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.7.0.tgz", | ||
6151 | "integrity": "sha512-hmU69xlb6vvAV3QfpHYDlkdZMFdBAgDbptoxbLFrnTq5bOkcL8AaDbvxeoZ4+lvqgs29NwqGpkHo2oN+p/hCfg==", | ||
6152 | "dev": true, | ||
6153 | "requires": { | ||
6154 | "@types/fs-extra": "^9.0.1", | ||
6155 | "bluebird-lst": "^1.0.9", | ||
6156 | "builder-util": "22.7.0", | ||
6157 | "builder-util-runtime": "8.7.1", | ||
6158 | "chalk": "^4.0.0", | ||
6159 | "fs-extra": "^9.0.0", | ||
6160 | "lazy-val": "^1.0.4", | ||
6161 | "mime": "^2.4.5" | ||
6162 | } | ||
6163 | }, | ||
5961 | "fs-extra": { | 6164 | "fs-extra": { |
5962 | "version": "9.0.1", | 6165 | "version": "9.0.1", |
5963 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", | 6166 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", |
@@ -5970,13 +6173,25 @@ | |||
5970 | "universalify": "^1.0.0" | 6173 | "universalify": "^1.0.0" |
5971 | } | 6174 | } |
5972 | }, | 6175 | }, |
6176 | "graceful-fs": { | ||
6177 | "version": "4.2.4", | ||
6178 | "resolved": "https://registry.npmjs.org/graceful-fs/-/graceful-fs-4.2.4.tgz", | ||
6179 | "integrity": "sha512-WjKPNJF79dtJAVniUlGGWHYGz2jWxT6VhN/4m1NdkbZ2nOsEF+cI1Edgql5zCRhs/VsQYRvrXctxktVXZUkixw==", | ||
6180 | "dev": true | ||
6181 | }, | ||
6182 | "has-flag": { | ||
6183 | "version": "4.0.0", | ||
6184 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||
6185 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||
6186 | "dev": true | ||
6187 | }, | ||
5973 | "hosted-git-info": { | 6188 | "hosted-git-info": { |
5974 | "version": "3.0.5", | 6189 | "version": "3.0.4", |
5975 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.5.tgz", | 6190 | "resolved": "https://registry.npmjs.org/hosted-git-info/-/hosted-git-info-3.0.4.tgz", |
5976 | "integrity": "sha512-i4dpK6xj9BIpVOTboXIlKG9+8HMKggcrMX7WA24xZtKwX0TPelq/rbaS5rCKeNX8sJXZJGdSxpnEGtta+wismQ==", | 6191 | "integrity": "sha512-4oT62d2jwSDBbLLFLZE+1vPuQ1h8p9wjrJ8Mqx5TjsyWmBMV5B13eJqn8pvluqubLf3cJPTfiYCIwNwDNmzScQ==", |
5977 | "dev": true, | 6192 | "dev": true, |
5978 | "requires": { | 6193 | "requires": { |
5979 | "lru-cache": "^6.0.0" | 6194 | "lru-cache": "^5.1.1" |
5980 | } | 6195 | } |
5981 | }, | 6196 | }, |
5982 | "js-yaml": { | 6197 | "js-yaml": { |
@@ -6000,31 +6215,56 @@ | |||
6000 | } | 6215 | } |
6001 | }, | 6216 | }, |
6002 | "lru-cache": { | 6217 | "lru-cache": { |
6003 | "version": "6.0.0", | 6218 | "version": "5.1.1", |
6004 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | 6219 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-5.1.1.tgz", |
6005 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", | 6220 | "integrity": "sha512-KpNARQA3Iwv+jTA0utUVVbrh+Jlrr1Fv0e56GGzAFOXN7dk/FviaDW8LHmK52DlcH4WP2n6gI8vN1aesBFgo9w==", |
6006 | "dev": true, | 6221 | "dev": true, |
6007 | "requires": { | 6222 | "requires": { |
6008 | "yallist": "^4.0.0" | 6223 | "yallist": "^3.0.2" |
6009 | } | 6224 | } |
6010 | }, | 6225 | }, |
6226 | "mime": { | ||
6227 | "version": "2.4.6", | ||
6228 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", | ||
6229 | "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", | ||
6230 | "dev": true | ||
6231 | }, | ||
6232 | "ms": { | ||
6233 | "version": "2.1.2", | ||
6234 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
6235 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||
6236 | "dev": true | ||
6237 | }, | ||
6238 | "pify": { | ||
6239 | "version": "4.0.1", | ||
6240 | "resolved": "https://registry.npmjs.org/pify/-/pify-4.0.1.tgz", | ||
6241 | "integrity": "sha512-uB80kBFb/tfd68bVleG9T5GGsGPjJrLAUpR5PZIrhBnIaRTQRjqdJSsIKkOP6OAIFbj7GOrcudc5pNjZ+geV2g==" | ||
6242 | }, | ||
6011 | "semver": { | 6243 | "semver": { |
6012 | "version": "7.3.2", | 6244 | "version": "7.3.2", |
6013 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", | 6245 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", |
6014 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", | 6246 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", |
6015 | "dev": true | 6247 | "dev": true |
6016 | }, | 6248 | }, |
6249 | "supports-color": { | ||
6250 | "version": "7.2.0", | ||
6251 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | ||
6252 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | ||
6253 | "dev": true, | ||
6254 | "requires": { | ||
6255 | "has-flag": "^4.0.0" | ||
6256 | } | ||
6257 | }, | ||
6258 | "type-fest": { | ||
6259 | "version": "0.3.1", | ||
6260 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", | ||
6261 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==" | ||
6262 | }, | ||
6017 | "universalify": { | 6263 | "universalify": { |
6018 | "version": "1.0.0", | 6264 | "version": "1.0.0", |
6019 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", | 6265 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", |
6020 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", | 6266 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", |
6021 | "dev": true | 6267 | "dev": true |
6022 | }, | ||
6023 | "yallist": { | ||
6024 | "version": "4.0.0", | ||
6025 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", | ||
6026 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", | ||
6027 | "dev": true | ||
6028 | } | 6268 | } |
6029 | } | 6269 | } |
6030 | }, | 6270 | }, |
@@ -6315,7 +6555,8 @@ | |||
6315 | "asap": { | 6555 | "asap": { |
6316 | "version": "2.0.6", | 6556 | "version": "2.0.6", |
6317 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", | 6557 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", |
6318 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" | 6558 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=", |
6559 | "dev": true | ||
6319 | }, | 6560 | }, |
6320 | "asn1": { | 6561 | "asn1": { |
6321 | "version": "0.2.4", | 6562 | "version": "0.2.4", |
@@ -6442,8 +6683,7 @@ | |||
6442 | "at-least-node": { | 6683 | "at-least-node": { |
6443 | "version": "1.0.0", | 6684 | "version": "1.0.0", |
6444 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", | 6685 | "resolved": "https://registry.npmjs.org/at-least-node/-/at-least-node-1.0.0.tgz", |
6445 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==", | 6686 | "integrity": "sha512-+q/t7Ekv1EDY2l6Gda6LLiX14rU9TV20Wa3ofeQmwPFZbOMo9DXrLbOjFaaclkXKWidIaopwAObQDqwWtGUjqg==" |
6446 | "dev": true | ||
6447 | }, | 6687 | }, |
6448 | "atob": { | 6688 | "atob": { |
6449 | "version": "2.1.2", | 6689 | "version": "2.1.2", |
@@ -7343,9 +7583,9 @@ | |||
7343 | "dev": true | 7583 | "dev": true |
7344 | }, | 7584 | }, |
7345 | "boolean": { | 7585 | "boolean": { |
7346 | "version": "3.0.2", | 7586 | "version": "3.0.1", |
7347 | "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.2.tgz", | 7587 | "resolved": "https://registry.npmjs.org/boolean/-/boolean-3.0.1.tgz", |
7348 | "integrity": "sha512-RwywHlpCRc3/Wh81MiCKun4ydaIFyW5Ea6JbL6sRCVx5q5irDw7pMXBUFYF/jArQ6YrG36q0kpovc9P/Kd3I4g==", | 7588 | "integrity": "sha512-HRZPIjPcbwAVQvOTxR4YE3o8Xs98NqbbL1iEZDCz7CL8ql0Lt5iOyJFxfnAB0oFs8Oh02F/lLlg30Mexv46LjA==", |
7349 | "dev": true, | 7589 | "dev": true, |
7350 | "optional": true | 7590 | "optional": true |
7351 | }, | 7591 | }, |
@@ -7381,12 +7621,11 @@ | |||
7381 | "dev": true | 7621 | "dev": true |
7382 | }, | 7622 | }, |
7383 | "ansi-styles": { | 7623 | "ansi-styles": { |
7384 | "version": "4.2.1", | 7624 | "version": "4.3.0", |
7385 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | 7625 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
7386 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | 7626 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
7387 | "dev": true, | 7627 | "dev": true, |
7388 | "requires": { | 7628 | "requires": { |
7389 | "@types/color-name": "^1.1.1", | ||
7390 | "color-convert": "^2.0.1" | 7629 | "color-convert": "^2.0.1" |
7391 | } | 7630 | } |
7392 | }, | 7631 | }, |
@@ -7461,12 +7700,6 @@ | |||
7461 | "requires": { | 7700 | "requires": { |
7462 | "has-flag": "^4.0.0" | 7701 | "has-flag": "^4.0.0" |
7463 | } | 7702 | } |
7464 | }, | ||
7465 | "type-fest": { | ||
7466 | "version": "0.8.1", | ||
7467 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | ||
7468 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | ||
7469 | "dev": true | ||
7470 | } | 7703 | } |
7471 | } | 7704 | } |
7472 | }, | 7705 | }, |
@@ -7718,20 +7951,20 @@ | |||
7718 | "dev": true | 7951 | "dev": true |
7719 | }, | 7952 | }, |
7720 | "builder-util": { | 7953 | "builder-util": { |
7721 | "version": "22.8.1", | 7954 | "version": "22.7.0", |
7722 | "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.8.1.tgz", | 7955 | "resolved": "https://registry.npmjs.org/builder-util/-/builder-util-22.7.0.tgz", |
7723 | "integrity": "sha512-LZG+E1xszMdut5hL5h7RkJQ7yOsQqdhJYgn1wvOP7MmF3MoUPRNDiRodLpYiWlaqZmgYhcfaipR/Mb8F/RqK8w==", | 7956 | "integrity": "sha512-UV3MKL0mwjMq2y9JlBf28Cegpj0CrIXcjGkO0TXn+QZ6Yy9rY6lHOuUvpQ19ct2Qh1o+QSwH3Q1nKUf5viJBBg==", |
7724 | "dev": true, | 7957 | "dev": true, |
7725 | "requires": { | 7958 | "requires": { |
7726 | "7zip-bin": "~5.0.3", | 7959 | "7zip-bin": "~5.0.3", |
7727 | "@types/debug": "^4.1.5", | 7960 | "@types/debug": "^4.1.5", |
7728 | "@types/fs-extra": "^9.0.1", | 7961 | "@types/fs-extra": "^9.0.1", |
7729 | "app-builder-bin": "3.5.10", | 7962 | "app-builder-bin": "3.5.9", |
7730 | "bluebird-lst": "^1.0.9", | 7963 | "bluebird-lst": "^1.0.9", |
7731 | "builder-util-runtime": "8.7.2", | 7964 | "builder-util-runtime": "8.7.1", |
7732 | "chalk": "^4.1.0", | 7965 | "chalk": "^4.0.0", |
7733 | "debug": "^4.2.0", | 7966 | "debug": "^4.2.0", |
7734 | "fs-extra": "^9.0.1", | 7967 | "fs-extra": "^9.0.0", |
7735 | "is-ci": "^2.0.0", | 7968 | "is-ci": "^2.0.0", |
7736 | "js-yaml": "^3.14.0", | 7969 | "js-yaml": "^3.14.0", |
7737 | "source-map-support": "^0.5.19", | 7970 | "source-map-support": "^0.5.19", |
@@ -7740,31 +7973,30 @@ | |||
7740 | }, | 7973 | }, |
7741 | "dependencies": { | 7974 | "dependencies": { |
7742 | "@types/fs-extra": { | 7975 | "@types/fs-extra": { |
7743 | "version": "9.0.1", | 7976 | "version": "9.0.2", |
7744 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", | 7977 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.2.tgz", |
7745 | "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", | 7978 | "integrity": "sha512-jp0RI6xfZpi5JL8v7WQwpBEQTq63RqW2kxwTZt+m27LcJqQdPVU1yGnT1ZI4EtCDynQQJtIGyQahkiCGCS7e+A==", |
7746 | "dev": true, | 7979 | "dev": true, |
7747 | "requires": { | 7980 | "requires": { |
7748 | "@types/node": "*" | 7981 | "@types/node": "*" |
7749 | } | 7982 | } |
7750 | }, | 7983 | }, |
7751 | "ansi-styles": { | 7984 | "ansi-styles": { |
7752 | "version": "4.2.1", | 7985 | "version": "4.3.0", |
7753 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | 7986 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
7754 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | 7987 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
7755 | "dev": true, | 7988 | "dev": true, |
7756 | "requires": { | 7989 | "requires": { |
7757 | "@types/color-name": "^1.1.1", | ||
7758 | "color-convert": "^2.0.1" | 7990 | "color-convert": "^2.0.1" |
7759 | } | 7991 | } |
7760 | }, | 7992 | }, |
7761 | "builder-util-runtime": { | 7993 | "builder-util-runtime": { |
7762 | "version": "8.7.2", | 7994 | "version": "8.7.1", |
7763 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", | 7995 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz", |
7764 | "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", | 7996 | "integrity": "sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg==", |
7765 | "dev": true, | 7997 | "dev": true, |
7766 | "requires": { | 7998 | "requires": { |
7767 | "debug": "^4.1.1", | 7999 | "debug": "^4.2.0", |
7768 | "sax": "^1.2.4" | 8000 | "sax": "^1.2.4" |
7769 | } | 8001 | } |
7770 | }, | 8002 | }, |
@@ -7868,9 +8100,9 @@ | |||
7868 | } | 8100 | } |
7869 | }, | 8101 | }, |
7870 | "builder-util-runtime": { | 8102 | "builder-util-runtime": { |
7871 | "version": "8.6.2", | 8103 | "version": "8.7.2", |
7872 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.6.2.tgz", | 8104 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", |
7873 | "integrity": "sha512-9QnIBISfhgQ2BxtRLidVqf/v5HD73vSKZDllpUmGd2L6VORGQk7cZAPmPtw4HQM3gPBelyVJ5yIjMNZ8xjmd1A==", | 8105 | "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", |
7874 | "requires": { | 8106 | "requires": { |
7875 | "debug": "^4.1.1", | 8107 | "debug": "^4.1.1", |
7876 | "sax": "^1.2.4" | 8108 | "sax": "^1.2.4" |
@@ -7977,9 +8209,9 @@ | |||
7977 | }, | 8209 | }, |
7978 | "dependencies": { | 8210 | "dependencies": { |
7979 | "get-stream": { | 8211 | "get-stream": { |
7980 | "version": "5.1.0", | 8212 | "version": "5.2.0", |
7981 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.1.0.tgz", | 8213 | "resolved": "https://registry.npmjs.org/get-stream/-/get-stream-5.2.0.tgz", |
7982 | "integrity": "sha512-EXr1FOzrzTfGeL0gQdeFEvOMm2mzMOglyiOXSTpPC+iAjAKftbr3jpCMWynogwYnM+eSj9sHGc6wjIcDvYiygw==", | 8214 | "integrity": "sha512-nBF+F1rAZVCu/p7rjzgA+Yb4lfYXrpl7a6VmJrU8wF9I1CKvP/QwPNZHnOlwbTkY6dvtFIzFMSyQXbLoTQPRpA==", |
7983 | "dev": true, | 8215 | "dev": true, |
7984 | "requires": { | 8216 | "requires": { |
7985 | "pump": "^3.0.0" | 8217 | "pump": "^3.0.0" |
@@ -7992,13 +8224,22 @@ | |||
7992 | "dev": true | 8224 | "dev": true |
7993 | }, | 8225 | }, |
7994 | "normalize-url": { | 8226 | "normalize-url": { |
7995 | "version": "4.4.1", | 8227 | "version": "4.5.0", |
7996 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.4.1.tgz", | 8228 | "resolved": "https://registry.npmjs.org/normalize-url/-/normalize-url-4.5.0.tgz", |
7997 | "integrity": "sha512-rjH3yRt0Ssx19mUwS0hrDUOdG9VI+oRLpLHJ7tXRdjcuQ7v7wo6qPvOZppHRrqfslTKr0L2yBhjj4UXd7c3cQg==", | 8229 | "integrity": "sha512-2s47yzUxdexf1OhyRi4Em83iQk0aPvwTddtFz4hnSSw9dCEsLEGf6SwIO8ss/19S9iBb5sJaOuTvTGDeZI00BQ==", |
7998 | "dev": true | 8230 | "dev": true |
7999 | } | 8231 | } |
8000 | } | 8232 | } |
8001 | }, | 8233 | }, |
8234 | "call-bind": { | ||
8235 | "version": "1.0.2", | ||
8236 | "resolved": "https://registry.npmjs.org/call-bind/-/call-bind-1.0.2.tgz", | ||
8237 | "integrity": "sha512-7O+FbCihrB5WGbFYesctwmTKae6rOiIzmz1icreWJ+0aA7LJfuqhEso2T9ncpcFtzMQtzXf2QGGueWJGTYsqrA==", | ||
8238 | "requires": { | ||
8239 | "function-bind": "^1.1.1", | ||
8240 | "get-intrinsic": "^1.0.2" | ||
8241 | } | ||
8242 | }, | ||
8002 | "call-me-maybe": { | 8243 | "call-me-maybe": { |
8003 | "version": "1.0.1", | 8244 | "version": "1.0.1", |
8004 | "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", | 8245 | "resolved": "https://registry.npmjs.org/call-me-maybe/-/call-me-maybe-1.0.1.tgz", |
@@ -8260,14 +8501,29 @@ | |||
8260 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", | 8501 | "resolved": "https://registry.npmjs.org/classnames/-/classnames-2.2.6.tgz", |
8261 | "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" | 8502 | "integrity": "sha512-JR/iSQOSt+LQIWwrwEzJ9uk0xfN3mTVYMwt1Ir5mUcSN6pU+V4zQFFaJsclJbPuAUQH+yfWef6tm7l1quW3C8Q==" |
8262 | }, | 8503 | }, |
8263 | "cld3-asm": { | 8504 | "cld": { |
8264 | "version": "1.0.1", | 8505 | "version": "2.7.0", |
8265 | "resolved": "https://registry.npmjs.org/cld3-asm/-/cld3-asm-1.0.1.tgz", | 8506 | "resolved": "https://registry.npmjs.org/cld/-/cld-2.7.0.tgz", |
8266 | "integrity": "sha512-wuAqZd44Rk164TLKSYyLFZGSObhf82udOR+M/CnOkeEShq9+Tpxb/9RAE0m/KUVD1DnR5gMkZFeYExt51PCAbg==", | 8507 | "integrity": "sha512-rM20jIISRqMYfZAlowCA4DwLLegJXqfCFdVb1vtS+RG7yKHn4FrYdFfUx2WGbmaqOQV/w4MRIszh43FH78/oRA==", |
8267 | "requires": { | 8508 | "requires": { |
8268 | "emscripten-wasm-loader": "^1.0.0", | 8509 | "glob": "^5.0.10", |
8269 | "tslib": "^1.9.0", | 8510 | "node-addon-api": "*", |
8270 | "utf8": "^3.0.0" | 8511 | "rimraf": "^2.4.0", |
8512 | "underscore": "^1.6.0" | ||
8513 | }, | ||
8514 | "dependencies": { | ||
8515 | "glob": { | ||
8516 | "version": "5.0.15", | ||
8517 | "resolved": "https://registry.npmjs.org/glob/-/glob-5.0.15.tgz", | ||
8518 | "integrity": "sha1-G8k2ueAvSmA/zCIuz3Yz0wuLk7E=", | ||
8519 | "requires": { | ||
8520 | "inflight": "^1.0.4", | ||
8521 | "inherits": "2", | ||
8522 | "minimatch": "2 || 3", | ||
8523 | "once": "^1.3.0", | ||
8524 | "path-is-absolute": "^1.0.0" | ||
8525 | } | ||
8526 | } | ||
8271 | } | 8527 | } |
8272 | }, | 8528 | }, |
8273 | "clean-css": { | 8529 | "clean-css": { |
@@ -8599,16 +8855,6 @@ | |||
8599 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", | 8855 | "integrity": "sha1-3dgA2gxmEnOTzKWVDqloo6rxJTs=", |
8600 | "dev": true | 8856 | "dev": true |
8601 | }, | 8857 | }, |
8602 | "compare-func": { | ||
8603 | "version": "1.3.2", | ||
8604 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-1.3.2.tgz", | ||
8605 | "integrity": "sha1-md0LpFfh+bxyKxLAjsM+6rMfpkg=", | ||
8606 | "dev": true, | ||
8607 | "requires": { | ||
8608 | "array-ify": "^1.0.0", | ||
8609 | "dot-prop": "^3.0.0" | ||
8610 | } | ||
8611 | }, | ||
8612 | "component-bind": { | 8858 | "component-bind": { |
8613 | "version": "1.0.0", | 8859 | "version": "1.0.0", |
8614 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", | 8860 | "resolved": "https://registry.npmjs.org/component-bind/-/component-bind-1.0.0.tgz", |
@@ -8954,56 +9200,383 @@ | |||
8954 | "dev": true | 9200 | "dev": true |
8955 | }, | 9201 | }, |
8956 | "conventional-changelog": { | 9202 | "conventional-changelog": { |
8957 | "version": "3.1.15", | 9203 | "version": "3.1.23", |
8958 | "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.15.tgz", | 9204 | "resolved": "https://registry.npmjs.org/conventional-changelog/-/conventional-changelog-3.1.23.tgz", |
8959 | "integrity": "sha512-CoWM+Z9bYyF00QzNpTnxkCLiuLAeRocJz3C/foFjvhsdltdtkJgMChp7GytQNjm4pT7JFBVJTpqLHTpxNtOzaA==", | 9205 | "integrity": "sha512-sScUu2NHusjRC1dPc5p8/b3kT78OYr95/Bx7Vl8CPB8tF2mG1xei5iylDTRjONV5hTlzt+Cn/tBWrKdd299b7A==", |
8960 | "dev": true, | 9206 | "dev": true, |
8961 | "requires": { | 9207 | "requires": { |
8962 | "conventional-changelog-angular": "^5.0.6", | 9208 | "conventional-changelog-angular": "^5.0.11", |
8963 | "conventional-changelog-atom": "^2.0.3", | 9209 | "conventional-changelog-atom": "^2.0.7", |
8964 | "conventional-changelog-codemirror": "^2.0.3", | 9210 | "conventional-changelog-codemirror": "^2.0.7", |
8965 | "conventional-changelog-conventionalcommits": "^4.2.3", | 9211 | "conventional-changelog-conventionalcommits": "^4.4.0", |
8966 | "conventional-changelog-core": "^4.1.1", | 9212 | "conventional-changelog-core": "^4.2.0", |
8967 | "conventional-changelog-ember": "^2.0.4", | 9213 | "conventional-changelog-ember": "^2.0.8", |
8968 | "conventional-changelog-eslint": "^3.0.4", | 9214 | "conventional-changelog-eslint": "^3.0.8", |
8969 | "conventional-changelog-express": "^2.0.1", | 9215 | "conventional-changelog-express": "^2.0.5", |
8970 | "conventional-changelog-jquery": "^3.0.6", | 9216 | "conventional-changelog-jquery": "^3.0.10", |
8971 | "conventional-changelog-jshint": "^2.0.3", | 9217 | "conventional-changelog-jshint": "^2.0.8", |
8972 | "conventional-changelog-preset-loader": "^2.3.0" | 9218 | "conventional-changelog-preset-loader": "^2.3.4" |
8973 | }, | 9219 | }, |
8974 | "dependencies": { | 9220 | "dependencies": { |
8975 | "conventional-changelog-angular": { | 9221 | "camelcase-keys": { |
8976 | "version": "5.0.6", | 9222 | "version": "6.2.2", |
8977 | "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.6.tgz", | 9223 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", |
8978 | "integrity": "sha512-QDEmLa+7qdhVIv8sFZfVxU1VSyVvnXPsxq8Vam49mKUcO1Z8VTLEJk9uI21uiJUsnmm0I4Hrsdc9TgkOQo9WSA==", | 9224 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", |
9225 | "dev": true, | ||
9226 | "requires": { | ||
9227 | "camelcase": "^5.3.1", | ||
9228 | "map-obj": "^4.0.0", | ||
9229 | "quick-lru": "^4.0.1" | ||
9230 | } | ||
9231 | }, | ||
9232 | "compare-func": { | ||
9233 | "version": "2.0.0", | ||
9234 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", | ||
9235 | "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", | ||
9236 | "dev": true, | ||
9237 | "requires": { | ||
9238 | "array-ify": "^1.0.0", | ||
9239 | "dot-prop": "^5.1.0" | ||
9240 | } | ||
9241 | }, | ||
9242 | "conventional-changelog-codemirror": { | ||
9243 | "version": "2.0.7", | ||
9244 | "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.7.tgz", | ||
9245 | "integrity": "sha512-Oralk1kiagn3Gb5cR5BffenWjVu59t/viE6UMD/mQa1hISMPkMYhJIqX+CMeA1zXgVBO+YHQhhokEj99GP5xcg==", | ||
8979 | "dev": true, | 9246 | "dev": true, |
8980 | "requires": { | 9247 | "requires": { |
8981 | "compare-func": "^1.3.1", | ||
8982 | "q": "^1.5.1" | 9248 | "q": "^1.5.1" |
8983 | } | 9249 | } |
8984 | }, | 9250 | }, |
8985 | "conventional-changelog-preset-loader": { | 9251 | "conventional-changelog-conventionalcommits": { |
8986 | "version": "2.3.0", | 9252 | "version": "4.4.0", |
8987 | "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.0.tgz", | 9253 | "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.4.0.tgz", |
8988 | "integrity": "sha512-/rHb32J2EJnEXeK4NpDgMaAVTFZS3o1ExmjKMtYVgIC4MQn0vkNSbYpdGRotkfGGRWiqk3Ri3FBkiZGbAfIfOQ==", | 9254 | "integrity": "sha512-ybvx76jTh08tpaYrYn/yd0uJNLt5yMrb1BphDe4WBredMlvPisvMghfpnJb6RmRNcqXeuhR6LfGZGewbkRm9yA==", |
9255 | "dev": true, | ||
9256 | "requires": { | ||
9257 | "compare-func": "^2.0.0", | ||
9258 | "lodash": "^4.17.15", | ||
9259 | "q": "^1.5.1" | ||
9260 | } | ||
9261 | }, | ||
9262 | "conventional-changelog-core": { | ||
9263 | "version": "4.2.0", | ||
9264 | "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.2.0.tgz", | ||
9265 | "integrity": "sha512-8+xMvN6JvdDtPbGBqA7oRNyZD4od1h/SIzrWqHcKZjitbVXrFpozEeyn4iI4af1UwdrabQpiZMaV07fPUTGd4w==", | ||
9266 | "dev": true, | ||
9267 | "requires": { | ||
9268 | "add-stream": "^1.0.0", | ||
9269 | "conventional-changelog-writer": "^4.0.17", | ||
9270 | "conventional-commits-parser": "^3.1.0", | ||
9271 | "dateformat": "^3.0.0", | ||
9272 | "get-pkg-repo": "^1.0.0", | ||
9273 | "git-raw-commits": "2.0.0", | ||
9274 | "git-remote-origin-url": "^2.0.0", | ||
9275 | "git-semver-tags": "^4.1.0", | ||
9276 | "lodash": "^4.17.15", | ||
9277 | "normalize-package-data": "^2.3.5", | ||
9278 | "q": "^1.5.1", | ||
9279 | "read-pkg": "^3.0.0", | ||
9280 | "read-pkg-up": "^3.0.0", | ||
9281 | "shelljs": "^0.8.3", | ||
9282 | "through2": "^3.0.0" | ||
9283 | } | ||
9284 | }, | ||
9285 | "conventional-changelog-ember": { | ||
9286 | "version": "2.0.8", | ||
9287 | "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.8.tgz", | ||
9288 | "integrity": "sha512-JEMEcUAMg4Q9yxD341OgWlESQ4gLqMWMXIWWUqoQU8yvTJlKnrvcui3wk9JvnZQyONwM2g1MKRZuAjKxr8hAXA==", | ||
9289 | "dev": true, | ||
9290 | "requires": { | ||
9291 | "q": "^1.5.1" | ||
9292 | } | ||
9293 | }, | ||
9294 | "conventional-changelog-jquery": { | ||
9295 | "version": "3.0.10", | ||
9296 | "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.10.tgz", | ||
9297 | "integrity": "sha512-QCW6wF8QgPkq2ruPaxc83jZxoWQxLkt/pNxIDn/oYjMiVgrtqNdd7lWe3vsl0hw5ENHNf/ejXuzDHk6suKsRpg==", | ||
9298 | "dev": true, | ||
9299 | "requires": { | ||
9300 | "q": "^1.5.1" | ||
9301 | } | ||
9302 | }, | ||
9303 | "conventional-changelog-jshint": { | ||
9304 | "version": "2.0.8", | ||
9305 | "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.8.tgz", | ||
9306 | "integrity": "sha512-hB/iI0IiZwnZ+seYI+qEQ4b+EMQSEC8jGIvhO2Vpz1E5p8FgLz75OX8oB1xJWl+s4xBMB6f8zJr0tC/BL7YOjw==", | ||
9307 | "dev": true, | ||
9308 | "requires": { | ||
9309 | "compare-func": "^2.0.0", | ||
9310 | "q": "^1.5.1" | ||
9311 | } | ||
9312 | }, | ||
9313 | "dot-prop": { | ||
9314 | "version": "5.3.0", | ||
9315 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", | ||
9316 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", | ||
9317 | "dev": true, | ||
9318 | "requires": { | ||
9319 | "is-obj": "^2.0.0" | ||
9320 | } | ||
9321 | }, | ||
9322 | "find-up": { | ||
9323 | "version": "4.1.0", | ||
9324 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", | ||
9325 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", | ||
9326 | "dev": true, | ||
9327 | "requires": { | ||
9328 | "locate-path": "^5.0.0", | ||
9329 | "path-exists": "^4.0.0" | ||
9330 | } | ||
9331 | }, | ||
9332 | "git-semver-tags": { | ||
9333 | "version": "4.1.0", | ||
9334 | "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-4.1.0.tgz", | ||
9335 | "integrity": "sha512-TcxAGeo03HdErzKzi4fDD+xEL7gi8r2Y5YSxH6N2XYdVSV5UkBwfrt7Gqo1b+uSHCjy/sa9Y6BBBxxFLxfbhTg==", | ||
9336 | "dev": true, | ||
9337 | "requires": { | ||
9338 | "meow": "^7.0.0", | ||
9339 | "semver": "^6.0.0" | ||
9340 | } | ||
9341 | }, | ||
9342 | "indent-string": { | ||
9343 | "version": "4.0.0", | ||
9344 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", | ||
9345 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", | ||
9346 | "dev": true | ||
9347 | }, | ||
9348 | "is-obj": { | ||
9349 | "version": "2.0.0", | ||
9350 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", | ||
9351 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", | ||
9352 | "dev": true | ||
9353 | }, | ||
9354 | "kind-of": { | ||
9355 | "version": "6.0.3", | ||
9356 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", | ||
9357 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", | ||
9358 | "dev": true | ||
9359 | }, | ||
9360 | "locate-path": { | ||
9361 | "version": "5.0.0", | ||
9362 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", | ||
9363 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", | ||
9364 | "dev": true, | ||
9365 | "requires": { | ||
9366 | "p-locate": "^4.1.0" | ||
9367 | } | ||
9368 | }, | ||
9369 | "map-obj": { | ||
9370 | "version": "4.1.0", | ||
9371 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", | ||
9372 | "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", | ||
9373 | "dev": true | ||
9374 | }, | ||
9375 | "meow": { | ||
9376 | "version": "7.1.1", | ||
9377 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", | ||
9378 | "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", | ||
9379 | "dev": true, | ||
9380 | "requires": { | ||
9381 | "@types/minimist": "^1.2.0", | ||
9382 | "camelcase-keys": "^6.2.2", | ||
9383 | "decamelize-keys": "^1.1.0", | ||
9384 | "hard-rejection": "^2.1.0", | ||
9385 | "minimist-options": "4.1.0", | ||
9386 | "normalize-package-data": "^2.5.0", | ||
9387 | "read-pkg-up": "^7.0.1", | ||
9388 | "redent": "^3.0.0", | ||
9389 | "trim-newlines": "^3.0.0", | ||
9390 | "type-fest": "^0.13.1", | ||
9391 | "yargs-parser": "^18.1.3" | ||
9392 | }, | ||
9393 | "dependencies": { | ||
9394 | "read-pkg": { | ||
9395 | "version": "5.2.0", | ||
9396 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", | ||
9397 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", | ||
9398 | "dev": true, | ||
9399 | "requires": { | ||
9400 | "@types/normalize-package-data": "^2.4.0", | ||
9401 | "normalize-package-data": "^2.5.0", | ||
9402 | "parse-json": "^5.0.0", | ||
9403 | "type-fest": "^0.6.0" | ||
9404 | }, | ||
9405 | "dependencies": { | ||
9406 | "type-fest": { | ||
9407 | "version": "0.6.0", | ||
9408 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", | ||
9409 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", | ||
9410 | "dev": true | ||
9411 | } | ||
9412 | } | ||
9413 | }, | ||
9414 | "read-pkg-up": { | ||
9415 | "version": "7.0.1", | ||
9416 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", | ||
9417 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", | ||
9418 | "dev": true, | ||
9419 | "requires": { | ||
9420 | "find-up": "^4.1.0", | ||
9421 | "read-pkg": "^5.2.0", | ||
9422 | "type-fest": "^0.8.1" | ||
9423 | }, | ||
9424 | "dependencies": { | ||
9425 | "type-fest": { | ||
9426 | "version": "0.8.1", | ||
9427 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | ||
9428 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | ||
9429 | "dev": true | ||
9430 | } | ||
9431 | } | ||
9432 | } | ||
9433 | } | ||
9434 | }, | ||
9435 | "minimist-options": { | ||
9436 | "version": "4.1.0", | ||
9437 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", | ||
9438 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", | ||
9439 | "dev": true, | ||
9440 | "requires": { | ||
9441 | "arrify": "^1.0.1", | ||
9442 | "is-plain-obj": "^1.1.0", | ||
9443 | "kind-of": "^6.0.3" | ||
9444 | } | ||
9445 | }, | ||
9446 | "p-locate": { | ||
9447 | "version": "4.1.0", | ||
9448 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", | ||
9449 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", | ||
9450 | "dev": true, | ||
9451 | "requires": { | ||
9452 | "p-limit": "^2.2.0" | ||
9453 | } | ||
9454 | }, | ||
9455 | "parse-json": { | ||
9456 | "version": "5.1.0", | ||
9457 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", | ||
9458 | "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", | ||
9459 | "dev": true, | ||
9460 | "requires": { | ||
9461 | "@babel/code-frame": "^7.0.0", | ||
9462 | "error-ex": "^1.3.1", | ||
9463 | "json-parse-even-better-errors": "^2.3.0", | ||
9464 | "lines-and-columns": "^1.1.6" | ||
9465 | } | ||
9466 | }, | ||
9467 | "path-exists": { | ||
9468 | "version": "4.0.0", | ||
9469 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||
9470 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", | ||
9471 | "dev": true | ||
9472 | }, | ||
9473 | "quick-lru": { | ||
9474 | "version": "4.0.1", | ||
9475 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", | ||
9476 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", | ||
9477 | "dev": true | ||
9478 | }, | ||
9479 | "read-pkg": { | ||
9480 | "version": "3.0.0", | ||
9481 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", | ||
9482 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", | ||
9483 | "dev": true, | ||
9484 | "requires": { | ||
9485 | "load-json-file": "^4.0.0", | ||
9486 | "normalize-package-data": "^2.3.2", | ||
9487 | "path-type": "^3.0.0" | ||
9488 | } | ||
9489 | }, | ||
9490 | "redent": { | ||
9491 | "version": "3.0.0", | ||
9492 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", | ||
9493 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", | ||
9494 | "dev": true, | ||
9495 | "requires": { | ||
9496 | "indent-string": "^4.0.0", | ||
9497 | "strip-indent": "^3.0.0" | ||
9498 | } | ||
9499 | }, | ||
9500 | "semver": { | ||
9501 | "version": "6.3.0", | ||
9502 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | ||
9503 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | ||
8989 | "dev": true | 9504 | "dev": true |
9505 | }, | ||
9506 | "strip-indent": { | ||
9507 | "version": "3.0.0", | ||
9508 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", | ||
9509 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", | ||
9510 | "dev": true, | ||
9511 | "requires": { | ||
9512 | "min-indent": "^1.0.0" | ||
9513 | } | ||
9514 | }, | ||
9515 | "trim-newlines": { | ||
9516 | "version": "3.0.0", | ||
9517 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", | ||
9518 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", | ||
9519 | "dev": true | ||
9520 | }, | ||
9521 | "type-fest": { | ||
9522 | "version": "0.13.1", | ||
9523 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", | ||
9524 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", | ||
9525 | "dev": true | ||
9526 | }, | ||
9527 | "yargs-parser": { | ||
9528 | "version": "18.1.3", | ||
9529 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", | ||
9530 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", | ||
9531 | "dev": true, | ||
9532 | "requires": { | ||
9533 | "camelcase": "^5.0.0", | ||
9534 | "decamelize": "^1.2.0" | ||
9535 | } | ||
8990 | } | 9536 | } |
8991 | } | 9537 | } |
8992 | }, | 9538 | }, |
8993 | "conventional-changelog-angular": { | 9539 | "conventional-changelog-angular": { |
8994 | "version": "5.0.3", | 9540 | "version": "5.0.11", |
8995 | "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.3.tgz", | 9541 | "resolved": "https://registry.npmjs.org/conventional-changelog-angular/-/conventional-changelog-angular-5.0.11.tgz", |
8996 | "integrity": "sha512-YD1xzH7r9yXQte/HF9JBuEDfvjxxwDGGwZU1+ndanbY0oFgA+Po1T9JDSpPLdP0pZT6MhCAsdvFKC4TJ4MTJTA==", | 9542 | "integrity": "sha512-nSLypht/1yEflhuTogC03i7DX7sOrXGsRn14g131Potqi6cbGbGEE9PSDEHKldabB6N76HiSyw9Ph+kLmC04Qw==", |
8997 | "dev": true, | 9543 | "dev": true, |
8998 | "requires": { | 9544 | "requires": { |
8999 | "compare-func": "^1.3.1", | 9545 | "compare-func": "^2.0.0", |
9000 | "q": "^1.5.1" | 9546 | "q": "^1.5.1" |
9547 | }, | ||
9548 | "dependencies": { | ||
9549 | "compare-func": { | ||
9550 | "version": "2.0.0", | ||
9551 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", | ||
9552 | "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", | ||
9553 | "dev": true, | ||
9554 | "requires": { | ||
9555 | "array-ify": "^1.0.0", | ||
9556 | "dot-prop": "^5.1.0" | ||
9557 | } | ||
9558 | }, | ||
9559 | "dot-prop": { | ||
9560 | "version": "5.3.0", | ||
9561 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", | ||
9562 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", | ||
9563 | "dev": true, | ||
9564 | "requires": { | ||
9565 | "is-obj": "^2.0.0" | ||
9566 | } | ||
9567 | }, | ||
9568 | "is-obj": { | ||
9569 | "version": "2.0.0", | ||
9570 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", | ||
9571 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", | ||
9572 | "dev": true | ||
9573 | } | ||
9001 | } | 9574 | } |
9002 | }, | 9575 | }, |
9003 | "conventional-changelog-atom": { | 9576 | "conventional-changelog-atom": { |
9004 | "version": "2.0.3", | 9577 | "version": "2.0.7", |
9005 | "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.3.tgz", | 9578 | "resolved": "https://registry.npmjs.org/conventional-changelog-atom/-/conventional-changelog-atom-2.0.7.tgz", |
9006 | "integrity": "sha512-szZe2ut97qNO6vCCMkm1I/tWu6ol4Rr8a9Lx0y/VlpDnpY0PNp+oGpFgU55lplhx+I3Lro9Iv4/gRj0knfgjzg==", | 9579 | "integrity": "sha512-7dOREZwzB+tCEMjRTDfen0OHwd7vPUdmU0llTy1eloZgtOP4iSLVzYIQqfmdRZEty+3w5Jz+AbhfTJKoKw1JeQ==", |
9007 | "dev": true, | 9580 | "dev": true, |
9008 | "requires": { | 9581 | "requires": { |
9009 | "q": "^1.5.1" | 9582 | "q": "^1.5.1" |
@@ -9056,133 +9629,250 @@ | |||
9056 | } | 9629 | } |
9057 | } | 9630 | } |
9058 | }, | 9631 | }, |
9059 | "conventional-changelog-codemirror": { | 9632 | "conventional-changelog-eslint": { |
9060 | "version": "2.0.3", | 9633 | "version": "3.0.8", |
9061 | "resolved": "https://registry.npmjs.org/conventional-changelog-codemirror/-/conventional-changelog-codemirror-2.0.3.tgz", | 9634 | "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.8.tgz", |
9062 | "integrity": "sha512-t2afackdgFV2yBdHhWPqrKbpaQeVnz2hSJKdWqjasPo5EpIB6TBL0er3cOP1mnGQmuzk9JSvimNSuqjWGDtU5Q==", | 9635 | "integrity": "sha512-5rTRltgWG7TpU1PqgKHMA/2ivjhrB+E+S7OCTvj0zM/QGg4vmnVH67Vq/EzvSNYtejhWC+OwzvDrLk3tqPry8A==", |
9063 | "dev": true, | 9636 | "dev": true, |
9064 | "requires": { | 9637 | "requires": { |
9065 | "q": "^1.5.1" | 9638 | "q": "^1.5.1" |
9066 | } | 9639 | } |
9067 | }, | 9640 | }, |
9068 | "conventional-changelog-conventionalcommits": { | 9641 | "conventional-changelog-express": { |
9069 | "version": "4.2.3", | 9642 | "version": "2.0.5", |
9070 | "resolved": "https://registry.npmjs.org/conventional-changelog-conventionalcommits/-/conventional-changelog-conventionalcommits-4.2.3.tgz", | 9643 | "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.5.tgz", |
9071 | "integrity": "sha512-atGa+R4vvEhb8N/8v3IoW59gCBJeeFiX6uIbPu876ENAmkMwsenyn0R21kdDHJFLQdy6zW4J6b4xN8KI3b9oww==", | 9644 | "integrity": "sha512-pW2hsjKG+xNx/Qjof8wYlAX/P61hT5gQ/2rZ2NsTpG+PgV7Rc8RCfITvC/zN9K8fj0QmV6dWmUefCteD9baEAw==", |
9072 | "dev": true, | 9645 | "dev": true, |
9073 | "requires": { | 9646 | "requires": { |
9074 | "compare-func": "^1.3.1", | ||
9075 | "lodash": "^4.17.15", | ||
9076 | "q": "^1.5.1" | 9647 | "q": "^1.5.1" |
9077 | } | 9648 | } |
9078 | }, | 9649 | }, |
9079 | "conventional-changelog-core": { | 9650 | "conventional-changelog-preset-loader": { |
9080 | "version": "4.1.1", | 9651 | "version": "2.3.4", |
9081 | "resolved": "https://registry.npmjs.org/conventional-changelog-core/-/conventional-changelog-core-4.1.1.tgz", | 9652 | "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.3.4.tgz", |
9082 | "integrity": "sha512-fBre5P6U9n914Da6Cj82vIfRU2DhTLGr1eDPXWA7AamxTpd4cd0jgdS7Aieas5Vn5WXOJNFRDNl6PrYLEonImg==", | 9653 | "integrity": "sha512-GEKRWkrSAZeTq5+YjUZOYxdHq+ci4dNwHvpaBC3+ENalzFWuCWa9EZXSuZBpkr72sMdKB+1fyDV4takK1Lf58g==", |
9654 | "dev": true | ||
9655 | }, | ||
9656 | "conventional-changelog-writer": { | ||
9657 | "version": "4.0.17", | ||
9658 | "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.17.tgz", | ||
9659 | "integrity": "sha512-IKQuK3bib/n032KWaSb8YlBFds+aLmzENtnKtxJy3+HqDq5kohu3g/UdNbIHeJWygfnEbZjnCKFxAW0y7ArZAw==", | ||
9083 | "dev": true, | 9660 | "dev": true, |
9084 | "requires": { | 9661 | "requires": { |
9085 | "conventional-changelog-writer": "^4.0.11", | 9662 | "compare-func": "^2.0.0", |
9086 | "conventional-commits-parser": "^3.0.8", | 9663 | "conventional-commits-filter": "^2.0.6", |
9087 | "dateformat": "^3.0.0", | 9664 | "dateformat": "^3.0.0", |
9088 | "get-pkg-repo": "^1.0.0", | 9665 | "handlebars": "^4.7.6", |
9089 | "git-raw-commits": "2.0.0", | 9666 | "json-stringify-safe": "^5.0.1", |
9090 | "git-remote-origin-url": "^2.0.0", | ||
9091 | "git-semver-tags": "^3.0.1", | ||
9092 | "lodash": "^4.17.15", | 9667 | "lodash": "^4.17.15", |
9093 | "normalize-package-data": "^2.3.5", | 9668 | "meow": "^7.0.0", |
9094 | "q": "^1.5.1", | 9669 | "semver": "^6.0.0", |
9095 | "read-pkg": "^3.0.0", | 9670 | "split": "^1.0.0", |
9096 | "read-pkg-up": "^3.0.0", | ||
9097 | "through2": "^3.0.0" | 9671 | "through2": "^3.0.0" |
9098 | }, | 9672 | }, |
9099 | "dependencies": { | 9673 | "dependencies": { |
9100 | "camelcase": { | 9674 | "camelcase-keys": { |
9101 | "version": "4.1.0", | 9675 | "version": "6.2.2", |
9102 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", | 9676 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", |
9103 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", | 9677 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", |
9104 | "dev": true | 9678 | "dev": true, |
9679 | "requires": { | ||
9680 | "camelcase": "^5.3.1", | ||
9681 | "map-obj": "^4.0.0", | ||
9682 | "quick-lru": "^4.0.1" | ||
9683 | } | ||
9105 | }, | 9684 | }, |
9106 | "conventional-changelog-writer": { | 9685 | "compare-func": { |
9107 | "version": "4.0.11", | 9686 | "version": "2.0.0", |
9108 | "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.11.tgz", | 9687 | "resolved": "https://registry.npmjs.org/compare-func/-/compare-func-2.0.0.tgz", |
9109 | "integrity": "sha512-g81GQOR392I+57Cw3IyP1f+f42ME6aEkbR+L7v1FBBWolB0xkjKTeCWVguzRrp6UiT1O6gBpJbEy2eq7AnV1rw==", | 9688 | "integrity": "sha512-zHig5N+tPWARooBnb0Zx1MFcdfpyJrfTJ3Y5L+IFvUm8rM74hHz66z0gw0x4tijh5CorKkKUCnW82R2vmpeCRA==", |
9110 | "dev": true, | 9689 | "dev": true, |
9111 | "requires": { | 9690 | "requires": { |
9112 | "compare-func": "^1.3.1", | 9691 | "array-ify": "^1.0.0", |
9113 | "conventional-commits-filter": "^2.0.2", | 9692 | "dot-prop": "^5.1.0" |
9114 | "dateformat": "^3.0.0", | 9693 | } |
9115 | "handlebars": "^4.4.0", | 9694 | }, |
9116 | "json-stringify-safe": "^5.0.1", | 9695 | "dot-prop": { |
9117 | "lodash": "^4.17.15", | 9696 | "version": "5.3.0", |
9118 | "meow": "^5.0.0", | 9697 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-5.3.0.tgz", |
9119 | "semver": "^6.0.0", | 9698 | "integrity": "sha512-QM8q3zDe58hqUqjraQOmzZ1LIH9SWQJTlEKCH4kJ2oQvLZk7RbQXvtDM2XEq3fwkV9CCvvH4LA0AV+ogFsBM2Q==", |
9120 | "split": "^1.0.0", | 9699 | "dev": true, |
9121 | "through2": "^3.0.0" | 9700 | "requires": { |
9701 | "is-obj": "^2.0.0" | ||
9122 | } | 9702 | } |
9123 | }, | 9703 | }, |
9124 | "conventional-commits-parser": { | 9704 | "find-up": { |
9125 | "version": "3.0.8", | 9705 | "version": "4.1.0", |
9126 | "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.8.tgz", | 9706 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", |
9127 | "integrity": "sha512-YcBSGkZbYp7d+Cr3NWUeXbPDFUN6g3SaSIzOybi8bjHL5IJ5225OSCxJJ4LgziyEJ7AaJtE9L2/EU6H7Nt/DDQ==", | 9707 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", |
9128 | "dev": true, | 9708 | "dev": true, |
9129 | "requires": { | 9709 | "requires": { |
9130 | "JSONStream": "^1.0.4", | 9710 | "locate-path": "^5.0.0", |
9131 | "is-text-path": "^1.0.1", | 9711 | "path-exists": "^4.0.0" |
9132 | "lodash": "^4.17.15", | ||
9133 | "meow": "^5.0.0", | ||
9134 | "split2": "^2.0.0", | ||
9135 | "through2": "^3.0.0", | ||
9136 | "trim-off-newlines": "^1.0.0" | ||
9137 | } | 9712 | } |
9138 | }, | 9713 | }, |
9139 | "handlebars": { | 9714 | "handlebars": { |
9140 | "version": "4.5.3", | 9715 | "version": "4.7.6", |
9141 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.5.3.tgz", | 9716 | "resolved": "https://registry.npmjs.org/handlebars/-/handlebars-4.7.6.tgz", |
9142 | "integrity": "sha512-3yPecJoJHK/4c6aZhSvxOyG4vJKDshV36VHp0iVCDVh7o9w2vwi3NSnL2MMPj3YdduqaBcu7cGbggJQM0br9xA==", | 9717 | "integrity": "sha512-1f2BACcBfiwAfStCKZNrUCgqNZkGsAT7UM3kkYtXuLo0KnaVfjKOyf7PRzB6++aK9STyT1Pd2ZCPe3EGOXleXA==", |
9143 | "dev": true, | 9718 | "dev": true, |
9144 | "requires": { | 9719 | "requires": { |
9720 | "minimist": "^1.2.5", | ||
9145 | "neo-async": "^2.6.0", | 9721 | "neo-async": "^2.6.0", |
9146 | "optimist": "^0.6.1", | ||
9147 | "source-map": "^0.6.1", | 9722 | "source-map": "^0.6.1", |
9148 | "uglify-js": "^3.1.4" | 9723 | "uglify-js": "^3.1.4", |
9724 | "wordwrap": "^1.0.0" | ||
9149 | } | 9725 | } |
9150 | }, | 9726 | }, |
9151 | "is-text-path": { | 9727 | "indent-string": { |
9152 | "version": "1.0.1", | 9728 | "version": "4.0.0", |
9153 | "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", | 9729 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", |
9154 | "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", | 9730 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", |
9731 | "dev": true | ||
9732 | }, | ||
9733 | "is-obj": { | ||
9734 | "version": "2.0.0", | ||
9735 | "resolved": "https://registry.npmjs.org/is-obj/-/is-obj-2.0.0.tgz", | ||
9736 | "integrity": "sha512-drqDG3cbczxxEJRoOXcOjtdp1J/lyp1mNn0xaznRs8+muBhgQcrnbspox5X5fOw0HnMnbfDzvnEMEtqDEJEo8w==", | ||
9737 | "dev": true | ||
9738 | }, | ||
9739 | "kind-of": { | ||
9740 | "version": "6.0.3", | ||
9741 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", | ||
9742 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", | ||
9743 | "dev": true | ||
9744 | }, | ||
9745 | "locate-path": { | ||
9746 | "version": "5.0.0", | ||
9747 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", | ||
9748 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", | ||
9155 | "dev": true, | 9749 | "dev": true, |
9156 | "requires": { | 9750 | "requires": { |
9157 | "text-extensions": "^1.0.0" | 9751 | "p-locate": "^4.1.0" |
9158 | } | 9752 | } |
9159 | }, | 9753 | }, |
9754 | "map-obj": { | ||
9755 | "version": "4.1.0", | ||
9756 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", | ||
9757 | "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", | ||
9758 | "dev": true | ||
9759 | }, | ||
9160 | "meow": { | 9760 | "meow": { |
9161 | "version": "5.0.0", | 9761 | "version": "7.1.1", |
9162 | "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", | 9762 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", |
9163 | "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", | 9763 | "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", |
9164 | "dev": true, | 9764 | "dev": true, |
9165 | "requires": { | 9765 | "requires": { |
9166 | "camelcase-keys": "^4.0.0", | 9766 | "@types/minimist": "^1.2.0", |
9167 | "decamelize-keys": "^1.0.0", | 9767 | "camelcase-keys": "^6.2.2", |
9168 | "loud-rejection": "^1.0.0", | 9768 | "decamelize-keys": "^1.1.0", |
9169 | "minimist-options": "^3.0.1", | 9769 | "hard-rejection": "^2.1.0", |
9170 | "normalize-package-data": "^2.3.4", | 9770 | "minimist-options": "4.1.0", |
9171 | "read-pkg-up": "^3.0.0", | 9771 | "normalize-package-data": "^2.5.0", |
9172 | "redent": "^2.0.0", | 9772 | "read-pkg-up": "^7.0.1", |
9173 | "trim-newlines": "^2.0.0", | 9773 | "redent": "^3.0.0", |
9174 | "yargs-parser": "^10.0.0" | 9774 | "trim-newlines": "^3.0.0", |
9775 | "type-fest": "^0.13.1", | ||
9776 | "yargs-parser": "^18.1.3" | ||
9175 | } | 9777 | } |
9176 | }, | 9778 | }, |
9779 | "minimist": { | ||
9780 | "version": "1.2.5", | ||
9781 | "resolved": "https://registry.npmjs.org/minimist/-/minimist-1.2.5.tgz", | ||
9782 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | ||
9783 | "dev": true | ||
9784 | }, | ||
9785 | "minimist-options": { | ||
9786 | "version": "4.1.0", | ||
9787 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", | ||
9788 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", | ||
9789 | "dev": true, | ||
9790 | "requires": { | ||
9791 | "arrify": "^1.0.1", | ||
9792 | "is-plain-obj": "^1.1.0", | ||
9793 | "kind-of": "^6.0.3" | ||
9794 | } | ||
9795 | }, | ||
9796 | "p-locate": { | ||
9797 | "version": "4.1.0", | ||
9798 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", | ||
9799 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", | ||
9800 | "dev": true, | ||
9801 | "requires": { | ||
9802 | "p-limit": "^2.2.0" | ||
9803 | } | ||
9804 | }, | ||
9805 | "parse-json": { | ||
9806 | "version": "5.1.0", | ||
9807 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", | ||
9808 | "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", | ||
9809 | "dev": true, | ||
9810 | "requires": { | ||
9811 | "@babel/code-frame": "^7.0.0", | ||
9812 | "error-ex": "^1.3.1", | ||
9813 | "json-parse-even-better-errors": "^2.3.0", | ||
9814 | "lines-and-columns": "^1.1.6" | ||
9815 | } | ||
9816 | }, | ||
9817 | "path-exists": { | ||
9818 | "version": "4.0.0", | ||
9819 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||
9820 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", | ||
9821 | "dev": true | ||
9822 | }, | ||
9823 | "quick-lru": { | ||
9824 | "version": "4.0.1", | ||
9825 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", | ||
9826 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", | ||
9827 | "dev": true | ||
9828 | }, | ||
9177 | "read-pkg": { | 9829 | "read-pkg": { |
9830 | "version": "5.2.0", | ||
9831 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", | ||
9832 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", | ||
9833 | "dev": true, | ||
9834 | "requires": { | ||
9835 | "@types/normalize-package-data": "^2.4.0", | ||
9836 | "normalize-package-data": "^2.5.0", | ||
9837 | "parse-json": "^5.0.0", | ||
9838 | "type-fest": "^0.6.0" | ||
9839 | }, | ||
9840 | "dependencies": { | ||
9841 | "type-fest": { | ||
9842 | "version": "0.6.0", | ||
9843 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", | ||
9844 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", | ||
9845 | "dev": true | ||
9846 | } | ||
9847 | } | ||
9848 | }, | ||
9849 | "read-pkg-up": { | ||
9850 | "version": "7.0.1", | ||
9851 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", | ||
9852 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", | ||
9853 | "dev": true, | ||
9854 | "requires": { | ||
9855 | "find-up": "^4.1.0", | ||
9856 | "read-pkg": "^5.2.0", | ||
9857 | "type-fest": "^0.8.1" | ||
9858 | }, | ||
9859 | "dependencies": { | ||
9860 | "type-fest": { | ||
9861 | "version": "0.8.1", | ||
9862 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | ||
9863 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | ||
9864 | "dev": true | ||
9865 | } | ||
9866 | } | ||
9867 | }, | ||
9868 | "redent": { | ||
9178 | "version": "3.0.0", | 9869 | "version": "3.0.0", |
9179 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-3.0.0.tgz", | 9870 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", |
9180 | "integrity": "sha1-nLxoaXj+5l0WwA4rGcI3/Pbjg4k=", | 9871 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", |
9181 | "dev": true, | 9872 | "dev": true, |
9182 | "requires": { | 9873 | "requires": { |
9183 | "load-json-file": "^4.0.0", | 9874 | "indent-string": "^4.0.0", |
9184 | "normalize-package-data": "^2.3.2", | 9875 | "strip-indent": "^3.0.0" |
9185 | "path-type": "^3.0.0" | ||
9186 | } | 9876 | } |
9187 | }, | 9877 | }, |
9188 | "semver": { | 9878 | "semver": { |
@@ -9191,111 +9881,55 @@ | |||
9191 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | 9881 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", |
9192 | "dev": true | 9882 | "dev": true |
9193 | }, | 9883 | }, |
9194 | "text-extensions": { | 9884 | "strip-indent": { |
9195 | "version": "1.9.0", | 9885 | "version": "3.0.0", |
9196 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", | 9886 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", |
9197 | "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", | 9887 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", |
9888 | "dev": true, | ||
9889 | "requires": { | ||
9890 | "min-indent": "^1.0.0" | ||
9891 | } | ||
9892 | }, | ||
9893 | "trim-newlines": { | ||
9894 | "version": "3.0.0", | ||
9895 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", | ||
9896 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", | ||
9897 | "dev": true | ||
9898 | }, | ||
9899 | "type-fest": { | ||
9900 | "version": "0.13.1", | ||
9901 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", | ||
9902 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", | ||
9903 | "dev": true | ||
9904 | }, | ||
9905 | "wordwrap": { | ||
9906 | "version": "1.0.0", | ||
9907 | "resolved": "https://registry.npmjs.org/wordwrap/-/wordwrap-1.0.0.tgz", | ||
9908 | "integrity": "sha1-J1hIEIkUVqQXHI0CJkQa3pDLyus=", | ||
9198 | "dev": true | 9909 | "dev": true |
9199 | }, | 9910 | }, |
9200 | "yargs-parser": { | 9911 | "yargs-parser": { |
9201 | "version": "10.1.0", | 9912 | "version": "18.1.3", |
9202 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", | 9913 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", |
9203 | "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", | 9914 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", |
9204 | "dev": true, | 9915 | "dev": true, |
9205 | "requires": { | 9916 | "requires": { |
9206 | "camelcase": "^4.1.0" | 9917 | "camelcase": "^5.0.0", |
9918 | "decamelize": "^1.2.0" | ||
9207 | } | 9919 | } |
9208 | } | 9920 | } |
9209 | } | 9921 | } |
9210 | }, | 9922 | }, |
9211 | "conventional-changelog-ember": { | ||
9212 | "version": "2.0.4", | ||
9213 | "resolved": "https://registry.npmjs.org/conventional-changelog-ember/-/conventional-changelog-ember-2.0.4.tgz", | ||
9214 | "integrity": "sha512-q1u73sO9uCnxN4TSw8xu6MRU8Y1h9kpwtcdJuNRwu/LSKI1IE/iuNSH5eQ6aLlQ3HTyrIpTfUuVybW4W0F17rA==", | ||
9215 | "dev": true, | ||
9216 | "requires": { | ||
9217 | "q": "^1.5.1" | ||
9218 | } | ||
9219 | }, | ||
9220 | "conventional-changelog-eslint": { | ||
9221 | "version": "3.0.4", | ||
9222 | "resolved": "https://registry.npmjs.org/conventional-changelog-eslint/-/conventional-changelog-eslint-3.0.4.tgz", | ||
9223 | "integrity": "sha512-CPwTUENzhLGl3auunrJxiIEWncAGaby7gOFCdj2gslIuOFJ0KPJVOUhRz4Da/I53sdo/7UncUJkiLg94jEsjxg==", | ||
9224 | "dev": true, | ||
9225 | "requires": { | ||
9226 | "q": "^1.5.1" | ||
9227 | } | ||
9228 | }, | ||
9229 | "conventional-changelog-express": { | ||
9230 | "version": "2.0.1", | ||
9231 | "resolved": "https://registry.npmjs.org/conventional-changelog-express/-/conventional-changelog-express-2.0.1.tgz", | ||
9232 | "integrity": "sha512-G6uCuCaQhLxdb4eEfAIHpcfcJ2+ao3hJkbLrw/jSK/eROeNfnxCJasaWdDAfFkxsbpzvQT4W01iSynU3OoPLIw==", | ||
9233 | "dev": true, | ||
9234 | "requires": { | ||
9235 | "q": "^1.5.1" | ||
9236 | } | ||
9237 | }, | ||
9238 | "conventional-changelog-jquery": { | ||
9239 | "version": "3.0.6", | ||
9240 | "resolved": "https://registry.npmjs.org/conventional-changelog-jquery/-/conventional-changelog-jquery-3.0.6.tgz", | ||
9241 | "integrity": "sha512-gHAABCXUNA/HjnZEm+vxAfFPJkgtrZvCDIlCKfdPVXtCIo/Q0lN5VKpx8aR5p8KdVRQFF3OuTlvv5kv6iPuRqA==", | ||
9242 | "dev": true, | ||
9243 | "requires": { | ||
9244 | "q": "^1.5.1" | ||
9245 | } | ||
9246 | }, | ||
9247 | "conventional-changelog-jshint": { | ||
9248 | "version": "2.0.3", | ||
9249 | "resolved": "https://registry.npmjs.org/conventional-changelog-jshint/-/conventional-changelog-jshint-2.0.3.tgz", | ||
9250 | "integrity": "sha512-Pc2PnMPcez634ckzr4EOWviwRSpZcURaK7bjyD9oK6N5fsC/a+3G7LW5m/JpcHPhA9ZxsfIbm7uqZ3ZDGsQ/sw==", | ||
9251 | "dev": true, | ||
9252 | "requires": { | ||
9253 | "compare-func": "^1.3.1", | ||
9254 | "q": "^1.5.1" | ||
9255 | } | ||
9256 | }, | ||
9257 | "conventional-changelog-preset-loader": { | ||
9258 | "version": "2.2.0", | ||
9259 | "resolved": "https://registry.npmjs.org/conventional-changelog-preset-loader/-/conventional-changelog-preset-loader-2.2.0.tgz", | ||
9260 | "integrity": "sha512-zXB+5vF7D5Y3Cb/rJfSyCCvFphCVmF8mFqOdncX3BmjZwAtGAPfYrBcT225udilCKvBbHgyzgxqz2GWDB5xShQ==", | ||
9261 | "dev": true | ||
9262 | }, | ||
9263 | "conventional-changelog-writer": { | ||
9264 | "version": "4.0.7", | ||
9265 | "resolved": "https://registry.npmjs.org/conventional-changelog-writer/-/conventional-changelog-writer-4.0.7.tgz", | ||
9266 | "integrity": "sha512-p/wzs9eYaxhFbrmX/mCJNwJuvvHR+j4Fd0SQa2xyAhYed6KBiZ780LvoqUUvsayP4R1DtC27czalGUhKV2oabw==", | ||
9267 | "dev": true, | ||
9268 | "requires": { | ||
9269 | "compare-func": "^1.3.1", | ||
9270 | "conventional-commits-filter": "^2.0.2", | ||
9271 | "dateformat": "^3.0.0", | ||
9272 | "handlebars": "^4.1.2", | ||
9273 | "json-stringify-safe": "^5.0.1", | ||
9274 | "lodash": "^4.2.1", | ||
9275 | "meow": "^4.0.0", | ||
9276 | "semver": "^6.0.0", | ||
9277 | "split": "^1.0.0", | ||
9278 | "through2": "^3.0.0" | ||
9279 | }, | ||
9280 | "dependencies": { | ||
9281 | "semver": { | ||
9282 | "version": "6.3.0", | ||
9283 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | ||
9284 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | ||
9285 | "dev": true | ||
9286 | } | ||
9287 | } | ||
9288 | }, | ||
9289 | "conventional-commit-types": { | 9923 | "conventional-commit-types": { |
9290 | "version": "2.1.1", | 9924 | "version": "2.3.0", |
9291 | "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.1.1.tgz", | 9925 | "resolved": "https://registry.npmjs.org/conventional-commit-types/-/conventional-commit-types-2.3.0.tgz", |
9292 | "integrity": "sha512-0Ts+fEdmjqYDOQ1yZ+LNgdSPO335XZw9qC10M7CxtLP3nIMGmeMhmkM8Taffa4+MXN13bRPlp0CtH+QfOzKTzw==", | 9926 | "integrity": "sha512-6iB39PrcGYdz0n3z31kj6/Km6mK9hm9oMRhwcLnKxE7WNoeRKZbTAobliKrbYZ5jqyCvtcVEfjCiaEzhL3AVmQ==", |
9293 | "dev": true | 9927 | "dev": true |
9294 | }, | 9928 | }, |
9295 | "conventional-commits-filter": { | 9929 | "conventional-commits-filter": { |
9296 | "version": "2.0.2", | 9930 | "version": "2.0.6", |
9297 | "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.2.tgz", | 9931 | "resolved": "https://registry.npmjs.org/conventional-commits-filter/-/conventional-commits-filter-2.0.6.tgz", |
9298 | "integrity": "sha512-WpGKsMeXfs21m1zIw4s9H5sys2+9JccTzpN6toXtxhpw2VNF2JUXwIakthKBy+LN4DvJm+TzWhxOMWOs1OFCFQ==", | 9932 | "integrity": "sha512-4g+sw8+KA50/Qwzfr0hL5k5NWxqtrOVw4DDk3/h6L85a9Gz0/Eqp3oP+CWCNfesBvZZZEFHF7OTEbRe+yYSyKw==", |
9299 | "dev": true, | 9933 | "dev": true, |
9300 | "requires": { | 9934 | "requires": { |
9301 | "lodash.ismatch": "^4.4.0", | 9935 | "lodash.ismatch": "^4.4.0", |
@@ -9303,18 +9937,226 @@ | |||
9303 | } | 9937 | } |
9304 | }, | 9938 | }, |
9305 | "conventional-commits-parser": { | 9939 | "conventional-commits-parser": { |
9306 | "version": "3.0.3", | 9940 | "version": "3.1.0", |
9307 | "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.0.3.tgz", | 9941 | "resolved": "https://registry.npmjs.org/conventional-commits-parser/-/conventional-commits-parser-3.1.0.tgz", |
9308 | "integrity": "sha512-KaA/2EeUkO4bKjinNfGUyqPTX/6w9JGshuQRik4r/wJz7rUw3+D3fDG6sZSEqJvKILzKXFQuFkpPLclcsAuZcg==", | 9942 | "integrity": "sha512-RSo5S0WIwXZiRxUGTPuYFbqvrR4vpJ1BDdTlthFgvHt5kEdnd1+pdvwWphWn57/oIl4V72NMmOocFqqJ8mFFhA==", |
9309 | "dev": true, | 9943 | "dev": true, |
9310 | "requires": { | 9944 | "requires": { |
9311 | "JSONStream": "^1.0.4", | 9945 | "JSONStream": "^1.0.4", |
9312 | "is-text-path": "^2.0.0", | 9946 | "is-text-path": "^1.0.1", |
9313 | "lodash": "^4.2.1", | 9947 | "lodash": "^4.17.15", |
9314 | "meow": "^4.0.0", | 9948 | "meow": "^7.0.0", |
9315 | "split2": "^2.0.0", | 9949 | "split2": "^2.0.0", |
9316 | "through2": "^3.0.0", | 9950 | "through2": "^3.0.0", |
9317 | "trim-off-newlines": "^1.0.0" | 9951 | "trim-off-newlines": "^1.0.0" |
9952 | }, | ||
9953 | "dependencies": { | ||
9954 | "camelcase-keys": { | ||
9955 | "version": "6.2.2", | ||
9956 | "resolved": "https://registry.npmjs.org/camelcase-keys/-/camelcase-keys-6.2.2.tgz", | ||
9957 | "integrity": "sha512-YrwaA0vEKazPBkn0ipTiMpSajYDSe+KjQfrjhcBMxJt/znbvlHd8Pw/Vamaz5EB4Wfhs3SUR3Z9mwRu/P3s3Yg==", | ||
9958 | "dev": true, | ||
9959 | "requires": { | ||
9960 | "camelcase": "^5.3.1", | ||
9961 | "map-obj": "^4.0.0", | ||
9962 | "quick-lru": "^4.0.1" | ||
9963 | } | ||
9964 | }, | ||
9965 | "find-up": { | ||
9966 | "version": "4.1.0", | ||
9967 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-4.1.0.tgz", | ||
9968 | "integrity": "sha512-PpOwAdQ/YlXQ2vj8a3h8IipDuYRi3wceVQQGYWxNINccq40Anw7BlsEXCMbt1Zt+OLA6Fq9suIpIWD0OsnISlw==", | ||
9969 | "dev": true, | ||
9970 | "requires": { | ||
9971 | "locate-path": "^5.0.0", | ||
9972 | "path-exists": "^4.0.0" | ||
9973 | } | ||
9974 | }, | ||
9975 | "indent-string": { | ||
9976 | "version": "4.0.0", | ||
9977 | "resolved": "https://registry.npmjs.org/indent-string/-/indent-string-4.0.0.tgz", | ||
9978 | "integrity": "sha512-EdDDZu4A2OyIK7Lr/2zG+w5jmbuk1DVBnEwREQvBzspBJkCEbRa8GxU1lghYcaGJCnRWibjDXlq779X1/y5xwg==", | ||
9979 | "dev": true | ||
9980 | }, | ||
9981 | "is-text-path": { | ||
9982 | "version": "1.0.1", | ||
9983 | "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-1.0.1.tgz", | ||
9984 | "integrity": "sha1-Thqg+1G/vLPpJogAE5cgLBd1tm4=", | ||
9985 | "dev": true, | ||
9986 | "requires": { | ||
9987 | "text-extensions": "^1.0.0" | ||
9988 | } | ||
9989 | }, | ||
9990 | "kind-of": { | ||
9991 | "version": "6.0.3", | ||
9992 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", | ||
9993 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==", | ||
9994 | "dev": true | ||
9995 | }, | ||
9996 | "locate-path": { | ||
9997 | "version": "5.0.0", | ||
9998 | "resolved": "https://registry.npmjs.org/locate-path/-/locate-path-5.0.0.tgz", | ||
9999 | "integrity": "sha512-t7hw9pI+WvuwNJXwk5zVHpyhIqzg2qTlklJOf0mVxGSbe3Fp2VieZcduNYjaLDoy6p9uGpQEGWG87WpMKlNq8g==", | ||
10000 | "dev": true, | ||
10001 | "requires": { | ||
10002 | "p-locate": "^4.1.0" | ||
10003 | } | ||
10004 | }, | ||
10005 | "map-obj": { | ||
10006 | "version": "4.1.0", | ||
10007 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-4.1.0.tgz", | ||
10008 | "integrity": "sha512-glc9y00wgtwcDmp7GaE/0b0OnxpNJsVf3ael/An6Fe2Q51LLwN1er6sdomLRzz5h0+yMpiYLhWYF5R7HeqVd4g==", | ||
10009 | "dev": true | ||
10010 | }, | ||
10011 | "meow": { | ||
10012 | "version": "7.1.1", | ||
10013 | "resolved": "https://registry.npmjs.org/meow/-/meow-7.1.1.tgz", | ||
10014 | "integrity": "sha512-GWHvA5QOcS412WCo8vwKDlTelGLsCGBVevQB5Kva961rmNfun0PCbv5+xta2kUMFJyR8/oWnn7ddeKdosbAPbA==", | ||
10015 | "dev": true, | ||
10016 | "requires": { | ||
10017 | "@types/minimist": "^1.2.0", | ||
10018 | "camelcase-keys": "^6.2.2", | ||
10019 | "decamelize-keys": "^1.1.0", | ||
10020 | "hard-rejection": "^2.1.0", | ||
10021 | "minimist-options": "4.1.0", | ||
10022 | "normalize-package-data": "^2.5.0", | ||
10023 | "read-pkg-up": "^7.0.1", | ||
10024 | "redent": "^3.0.0", | ||
10025 | "trim-newlines": "^3.0.0", | ||
10026 | "type-fest": "^0.13.1", | ||
10027 | "yargs-parser": "^18.1.3" | ||
10028 | } | ||
10029 | }, | ||
10030 | "minimist-options": { | ||
10031 | "version": "4.1.0", | ||
10032 | "resolved": "https://registry.npmjs.org/minimist-options/-/minimist-options-4.1.0.tgz", | ||
10033 | "integrity": "sha512-Q4r8ghd80yhO/0j1O3B2BjweX3fiHg9cdOwjJd2J76Q135c+NDxGCqdYKQ1SKBuFfgWbAUzBfvYjPUEeNgqN1A==", | ||
10034 | "dev": true, | ||
10035 | "requires": { | ||
10036 | "arrify": "^1.0.1", | ||
10037 | "is-plain-obj": "^1.1.0", | ||
10038 | "kind-of": "^6.0.3" | ||
10039 | } | ||
10040 | }, | ||
10041 | "p-locate": { | ||
10042 | "version": "4.1.0", | ||
10043 | "resolved": "https://registry.npmjs.org/p-locate/-/p-locate-4.1.0.tgz", | ||
10044 | "integrity": "sha512-R79ZZ/0wAxKGu3oYMlz8jy/kbhsNrS7SKZ7PxEHBgJ5+F2mtFW2fK2cOtBh1cHYkQsbzFV7I+EoRKe6Yt0oK7A==", | ||
10045 | "dev": true, | ||
10046 | "requires": { | ||
10047 | "p-limit": "^2.2.0" | ||
10048 | } | ||
10049 | }, | ||
10050 | "parse-json": { | ||
10051 | "version": "5.1.0", | ||
10052 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-5.1.0.tgz", | ||
10053 | "integrity": "sha512-+mi/lmVVNKFNVyLXV31ERiy2CY5E1/F6QtJFEzoChPRwwngMNXRDQ9GJ5WdE2Z2P4AujsOi0/+2qHID68KwfIQ==", | ||
10054 | "dev": true, | ||
10055 | "requires": { | ||
10056 | "@babel/code-frame": "^7.0.0", | ||
10057 | "error-ex": "^1.3.1", | ||
10058 | "json-parse-even-better-errors": "^2.3.0", | ||
10059 | "lines-and-columns": "^1.1.6" | ||
10060 | } | ||
10061 | }, | ||
10062 | "path-exists": { | ||
10063 | "version": "4.0.0", | ||
10064 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-4.0.0.tgz", | ||
10065 | "integrity": "sha512-ak9Qy5Q7jYb2Wwcey5Fpvg2KoAc/ZIhLSLOSBmRmygPsGwkVVt0fZa0qrtMz+m6tJTAHfZQ8FnmB4MG4LWy7/w==", | ||
10066 | "dev": true | ||
10067 | }, | ||
10068 | "quick-lru": { | ||
10069 | "version": "4.0.1", | ||
10070 | "resolved": "https://registry.npmjs.org/quick-lru/-/quick-lru-4.0.1.tgz", | ||
10071 | "integrity": "sha512-ARhCpm70fzdcvNQfPoy49IaanKkTlRWF2JMzqhcJbhSFRZv7nPTvZJdcY7301IPmvW+/p0RgIWnQDLJxifsQ7g==", | ||
10072 | "dev": true | ||
10073 | }, | ||
10074 | "read-pkg": { | ||
10075 | "version": "5.2.0", | ||
10076 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-5.2.0.tgz", | ||
10077 | "integrity": "sha512-Ug69mNOpfvKDAc2Q8DRpMjjzdtrnv9HcSMX+4VsZxD1aZ6ZzrIE7rlzXBtWTyhULSMKg076AW6WR5iZpD0JiOg==", | ||
10078 | "dev": true, | ||
10079 | "requires": { | ||
10080 | "@types/normalize-package-data": "^2.4.0", | ||
10081 | "normalize-package-data": "^2.5.0", | ||
10082 | "parse-json": "^5.0.0", | ||
10083 | "type-fest": "^0.6.0" | ||
10084 | }, | ||
10085 | "dependencies": { | ||
10086 | "type-fest": { | ||
10087 | "version": "0.6.0", | ||
10088 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.6.0.tgz", | ||
10089 | "integrity": "sha512-q+MB8nYR1KDLrgr4G5yemftpMC7/QLqVndBmEEdqzmNj5dcFOO4Oo8qlwZE3ULT3+Zim1F8Kq4cBnikNhlCMlg==", | ||
10090 | "dev": true | ||
10091 | } | ||
10092 | } | ||
10093 | }, | ||
10094 | "read-pkg-up": { | ||
10095 | "version": "7.0.1", | ||
10096 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-7.0.1.tgz", | ||
10097 | "integrity": "sha512-zK0TB7Xd6JpCLmlLmufqykGE+/TlOePD6qKClNW7hHDKFh/J7/7gCWGR7joEQEW1bKq3a3yUZSObOoWLFQ4ohg==", | ||
10098 | "dev": true, | ||
10099 | "requires": { | ||
10100 | "find-up": "^4.1.0", | ||
10101 | "read-pkg": "^5.2.0", | ||
10102 | "type-fest": "^0.8.1" | ||
10103 | }, | ||
10104 | "dependencies": { | ||
10105 | "type-fest": { | ||
10106 | "version": "0.8.1", | ||
10107 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", | ||
10108 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", | ||
10109 | "dev": true | ||
10110 | } | ||
10111 | } | ||
10112 | }, | ||
10113 | "redent": { | ||
10114 | "version": "3.0.0", | ||
10115 | "resolved": "https://registry.npmjs.org/redent/-/redent-3.0.0.tgz", | ||
10116 | "integrity": "sha512-6tDA8g98We0zd0GvVeMT9arEOnTw9qM03L9cJXaCjrip1OO764RDBLBfrB4cwzNGDj5OA5ioymC9GkizgWJDUg==", | ||
10117 | "dev": true, | ||
10118 | "requires": { | ||
10119 | "indent-string": "^4.0.0", | ||
10120 | "strip-indent": "^3.0.0" | ||
10121 | } | ||
10122 | }, | ||
10123 | "strip-indent": { | ||
10124 | "version": "3.0.0", | ||
10125 | "resolved": "https://registry.npmjs.org/strip-indent/-/strip-indent-3.0.0.tgz", | ||
10126 | "integrity": "sha512-laJTa3Jb+VQpaC6DseHhF7dXVqHTfJPCRDaEbid/drOhgitgYku/letMUqOXFoWV0zIIUbjpdH2t+tYj4bQMRQ==", | ||
10127 | "dev": true, | ||
10128 | "requires": { | ||
10129 | "min-indent": "^1.0.0" | ||
10130 | } | ||
10131 | }, | ||
10132 | "text-extensions": { | ||
10133 | "version": "1.9.0", | ||
10134 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-1.9.0.tgz", | ||
10135 | "integrity": "sha512-wiBrwC1EhBelW12Zy26JeOUkQ5mRu+5o8rpsJk5+2t+Y5vE7e842qtZDQ2g1NpX/29HdyFeJ4nSIhI47ENSxlQ==", | ||
10136 | "dev": true | ||
10137 | }, | ||
10138 | "trim-newlines": { | ||
10139 | "version": "3.0.0", | ||
10140 | "resolved": "https://registry.npmjs.org/trim-newlines/-/trim-newlines-3.0.0.tgz", | ||
10141 | "integrity": "sha512-C4+gOpvmxaSMKuEf9Qc134F1ZuOHVXKRbtEflf4NTtuuJDEIJ9p5PXsalL8SkeRw+qit1Mo+yuvMPAKwWg/1hA==", | ||
10142 | "dev": true | ||
10143 | }, | ||
10144 | "type-fest": { | ||
10145 | "version": "0.13.1", | ||
10146 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.13.1.tgz", | ||
10147 | "integrity": "sha512-34R7HTnG0XIJcBSn5XhDd7nNFPRcXYRZrBB2O2jdKqYODldSzBAqzsWoZYYvduky73toYS/ESqxPvkDf/F0XMg==", | ||
10148 | "dev": true | ||
10149 | }, | ||
10150 | "yargs-parser": { | ||
10151 | "version": "18.1.3", | ||
10152 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-18.1.3.tgz", | ||
10153 | "integrity": "sha512-o50j0JeToy/4K6OZcaQmW6lyXXKhq7csREXcDwk2omFPJEwUNOVtJKvmDr9EI1fAJZUyZcRF7kxGBWmRXudrCQ==", | ||
10154 | "dev": true, | ||
10155 | "requires": { | ||
10156 | "camelcase": "^5.0.0", | ||
10157 | "decamelize": "^1.2.0" | ||
10158 | } | ||
10159 | } | ||
9318 | } | 10160 | } |
9319 | }, | 10161 | }, |
9320 | "conventional-recommended-bump": { | 10162 | "conventional-recommended-bump": { |
@@ -9364,9 +10206,9 @@ | |||
9364 | } | 10206 | } |
9365 | }, | 10207 | }, |
9366 | "convert-source-map": { | 10208 | "convert-source-map": { |
9367 | "version": "1.6.0", | 10209 | "version": "1.7.0", |
9368 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.6.0.tgz", | 10210 | "resolved": "https://registry.npmjs.org/convert-source-map/-/convert-source-map-1.7.0.tgz", |
9369 | "integrity": "sha512-eFu7XigvxdZ1ETfbgPBohgyQ/Z++C0eEhTor0qRwBw9unw+L0/6V8wkSuGgzdThkiS5lSpdptOQPD8Ak40a+7A==", | 10211 | "integrity": "sha512-4FJkXzKXEDB1snCFZlLP4gpC3JILicCpGbzG9f9G7tGqGCzETQ2hWPrcinA9oU4wtf2biUaEH5065UnMeR33oA==", |
9370 | "dev": true, | 10212 | "dev": true, |
9371 | "requires": { | 10213 | "requires": { |
9372 | "safe-buffer": "~5.1.1" | 10214 | "safe-buffer": "~5.1.1" |
@@ -9421,24 +10263,54 @@ | |||
9421 | } | 10263 | } |
9422 | }, | 10264 | }, |
9423 | "core-js": { | 10265 | "core-js": { |
9424 | "version": "2.6.9", | 10266 | "version": "2.6.11", |
9425 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.9.tgz", | 10267 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-2.6.11.tgz", |
9426 | "integrity": "sha512-HOpZf6eXmnl7la+cUdMnLvUxKNqLUzJvgIziQ0DiF3JwSImNphIqdGqzj6hIKyX04MmV0poclQ7+wjWvxQyR2A==" | 10268 | "integrity": "sha512-5wjnpaT/3dV+XB4borEsnAYQchn00XSgTAWKDkEqv+K8KevjbzmofK6hfJ9TZIlpj2N0xQpazy7PiRQiWHqzWg==" |
9427 | }, | 10269 | }, |
9428 | "core-js-compat": { | 10270 | "core-js-compat": { |
9429 | "version": "3.4.4", | 10271 | "version": "3.6.5", |
9430 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.4.4.tgz", | 10272 | "resolved": "https://registry.npmjs.org/core-js-compat/-/core-js-compat-3.6.5.tgz", |
9431 | "integrity": "sha512-hBbxJ6sOkaFSvwAXjJ/t/1usGIPK5gTbtqV8+T+u1pZBkgQ3lDQgAguN1g01PJ0b3eyQxgRIEgxqGoviE1QtIQ==", | 10273 | "integrity": "sha512-7ItTKOhOZbznhXAQ2g/slGg1PJV5zDO/WdkTwi7UEOJmkvsE32PWvx6mKtDjiMpjnR2CNf6BAD6sSxIlv7ptng==", |
9432 | "dev": true, | 10274 | "dev": true, |
9433 | "requires": { | 10275 | "requires": { |
9434 | "browserslist": "^4.7.3", | 10276 | "browserslist": "^4.8.5", |
9435 | "semver": "^6.3.0" | 10277 | "semver": "7.0.0" |
9436 | }, | 10278 | }, |
9437 | "dependencies": { | 10279 | "dependencies": { |
10280 | "browserslist": { | ||
10281 | "version": "4.14.5", | ||
10282 | "resolved": "https://registry.npmjs.org/browserslist/-/browserslist-4.14.5.tgz", | ||
10283 | "integrity": "sha512-Z+vsCZIvCBvqLoYkBFTwEYH3v5MCQbsAjp50ERycpOjnPmolg1Gjy4+KaWWpm8QOJt9GHkhdqAl14NpCX73CWA==", | ||
10284 | "dev": true, | ||
10285 | "requires": { | ||
10286 | "caniuse-lite": "^1.0.30001135", | ||
10287 | "electron-to-chromium": "^1.3.571", | ||
10288 | "escalade": "^3.1.0", | ||
10289 | "node-releases": "^1.1.61" | ||
10290 | } | ||
10291 | }, | ||
10292 | "caniuse-lite": { | ||
10293 | "version": "1.0.30001148", | ||
10294 | "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001148.tgz", | ||
10295 | "integrity": "sha512-E66qcd0KMKZHNJQt9hiLZGE3J4zuTqE1OnU53miEVtylFbwOEmeA5OsRu90noZful+XGSQOni1aT2tiqu/9yYw==", | ||
10296 | "dev": true | ||
10297 | }, | ||
10298 | "electron-to-chromium": { | ||
10299 | "version": "1.3.582", | ||
10300 | "resolved": "https://registry.npmjs.org/electron-to-chromium/-/electron-to-chromium-1.3.582.tgz", | ||
10301 | "integrity": "sha512-0nCJ7cSqnkMC+kUuPs0YgklFHraWGl/xHqtZWWtOeVtyi+YqkoAOMGuZQad43DscXCQI/yizcTa3u6B5r+BLww==", | ||
10302 | "dev": true | ||
10303 | }, | ||
10304 | "node-releases": { | ||
10305 | "version": "1.1.63", | ||
10306 | "resolved": "https://registry.npmjs.org/node-releases/-/node-releases-1.1.63.tgz", | ||
10307 | "integrity": "sha512-ukW3iCfQaoxJkSPN+iK7KznTeqDGVJatAEuXsJERYHa9tn/KaT5lBdIyxQjLEVTzSkyjJEuQ17/vaEjrOauDkg==", | ||
10308 | "dev": true | ||
10309 | }, | ||
9438 | "semver": { | 10310 | "semver": { |
9439 | "version": "6.3.0", | 10311 | "version": "7.0.0", |
9440 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | 10312 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.0.0.tgz", |
9441 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | 10313 | "integrity": "sha512-+GB6zVA9LWh6zovYQLALHwv5rb2PHGlJi3lfiqIHxR0uuwCgefcOJc59v9fv1w8GbStwxuuqqAjI9NMAOOgq1A==", |
9442 | "dev": true | 10314 | "dev": true |
9443 | } | 10315 | } |
9444 | } | 10316 | } |
@@ -9458,6 +10330,18 @@ | |||
9458 | "is-directory": "^0.3.1", | 10330 | "is-directory": "^0.3.1", |
9459 | "js-yaml": "^3.13.1", | 10331 | "js-yaml": "^3.13.1", |
9460 | "parse-json": "^4.0.0" | 10332 | "parse-json": "^4.0.0" |
10333 | }, | ||
10334 | "dependencies": { | ||
10335 | "js-yaml": { | ||
10336 | "version": "3.14.0", | ||
10337 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", | ||
10338 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", | ||
10339 | "dev": true, | ||
10340 | "requires": { | ||
10341 | "argparse": "^1.0.7", | ||
10342 | "esprima": "^4.0.0" | ||
10343 | } | ||
10344 | } | ||
9461 | } | 10345 | } |
9462 | }, | 10346 | }, |
9463 | "create-ecdh": { | 10347 | "create-ecdh": { |
@@ -9506,11 +10390,10 @@ | |||
9506 | } | 10390 | } |
9507 | }, | 10391 | }, |
9508 | "create-react-class": { | 10392 | "create-react-class": { |
9509 | "version": "15.6.3", | 10393 | "version": "15.7.0", |
9510 | "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.6.3.tgz", | 10394 | "resolved": "https://registry.npmjs.org/create-react-class/-/create-react-class-15.7.0.tgz", |
9511 | "integrity": "sha512-M+/3Q6E6DLO6Yx3OwrWjwHBnvfXXYA7W+dFjt/ZDBemHO1DDZhsalX/NUtnTYclN6GfnBDRh4qRHjcDHmlJBJg==", | 10395 | "integrity": "sha512-QZv4sFWG9S5RUvkTYWbflxeZX+JG7Cz0Tn33rQBJ+WFQTqTfUTjMjiv9tnfXazjsO5r0KhPs+AqCjyrQX6h2ng==", |
9512 | "requires": { | 10396 | "requires": { |
9513 | "fbjs": "^0.8.9", | ||
9514 | "loose-envify": "^1.3.1", | 10397 | "loose-envify": "^1.3.1", |
9515 | "object-assign": "^4.1.1" | 10398 | "object-assign": "^4.1.1" |
9516 | } | 10399 | } |
@@ -10266,15 +11149,15 @@ | |||
10266 | } | 11149 | } |
10267 | }, | 11150 | }, |
10268 | "dmg-builder": { | 11151 | "dmg-builder": { |
10269 | "version": "22.8.1", | 11152 | "version": "22.7.0", |
10270 | "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.8.1.tgz", | 11153 | "resolved": "https://registry.npmjs.org/dmg-builder/-/dmg-builder-22.7.0.tgz", |
10271 | "integrity": "sha512-WeGom1moM00gBII6swljl4DQGrlJuEivoUhOmh8U9p1ALgeJL+EiTHbZFERlj8Ejy62xUUjURV+liOxUKmJFWg==", | 11154 | "integrity": "sha512-5Ea2YEz6zSNbyGzZD+O9/MzmaXb6oa15cSKWo4JQ1xP4rorOpte7IOj2jcwYjtc+Los2gu1lvT314OC1OZIWgg==", |
10272 | "dev": true, | 11155 | "dev": true, |
10273 | "requires": { | 11156 | "requires": { |
10274 | "app-builder-lib": "22.8.1", | 11157 | "app-builder-lib": "22.7.0", |
10275 | "builder-util": "22.8.1", | 11158 | "builder-util": "22.7.0", |
10276 | "fs-extra": "^9.0.1", | 11159 | "fs-extra": "^9.0.0", |
10277 | "iconv-lite": "^0.6.2", | 11160 | "iconv-lite": "^0.5.1", |
10278 | "js-yaml": "^3.14.0", | 11161 | "js-yaml": "^3.14.0", |
10279 | "sanitize-filename": "^1.6.3" | 11162 | "sanitize-filename": "^1.6.3" |
10280 | }, | 11163 | }, |
@@ -10292,12 +11175,12 @@ | |||
10292 | } | 11175 | } |
10293 | }, | 11176 | }, |
10294 | "iconv-lite": { | 11177 | "iconv-lite": { |
10295 | "version": "0.6.2", | 11178 | "version": "0.5.2", |
10296 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.6.2.tgz", | 11179 | "resolved": "https://registry.npmjs.org/iconv-lite/-/iconv-lite-0.5.2.tgz", |
10297 | "integrity": "sha512-2y91h5OpQlolefMPmUlivelittSWy0rP+oYVpn6A7GwVHNE8AWzoYOBNmlwks3LobaJxgHCYZAnyNo2GgpNRNQ==", | 11180 | "integrity": "sha512-kERHXvpSaB4aU3eANwidg79K8FlrN77m8G9V+0vOR3HYaRifrlwMEpT7ZBJqLSEIHnEgJTHcWK82wwLwwKwtag==", |
10298 | "dev": true, | 11181 | "dev": true, |
10299 | "requires": { | 11182 | "requires": { |
10300 | "safer-buffer": ">= 2.1.2 < 3.0.0" | 11183 | "safer-buffer": ">= 2.1.2 < 3" |
10301 | } | 11184 | } |
10302 | }, | 11185 | }, |
10303 | "js-yaml": { | 11186 | "js-yaml": { |
@@ -10443,15 +11326,6 @@ | |||
10443 | "domelementtype": "1" | 11326 | "domelementtype": "1" |
10444 | } | 11327 | } |
10445 | }, | 11328 | }, |
10446 | "dot-prop": { | ||
10447 | "version": "3.0.0", | ||
10448 | "resolved": "https://registry.npmjs.org/dot-prop/-/dot-prop-3.0.0.tgz", | ||
10449 | "integrity": "sha1-G3CK8JSknJoOfbyteQq6U52sEXc=", | ||
10450 | "dev": true, | ||
10451 | "requires": { | ||
10452 | "is-obj": "^1.0.0" | ||
10453 | } | ||
10454 | }, | ||
10455 | "dotenv": { | 11329 | "dotenv": { |
10456 | "version": "4.0.0", | 11330 | "version": "4.0.0", |
10457 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", | 11331 | "resolved": "https://registry.npmjs.org/dotenv/-/dotenv-4.0.0.tgz", |
@@ -10712,9 +11586,9 @@ | |||
10712 | } | 11586 | } |
10713 | }, | 11587 | }, |
10714 | "electron": { | 11588 | "electron": { |
10715 | "version": "9.4.0", | 11589 | "version": "10.1.3", |
10716 | "resolved": "https://registry.npmjs.org/electron/-/electron-9.4.0.tgz", | 11590 | "resolved": "https://registry.npmjs.org/electron/-/electron-10.1.3.tgz", |
10717 | "integrity": "sha512-hOC4q0jkb+UDYZRy8vrZ1IANnq+jznZnbkD62OEo06nU+hIbp2IrwDRBNuSLmQ3cwZMVir0WSIA1qEVK0PkzGA==", | 11591 | "integrity": "sha512-CR8LrlG47MdAp317SQ3vGYa2o2cIMdMSMPYH46OVitFLk35dwE9fn3VqvhUIXhCHYcNWIAPzMhkVHpkoFdKWuw==", |
10718 | "dev": true, | 11592 | "dev": true, |
10719 | "requires": { | 11593 | "requires": { |
10720 | "@electron/get": "^1.0.1", | 11594 | "@electron/get": "^1.0.1", |
@@ -10723,31 +11597,31 @@ | |||
10723 | } | 11597 | } |
10724 | }, | 11598 | }, |
10725 | "electron-builder": { | 11599 | "electron-builder": { |
10726 | "version": "22.8.1", | 11600 | "version": "22.7.0", |
10727 | "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.8.1.tgz", | 11601 | "resolved": "https://registry.npmjs.org/electron-builder/-/electron-builder-22.7.0.tgz", |
10728 | "integrity": "sha512-Hs7KTMq1rGSvT0fwGKXrjbLiJkK6sAKDQooUSwklOkktUgWi4ATjlP0fVE3l8SmS7zcLoww2yDZonSDqxEFhaQ==", | 11602 | "integrity": "sha512-t6E3oMutpST64YWbZCg7HodEwJOsnjUF1vnDIHm2MW6CFZPX8tlCK6efqaV66LU0E0Nkp/JH6TE5bCqQ1+VdPQ==", |
10729 | "dev": true, | 11603 | "dev": true, |
10730 | "requires": { | 11604 | "requires": { |
10731 | "@types/yargs": "^15.0.5", | 11605 | "@types/yargs": "^15.0.5", |
10732 | "app-builder-lib": "22.8.1", | 11606 | "app-builder-lib": "22.7.0", |
10733 | "bluebird-lst": "^1.0.9", | 11607 | "bluebird-lst": "^1.0.9", |
10734 | "builder-util": "22.8.1", | 11608 | "builder-util": "22.7.0", |
10735 | "builder-util-runtime": "8.7.2", | 11609 | "builder-util-runtime": "8.7.1", |
10736 | "chalk": "^4.1.0", | 11610 | "chalk": "^4.0.0", |
10737 | "dmg-builder": "22.8.1", | 11611 | "dmg-builder": "22.7.0", |
10738 | "fs-extra": "^9.0.1", | 11612 | "fs-extra": "^9.0.0", |
10739 | "is-ci": "^2.0.0", | 11613 | "is-ci": "^2.0.0", |
10740 | "lazy-val": "^1.0.4", | 11614 | "lazy-val": "^1.0.4", |
10741 | "read-config-file": "6.0.0", | 11615 | "read-config-file": "6.0.0", |
10742 | "sanitize-filename": "^1.6.3", | 11616 | "sanitize-filename": "^1.6.3", |
10743 | "update-notifier": "^4.1.0", | 11617 | "update-notifier": "^4.1.0", |
10744 | "yargs": "^15.4.1" | 11618 | "yargs": "^15.3.1" |
10745 | }, | 11619 | }, |
10746 | "dependencies": { | 11620 | "dependencies": { |
10747 | "@types/yargs": { | 11621 | "@types/yargs": { |
10748 | "version": "15.0.7", | 11622 | "version": "15.0.9", |
10749 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.7.tgz", | 11623 | "resolved": "https://registry.npmjs.org/@types/yargs/-/yargs-15.0.9.tgz", |
10750 | "integrity": "sha512-Gf4u3EjaPNcC9cTu4/j2oN14nSVhr8PQ+BvBcBQHAhDZfl0bVIiLgvnRXv/dn58XhTm9UXvBpvJpDlwV65QxOA==", | 11624 | "integrity": "sha512-HmU8SeIRhZCWcnRskCs36Q1Q00KBV6Cqh/ora8WN1+22dY07AZdn6Gel8QZ3t26XYPImtcL8WV/eqjhVmMEw4g==", |
10751 | "dev": true, | 11625 | "dev": true, |
10752 | "requires": { | 11626 | "requires": { |
10753 | "@types/yargs-parser": "*" | 11627 | "@types/yargs-parser": "*" |
@@ -10760,22 +11634,21 @@ | |||
10760 | "dev": true | 11634 | "dev": true |
10761 | }, | 11635 | }, |
10762 | "ansi-styles": { | 11636 | "ansi-styles": { |
10763 | "version": "4.2.1", | 11637 | "version": "4.3.0", |
10764 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | 11638 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
10765 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | 11639 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
10766 | "dev": true, | 11640 | "dev": true, |
10767 | "requires": { | 11641 | "requires": { |
10768 | "@types/color-name": "^1.1.1", | ||
10769 | "color-convert": "^2.0.1" | 11642 | "color-convert": "^2.0.1" |
10770 | } | 11643 | } |
10771 | }, | 11644 | }, |
10772 | "builder-util-runtime": { | 11645 | "builder-util-runtime": { |
10773 | "version": "8.7.2", | 11646 | "version": "8.7.1", |
10774 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", | 11647 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.1.tgz", |
10775 | "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", | 11648 | "integrity": "sha512-uEBH1nAnTvzjcsrh2XI3qOzJ39h0+9kuIuwj+kCc3a07TZNGShfJcai8fFzL3mNgGjEFxoq+XMssR11r+FOFSg==", |
10776 | "dev": true, | 11649 | "dev": true, |
10777 | "requires": { | 11650 | "requires": { |
10778 | "debug": "^4.1.1", | 11651 | "debug": "^4.2.0", |
10779 | "sax": "^1.2.4" | 11652 | "sax": "^1.2.4" |
10780 | } | 11653 | } |
10781 | }, | 11654 | }, |
@@ -10815,6 +11688,15 @@ | |||
10815 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | 11688 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", |
10816 | "dev": true | 11689 | "dev": true |
10817 | }, | 11690 | }, |
11691 | "debug": { | ||
11692 | "version": "4.2.0", | ||
11693 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", | ||
11694 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", | ||
11695 | "dev": true, | ||
11696 | "requires": { | ||
11697 | "ms": "2.1.2" | ||
11698 | } | ||
11699 | }, | ||
10818 | "emoji-regex": { | 11700 | "emoji-regex": { |
10819 | "version": "8.0.0", | 11701 | "version": "8.0.0", |
10820 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", | 11702 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-8.0.0.tgz", |
@@ -11015,25 +11897,42 @@ | |||
11015 | "integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ==" | 11897 | "integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ==" |
11016 | }, | 11898 | }, |
11017 | "electron-notarize": { | 11899 | "electron-notarize": { |
11018 | "version": "0.2.1", | 11900 | "version": "1.0.0", |
11019 | "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-0.2.1.tgz", | 11901 | "resolved": "https://registry.npmjs.org/electron-notarize/-/electron-notarize-1.0.0.tgz", |
11020 | "integrity": "sha512-oZ6/NhKeXmEKNROiFmRNfytqu3cxqC95sjooG7kBXQVEUSQkZnbiAhxVh5jXngL881G197pbwpeVPJyM7Ikmxw==", | 11902 | "integrity": "sha512-dsib1IAquMn0onCrNMJ6gtEIZn/azG8hZMCYOuZIMVMUeRMgBYHK1s5TK9P8xAcrAjh/2aN5WYHzgVSWX314og==", |
11021 | "dev": true, | 11903 | "dev": true, |
11022 | "requires": { | 11904 | "requires": { |
11023 | "debug": "^4.1.1", | 11905 | "debug": "^4.1.1", |
11024 | "fs-extra": "^8.1.0" | 11906 | "fs-extra": "^9.0.1" |
11025 | }, | 11907 | }, |
11026 | "dependencies": { | 11908 | "dependencies": { |
11027 | "fs-extra": { | 11909 | "fs-extra": { |
11028 | "version": "8.1.0", | 11910 | "version": "9.0.1", |
11029 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", | 11911 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", |
11030 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", | 11912 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", |
11031 | "dev": true, | 11913 | "dev": true, |
11032 | "requires": { | 11914 | "requires": { |
11915 | "at-least-node": "^1.0.0", | ||
11033 | "graceful-fs": "^4.2.0", | 11916 | "graceful-fs": "^4.2.0", |
11034 | "jsonfile": "^4.0.0", | 11917 | "jsonfile": "^6.0.1", |
11035 | "universalify": "^0.1.0" | 11918 | "universalify": "^1.0.0" |
11036 | } | 11919 | } |
11920 | }, | ||
11921 | "jsonfile": { | ||
11922 | "version": "6.0.1", | ||
11923 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", | ||
11924 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", | ||
11925 | "dev": true, | ||
11926 | "requires": { | ||
11927 | "graceful-fs": "^4.1.6", | ||
11928 | "universalify": "^1.0.0" | ||
11929 | } | ||
11930 | }, | ||
11931 | "universalify": { | ||
11932 | "version": "1.0.0", | ||
11933 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", | ||
11934 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", | ||
11935 | "dev": true | ||
11037 | } | 11936 | } |
11038 | } | 11937 | } |
11039 | }, | 11938 | }, |
@@ -11066,127 +11965,6 @@ | |||
11066 | } | 11965 | } |
11067 | } | 11966 | } |
11068 | }, | 11967 | }, |
11069 | "electron-publish": { | ||
11070 | "version": "22.8.1", | ||
11071 | "resolved": "https://registry.npmjs.org/electron-publish/-/electron-publish-22.8.1.tgz", | ||
11072 | "integrity": "sha512-zqI66vl7j1CJZJ60J+1ez1tQNQeuqVspW44JvYDa5kZbM5wSFDAJFMK9RWHOqRF1Ezd4LDeiBa4aeTOwOt9syA==", | ||
11073 | "dev": true, | ||
11074 | "requires": { | ||
11075 | "@types/fs-extra": "^9.0.1", | ||
11076 | "bluebird-lst": "^1.0.9", | ||
11077 | "builder-util": "22.8.1", | ||
11078 | "builder-util-runtime": "8.7.2", | ||
11079 | "chalk": "^4.1.0", | ||
11080 | "fs-extra": "^9.0.1", | ||
11081 | "lazy-val": "^1.0.4", | ||
11082 | "mime": "^2.4.6" | ||
11083 | }, | ||
11084 | "dependencies": { | ||
11085 | "@types/fs-extra": { | ||
11086 | "version": "9.0.1", | ||
11087 | "resolved": "https://registry.npmjs.org/@types/fs-extra/-/fs-extra-9.0.1.tgz", | ||
11088 | "integrity": "sha512-B42Sxuaz09MhC3DDeW5kubRcQ5by4iuVQ0cRRWM2lggLzAa/KVom0Aft/208NgMvNQQZ86s5rVcqDdn/SH0/mg==", | ||
11089 | "dev": true, | ||
11090 | "requires": { | ||
11091 | "@types/node": "*" | ||
11092 | } | ||
11093 | }, | ||
11094 | "ansi-styles": { | ||
11095 | "version": "4.2.1", | ||
11096 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | ||
11097 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | ||
11098 | "dev": true, | ||
11099 | "requires": { | ||
11100 | "@types/color-name": "^1.1.1", | ||
11101 | "color-convert": "^2.0.1" | ||
11102 | } | ||
11103 | }, | ||
11104 | "builder-util-runtime": { | ||
11105 | "version": "8.7.2", | ||
11106 | "resolved": "https://registry.npmjs.org/builder-util-runtime/-/builder-util-runtime-8.7.2.tgz", | ||
11107 | "integrity": "sha512-xBqv+8bg6cfnzAQK1k3OGpfaHg+QkPgIgpEkXNhouZ0WiUkyZCftuRc2LYzQrLucFywpa14Xbc6+hTbpq83yRA==", | ||
11108 | "dev": true, | ||
11109 | "requires": { | ||
11110 | "debug": "^4.1.1", | ||
11111 | "sax": "^1.2.4" | ||
11112 | } | ||
11113 | }, | ||
11114 | "chalk": { | ||
11115 | "version": "4.1.0", | ||
11116 | "resolved": "https://registry.npmjs.org/chalk/-/chalk-4.1.0.tgz", | ||
11117 | "integrity": "sha512-qwx12AxXe2Q5xQ43Ac//I6v5aXTipYrSESdOgzrN+9XjgEpyjpKuvSGaN4qE93f7TQTlerQQ8S+EQ0EyDoVL1A==", | ||
11118 | "dev": true, | ||
11119 | "requires": { | ||
11120 | "ansi-styles": "^4.1.0", | ||
11121 | "supports-color": "^7.1.0" | ||
11122 | } | ||
11123 | }, | ||
11124 | "color-convert": { | ||
11125 | "version": "2.0.1", | ||
11126 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-2.0.1.tgz", | ||
11127 | "integrity": "sha512-RRECPsj7iu/xb5oKYcsFHSppFNnsj/52OVTRKb4zP5onXwVF3zVmmToNcOfGC+CRDpfK/U584fMg38ZHCaElKQ==", | ||
11128 | "dev": true, | ||
11129 | "requires": { | ||
11130 | "color-name": "~1.1.4" | ||
11131 | } | ||
11132 | }, | ||
11133 | "color-name": { | ||
11134 | "version": "1.1.4", | ||
11135 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.4.tgz", | ||
11136 | "integrity": "sha512-dOy+3AuW3a2wNbZHIuMZpTcgjGuLU/uBL/ubcZF9OXbDo8ff4O8yVp5Bf0efS8uEoYo5q4Fx7dY9OgQGXgAsQA==", | ||
11137 | "dev": true | ||
11138 | }, | ||
11139 | "fs-extra": { | ||
11140 | "version": "9.0.1", | ||
11141 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", | ||
11142 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", | ||
11143 | "dev": true, | ||
11144 | "requires": { | ||
11145 | "at-least-node": "^1.0.0", | ||
11146 | "graceful-fs": "^4.2.0", | ||
11147 | "jsonfile": "^6.0.1", | ||
11148 | "universalify": "^1.0.0" | ||
11149 | } | ||
11150 | }, | ||
11151 | "has-flag": { | ||
11152 | "version": "4.0.0", | ||
11153 | "resolved": "https://registry.npmjs.org/has-flag/-/has-flag-4.0.0.tgz", | ||
11154 | "integrity": "sha512-EykJT/Q1KjTWctppgIAgfSO0tKVuZUjhgMr17kqTumMl6Afv3EISleU7qZUzoXDFTAHTDC4NOoG/ZxU3EvlMPQ==", | ||
11155 | "dev": true | ||
11156 | }, | ||
11157 | "jsonfile": { | ||
11158 | "version": "6.0.1", | ||
11159 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", | ||
11160 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", | ||
11161 | "dev": true, | ||
11162 | "requires": { | ||
11163 | "graceful-fs": "^4.1.6", | ||
11164 | "universalify": "^1.0.0" | ||
11165 | } | ||
11166 | }, | ||
11167 | "mime": { | ||
11168 | "version": "2.4.6", | ||
11169 | "resolved": "https://registry.npmjs.org/mime/-/mime-2.4.6.tgz", | ||
11170 | "integrity": "sha512-RZKhC3EmpBchfTGBVb8fb+RL2cWyw/32lshnsETttkBAyAUXSGHxbEJWWRXc751DrIxG1q04b8QwMbAwkRPpUA==", | ||
11171 | "dev": true | ||
11172 | }, | ||
11173 | "supports-color": { | ||
11174 | "version": "7.2.0", | ||
11175 | "resolved": "https://registry.npmjs.org/supports-color/-/supports-color-7.2.0.tgz", | ||
11176 | "integrity": "sha512-qpCAvRl9stuOHveKsn7HncJRvv501qIacKzQlO/+Lwxc9+0q2wLyv4Dfvt80/DPn2pqOBsJdDiogXGR9+OvwRw==", | ||
11177 | "dev": true, | ||
11178 | "requires": { | ||
11179 | "has-flag": "^4.0.0" | ||
11180 | } | ||
11181 | }, | ||
11182 | "universalify": { | ||
11183 | "version": "1.0.0", | ||
11184 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", | ||
11185 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==", | ||
11186 | "dev": true | ||
11187 | } | ||
11188 | } | ||
11189 | }, | ||
11190 | "electron-react-titlebar": { | 11968 | "electron-react-titlebar": { |
11191 | "version": "0.8.2", | 11969 | "version": "0.8.2", |
11192 | "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.2.tgz", | 11970 | "resolved": "https://registry.npmjs.org/electron-react-titlebar/-/electron-react-titlebar-0.8.2.tgz", |
@@ -11383,39 +12161,57 @@ | |||
11383 | "dev": true | 12161 | "dev": true |
11384 | }, | 12162 | }, |
11385 | "electron-updater": { | 12163 | "electron-updater": { |
11386 | "version": "4.2.5", | 12164 | "version": "4.3.5", |
11387 | "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.2.5.tgz", | 12165 | "resolved": "https://registry.npmjs.org/electron-updater/-/electron-updater-4.3.5.tgz", |
11388 | "integrity": "sha512-ir8SI3capF5pN4LTQY79bP7oqiBKjgtdDW378xVId5VcGUZ+Toei2j+fgx1mq3y4Qg19z4HqLxEZ9FqMD0T0RA==", | 12166 | "integrity": "sha512-5jjN7ebvfj1cLI0VZMdCnJk6aC4bP+dy7ryBf21vArR0JzpRVk0OZHA2QBD+H5rm6ZSeDYHOY6+8PrMEqJ4wlQ==", |
11389 | "requires": { | 12167 | "requires": { |
11390 | "@types/semver": "^7.1.0", | 12168 | "@types/semver": "^7.3.1", |
11391 | "builder-util-runtime": "8.6.2", | 12169 | "builder-util-runtime": "8.7.2", |
11392 | "fs-extra": "^8.1.0", | 12170 | "fs-extra": "^9.0.1", |
11393 | "js-yaml": "^3.13.1", | 12171 | "js-yaml": "^3.14.0", |
11394 | "lazy-val": "^1.0.4", | 12172 | "lazy-val": "^1.0.4", |
11395 | "lodash.isequal": "^4.5.0", | 12173 | "lodash.isequal": "^4.5.0", |
11396 | "pako": "^1.0.11", | 12174 | "semver": "^7.3.2" |
11397 | "semver": "^7.1.3" | ||
11398 | }, | 12175 | }, |
11399 | "dependencies": { | 12176 | "dependencies": { |
11400 | "fs-extra": { | 12177 | "fs-extra": { |
11401 | "version": "8.1.0", | 12178 | "version": "9.0.1", |
11402 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-8.1.0.tgz", | 12179 | "resolved": "https://registry.npmjs.org/fs-extra/-/fs-extra-9.0.1.tgz", |
11403 | "integrity": "sha512-yhlQgA6mnOJUKOsRUFsgJdQCvkKhcz8tlZG5HBQfReYZy46OwLcY+Zia0mtdHsOo9y/hP+CxMN0TU9QxoOtG4g==", | 12180 | "integrity": "sha512-h2iAoN838FqAFJY2/qVpzFXy+EBxfVE220PalAqQLDVsFOHLJrZvut5puAbCdNv6WJk+B8ihI+k0c7JK5erwqQ==", |
11404 | "requires": { | 12181 | "requires": { |
12182 | "at-least-node": "^1.0.0", | ||
11405 | "graceful-fs": "^4.2.0", | 12183 | "graceful-fs": "^4.2.0", |
11406 | "jsonfile": "^4.0.0", | 12184 | "jsonfile": "^6.0.1", |
11407 | "universalify": "^0.1.0" | 12185 | "universalify": "^1.0.0" |
11408 | } | 12186 | } |
11409 | }, | 12187 | }, |
11410 | "pako": { | 12188 | "js-yaml": { |
11411 | "version": "1.0.11", | 12189 | "version": "3.14.0", |
11412 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.11.tgz", | 12190 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", |
11413 | "integrity": "sha512-4hLB8Py4zZce5s4yd9XzopqwVv/yGNhV1Bl8NTmCq1763HeK2+EwVTv+leGeL13Dnh2wfbqowVPXCIO0z4taYw==" | 12191 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", |
12192 | "requires": { | ||
12193 | "argparse": "^1.0.7", | ||
12194 | "esprima": "^4.0.0" | ||
12195 | } | ||
12196 | }, | ||
12197 | "jsonfile": { | ||
12198 | "version": "6.0.1", | ||
12199 | "resolved": "https://registry.npmjs.org/jsonfile/-/jsonfile-6.0.1.tgz", | ||
12200 | "integrity": "sha512-jR2b5v7d2vIOust+w3wtFKZIfpC2pnRmFAhAC/BuweZFQR8qZzxH1OyrQ10HmdVYiXWkYUqPVsz91cG7EL2FBg==", | ||
12201 | "requires": { | ||
12202 | "graceful-fs": "^4.1.6", | ||
12203 | "universalify": "^1.0.0" | ||
12204 | } | ||
11414 | }, | 12205 | }, |
11415 | "semver": { | 12206 | "semver": { |
11416 | "version": "7.1.3", | 12207 | "version": "7.3.2", |
11417 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.1.3.tgz", | 12208 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", |
11418 | "integrity": "sha512-ekM0zfiA9SCBlsKa2X1hxyxiI4L3B6EbVJkkdgQXnSEEaHlGdvyodMruTiulSRWMMB4NeIuYNMC9rTKTz97GxA==" | 12209 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==" |
12210 | }, | ||
12211 | "universalify": { | ||
12212 | "version": "1.0.0", | ||
12213 | "resolved": "https://registry.npmjs.org/universalify/-/universalify-1.0.0.tgz", | ||
12214 | "integrity": "sha512-rb6X1W158d7pRQBg5gkR8uPaSfiids68LTJQYOtEUhoJUWBdaQHsuT/EUduxXYxcrt4r5PJ4fuHW1MHT6p0qug==" | ||
11419 | } | 12215 | } |
11420 | } | 12216 | } |
11421 | }, | 12217 | }, |
@@ -11452,11 +12248,6 @@ | |||
11452 | "minimalistic-crypto-utils": "^1.0.0" | 12248 | "minimalistic-crypto-utils": "^1.0.0" |
11453 | } | 12249 | } |
11454 | }, | 12250 | }, |
11455 | "email-addresses": { | ||
11456 | "version": "3.0.3", | ||
11457 | "resolved": "https://registry.npmjs.org/email-addresses/-/email-addresses-3.0.3.tgz", | ||
11458 | "integrity": "sha512-kUlSC06PVvvjlMRpNIl3kR1NRXLEe86VQ7N0bQeaCZb2g+InShCeHQp/JvyYNTugMnRN2NvJhHlc3q12MWbbpg==" | ||
11459 | }, | ||
11460 | "emoji-regex": { | 12251 | "emoji-regex": { |
11461 | "version": "7.0.3", | 12252 | "version": "7.0.3", |
11462 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", | 12253 | "resolved": "https://registry.npmjs.org/emoji-regex/-/emoji-regex-7.0.3.tgz", |
@@ -11469,15 +12260,6 @@ | |||
11469 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", | 12260 | "integrity": "sha1-TapNnbAPmBmIDHn6RXrlsJof04k=", |
11470 | "dev": true | 12261 | "dev": true |
11471 | }, | 12262 | }, |
11472 | "emscripten-wasm-loader": { | ||
11473 | "version": "1.1.0", | ||
11474 | "resolved": "https://registry.npmjs.org/emscripten-wasm-loader/-/emscripten-wasm-loader-1.1.0.tgz", | ||
11475 | "integrity": "sha512-kXR3lT/900WjvhpdhaNSuD6WJKpd4ZlMh/ZaRM0rp82uKoGBq7Ud/u0GVIxQD15cqsShCKEHOpd3bZypvft9Lw==", | ||
11476 | "requires": { | ||
11477 | "getroot": "^1.0.0", | ||
11478 | "tslib": "^1.8.0" | ||
11479 | } | ||
11480 | }, | ||
11481 | "enabled": { | 12263 | "enabled": { |
11482 | "version": "1.0.2", | 12264 | "version": "1.0.2", |
11483 | "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", | 12265 | "resolved": "https://registry.npmjs.org/enabled/-/enabled-1.0.2.tgz", |
@@ -11632,14 +12414,56 @@ | |||
11632 | } | 12414 | } |
11633 | }, | 12415 | }, |
11634 | "enhanced-resolve": { | 12416 | "enhanced-resolve": { |
11635 | "version": "4.1.0", | 12417 | "version": "4.3.0", |
11636 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", | 12418 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.3.0.tgz", |
11637 | "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", | 12419 | "integrity": "sha512-3e87LvavsdxyoCfGusJnrZ5G8SLPOFeHSNpZI/ATL9a5leXo2k0w6MKnbqhdBad9qTobSfB20Ld7UmgoNbAZkQ==", |
11638 | "dev": true, | 12420 | "dev": true, |
11639 | "requires": { | 12421 | "requires": { |
11640 | "graceful-fs": "^4.1.2", | 12422 | "graceful-fs": "^4.1.2", |
11641 | "memory-fs": "^0.4.0", | 12423 | "memory-fs": "^0.5.0", |
11642 | "tapable": "^1.0.0" | 12424 | "tapable": "^1.0.0" |
12425 | }, | ||
12426 | "dependencies": { | ||
12427 | "memory-fs": { | ||
12428 | "version": "0.5.0", | ||
12429 | "resolved": "https://registry.npmjs.org/memory-fs/-/memory-fs-0.5.0.tgz", | ||
12430 | "integrity": "sha512-jA0rdU5KoQMC0e6ppoNRtpp6vjFq6+NY7r8hywnC7V+1Xj/MtHwGIbB1QaK/dunyjWteJzmkpd7ooeWg10T7GA==", | ||
12431 | "dev": true, | ||
12432 | "requires": { | ||
12433 | "errno": "^0.1.3", | ||
12434 | "readable-stream": "^2.0.1" | ||
12435 | } | ||
12436 | }, | ||
12437 | "readable-stream": { | ||
12438 | "version": "2.3.7", | ||
12439 | "resolved": "https://registry.npmjs.org/readable-stream/-/readable-stream-2.3.7.tgz", | ||
12440 | "integrity": "sha512-Ebho8K4jIbHAxnuxi7o42OrZgF/ZTNcsZj6nRKyUmkhLFq8CHItp/fy6hQZuZmP/n3yZ9VBUbp4zz/mX8hmYPw==", | ||
12441 | "dev": true, | ||
12442 | "requires": { | ||
12443 | "core-util-is": "~1.0.0", | ||
12444 | "inherits": "~2.0.3", | ||
12445 | "isarray": "~1.0.0", | ||
12446 | "process-nextick-args": "~2.0.0", | ||
12447 | "safe-buffer": "~5.1.1", | ||
12448 | "string_decoder": "~1.1.1", | ||
12449 | "util-deprecate": "~1.0.1" | ||
12450 | } | ||
12451 | }, | ||
12452 | "safe-buffer": { | ||
12453 | "version": "5.1.2", | ||
12454 | "resolved": "https://registry.npmjs.org/safe-buffer/-/safe-buffer-5.1.2.tgz", | ||
12455 | "integrity": "sha512-Gd2UZBJDkXlY7GbJxfsE8/nvKkUEU1G38c1siN6QP6a9PT9MmHB8GnpscSmMJSoF8LOIrt8ud/wPtojys4G6+g==", | ||
12456 | "dev": true | ||
12457 | }, | ||
12458 | "string_decoder": { | ||
12459 | "version": "1.1.1", | ||
12460 | "resolved": "https://registry.npmjs.org/string_decoder/-/string_decoder-1.1.1.tgz", | ||
12461 | "integrity": "sha512-n/ShnvDi6FHbbVfviro+WojiFzv+s8MPMHBczVePfUpDJLwoLT0ht1l4YwBCbi8pJAveEEdnkHyPyTP/mzRfwg==", | ||
12462 | "dev": true, | ||
12463 | "requires": { | ||
12464 | "safe-buffer": "~5.1.0" | ||
12465 | } | ||
12466 | } | ||
11643 | } | 12467 | } |
11644 | }, | 12468 | }, |
11645 | "enquirer": { | 12469 | "enquirer": { |
@@ -11750,32 +12574,148 @@ | |||
11750 | "integrity": "sha1-Ck2uN9YA0VopukU9jvkg8YRDM/Y=" | 12574 | "integrity": "sha1-Ck2uN9YA0VopukU9jvkg8YRDM/Y=" |
11751 | }, | 12575 | }, |
11752 | "es-abstract": { | 12576 | "es-abstract": { |
11753 | "version": "1.14.2", | 12577 | "version": "1.17.7", |
11754 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.14.2.tgz", | 12578 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.17.7.tgz", |
11755 | "integrity": "sha512-DgoQmbpFNOofkjJtKwr87Ma5EW4Dc8fWhD0R+ndq7Oc456ivUfGOOP6oAZTTKl5/CcNMP+EN+e3/iUzgE0veZg==", | 12579 | "integrity": "sha512-VBl/gnfcJ7OercKA9MVaegWsBHFjV492syMudcnQZvt/Dw8ezpcOHYZXa/J96O8vx+g4x65YKhxOwDUh63aS5g==", |
11756 | "dev": true, | 12580 | "dev": true, |
11757 | "requires": { | 12581 | "requires": { |
11758 | "es-to-primitive": "^1.2.0", | 12582 | "es-to-primitive": "^1.2.1", |
11759 | "function-bind": "^1.1.1", | 12583 | "function-bind": "^1.1.1", |
11760 | "has": "^1.0.3", | 12584 | "has": "^1.0.3", |
11761 | "has-symbols": "^1.0.0", | 12585 | "has-symbols": "^1.0.1", |
11762 | "is-callable": "^1.1.4", | 12586 | "is-callable": "^1.2.2", |
11763 | "is-regex": "^1.0.4", | 12587 | "is-regex": "^1.1.1", |
11764 | "object-inspect": "^1.6.0", | 12588 | "object-inspect": "^1.8.0", |
11765 | "object-keys": "^1.1.1", | 12589 | "object-keys": "^1.1.1", |
11766 | "string.prototype.trimleft": "^2.0.0", | 12590 | "object.assign": "^4.1.1", |
11767 | "string.prototype.trimright": "^2.0.0" | 12591 | "string.prototype.trimend": "^1.0.1", |
11768 | } | 12592 | "string.prototype.trimstart": "^1.0.1" |
11769 | }, | 12593 | }, |
11770 | "es-to-primitive": { | 12594 | "dependencies": { |
11771 | "version": "1.2.0", | 12595 | "es-abstract": { |
11772 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.0.tgz", | 12596 | "version": "1.18.0-next.1", |
11773 | "integrity": "sha512-qZryBOJjV//LaxLTV6UC//WewneB3LcXOL9NP++ozKVXsIIIpm/2c13UDiD9Jp2eThsecw9m3jPqDwTyobcdbg==", | 12597 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.1.tgz", |
11774 | "dev": true, | 12598 | "integrity": "sha512-I4UGspA0wpZXWENrdA0uHbnhte683t3qT/1VFH9aX2dA5PPSf6QW5HHXf5HImaqPmjXaVeVk4RGWnaylmV7uAA==", |
11775 | "requires": { | 12599 | "requires": { |
11776 | "is-callable": "^1.1.4", | 12600 | "es-to-primitive": "^1.2.1", |
11777 | "is-date-object": "^1.0.1", | 12601 | "function-bind": "^1.1.1", |
11778 | "is-symbol": "^1.0.2" | 12602 | "has": "^1.0.3", |
12603 | "has-symbols": "^1.0.1", | ||
12604 | "is-callable": "^1.2.2", | ||
12605 | "is-negative-zero": "^2.0.0", | ||
12606 | "is-regex": "^1.1.1", | ||
12607 | "object-inspect": "^1.8.0", | ||
12608 | "object-keys": "^1.1.1", | ||
12609 | "object.assign": "^4.1.1", | ||
12610 | "string.prototype.trimend": "^1.0.1", | ||
12611 | "string.prototype.trimstart": "^1.0.1" | ||
12612 | } | ||
12613 | }, | ||
12614 | "es-to-primitive": { | ||
12615 | "version": "1.2.1", | ||
12616 | "resolved": "https://registry.npmjs.org/es-to-primitive/-/es-to-primitive-1.2.1.tgz", | ||
12617 | "integrity": "sha512-QCOllgZJtaUo9miYBcLChTUaHNjJF3PYs1VidD7AwiEj1kYxKeQTctLAezAOH5ZKRH0g2IgPn6KwB4IT8iRpvA==", | ||
12618 | "requires": { | ||
12619 | "is-callable": "^1.1.4", | ||
12620 | "is-date-object": "^1.0.1", | ||
12621 | "is-symbol": "^1.0.2" | ||
12622 | } | ||
12623 | }, | ||
12624 | "has-symbols": { | ||
12625 | "version": "1.0.1", | ||
12626 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | ||
12627 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" | ||
12628 | }, | ||
12629 | "is-callable": { | ||
12630 | "version": "1.2.2", | ||
12631 | "resolved": "https://registry.npmjs.org/is-callable/-/is-callable-1.2.2.tgz", | ||
12632 | "integrity": "sha512-dnMqspv5nU3LoewK2N/y7KLtxtakvTuaCsU9FU50/QDmdbHNy/4/JuRtMHqRU22o3q+W89YQndQEeCVwK+3qrA==" | ||
12633 | }, | ||
12634 | "is-regex": { | ||
12635 | "version": "1.1.1", | ||
12636 | "resolved": "https://registry.npmjs.org/is-regex/-/is-regex-1.1.1.tgz", | ||
12637 | "integrity": "sha512-1+QkEcxiLlB7VEyFtyBg94e08OAsvq7FUBgApTq/w2ymCLyKJgDPsybBENVtA7XCQEgEXxKPonG+mvYRxh/LIg==", | ||
12638 | "requires": { | ||
12639 | "has-symbols": "^1.0.1" | ||
12640 | } | ||
12641 | }, | ||
12642 | "object-inspect": { | ||
12643 | "version": "1.8.0", | ||
12644 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.8.0.tgz", | ||
12645 | "integrity": "sha512-jLdtEOB112fORuypAyl/50VRVIBIdVQOSUUGQHzJ4xBSbit81zRarz7GThkEFZy1RceYrWYcPcBFPQwHyAc1gA==" | ||
12646 | }, | ||
12647 | "object.assign": { | ||
12648 | "version": "4.1.1", | ||
12649 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.1.tgz", | ||
12650 | "integrity": "sha512-VT/cxmx5yaoHSOTSyrCygIDFco+RsibY2NM0a4RdEeY/4KgqezwFtK1yr3U67xYhqJSlASm2pKhLVzPj2lr4bA==", | ||
12651 | "requires": { | ||
12652 | "define-properties": "^1.1.3", | ||
12653 | "es-abstract": "^1.18.0-next.0", | ||
12654 | "has-symbols": "^1.0.1", | ||
12655 | "object-keys": "^1.1.1" | ||
12656 | }, | ||
12657 | "dependencies": { | ||
12658 | "es-abstract": { | ||
12659 | "version": "1.18.0-next.2", | ||
12660 | "resolved": "https://registry.npmjs.org/es-abstract/-/es-abstract-1.18.0-next.2.tgz", | ||
12661 | "integrity": "sha512-Ih4ZMFHEtZupnUh6497zEL4y2+w8+1ljnCyaTa+adcoafI1GOvMwFlDjBLfWR7y9VLfrjRJe9ocuHY1PSR9jjw==", | ||
12662 | "requires": { | ||
12663 | "call-bind": "^1.0.2", | ||
12664 | "es-to-primitive": "^1.2.1", | ||
12665 | "function-bind": "^1.1.1", | ||
12666 | "get-intrinsic": "^1.0.2", | ||
12667 | "has": "^1.0.3", | ||
12668 | "has-symbols": "^1.0.1", | ||
12669 | "is-callable": "^1.2.2", | ||
12670 | "is-negative-zero": "^2.0.1", | ||
12671 | "is-regex": "^1.1.1", | ||
12672 | "object-inspect": "^1.9.0", | ||
12673 | "object-keys": "^1.1.1", | ||
12674 | "string.prototype.trimend": "^1.0.3", | ||
12675 | "string.prototype.trimstart": "^1.0.3" | ||
12676 | } | ||
12677 | }, | ||
12678 | "is-negative-zero": { | ||
12679 | "version": "2.0.1", | ||
12680 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.1.tgz", | ||
12681 | "integrity": "sha512-2z6JzQvZRa9A2Y7xC6dQQm4FSTSTNWjKIYYTt4246eMTJmIo0Q+ZyOsU66X8lxK1AbB92dFeglPLrhwpeRKO6w==" | ||
12682 | }, | ||
12683 | "object-inspect": { | ||
12684 | "version": "1.9.0", | ||
12685 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.9.0.tgz", | ||
12686 | "integrity": "sha512-i3Bp9iTqwhaLZBxGkRfo5ZbE07BQRT7MGu8+nNgwW9ItGp1TzCTw2DLEoWwjClxBjOFI/hWljTAmYGCEwmtnOw==" | ||
12687 | }, | ||
12688 | "object.assign": { | ||
12689 | "version": "4.1.2", | ||
12690 | "resolved": "https://registry.npmjs.org/object.assign/-/object.assign-4.1.2.tgz", | ||
12691 | "integrity": "sha512-ixT2L5THXsApyiUPYKmW+2EHpXXe5Ii3M+f4e+aJFAHao5amFRW6J0OO6c/LU8Be47utCx2GL89hxGB6XSmKuQ==", | ||
12692 | "requires": { | ||
12693 | "call-bind": "^1.0.0", | ||
12694 | "define-properties": "^1.1.3", | ||
12695 | "has-symbols": "^1.0.1", | ||
12696 | "object-keys": "^1.1.1" | ||
12697 | } | ||
12698 | }, | ||
12699 | "string.prototype.trimend": { | ||
12700 | "version": "1.0.3", | ||
12701 | "resolved": "https://registry.npmjs.org/string.prototype.trimend/-/string.prototype.trimend-1.0.3.tgz", | ||
12702 | "integrity": "sha512-ayH0pB+uf0U28CtjlLvL7NaohvR1amUvVZk+y3DYb0Ey2PUV5zPkkKy9+U1ndVEIXO8hNg18eIv9Jntbii+dKw==", | ||
12703 | "requires": { | ||
12704 | "call-bind": "^1.0.0", | ||
12705 | "define-properties": "^1.1.3" | ||
12706 | } | ||
12707 | }, | ||
12708 | "string.prototype.trimstart": { | ||
12709 | "version": "1.0.3", | ||
12710 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.3.tgz", | ||
12711 | "integrity": "sha512-oBIBUy5lea5tt0ovtOFiEQaBkoBBkyJhZXzJYrSmDo5IUUqbOPvVezuRs/agBIdZ2p2Eo1FD6bD9USyBLfl3xg==", | ||
12712 | "requires": { | ||
12713 | "call-bind": "^1.0.0", | ||
12714 | "define-properties": "^1.1.3" | ||
12715 | } | ||
12716 | } | ||
12717 | } | ||
12718 | } | ||
11779 | } | 12719 | } |
11780 | }, | 12720 | }, |
11781 | "es5-ext": { | 12721 | "es5-ext": { |
@@ -11840,6 +12780,12 @@ | |||
11840 | "es6-symbol": "^3.1.1" | 12780 | "es6-symbol": "^3.1.1" |
11841 | } | 12781 | } |
11842 | }, | 12782 | }, |
12783 | "escalade": { | ||
12784 | "version": "3.1.1", | ||
12785 | "resolved": "https://registry.npmjs.org/escalade/-/escalade-3.1.1.tgz", | ||
12786 | "integrity": "sha512-k0er2gUkLf8O0zKJiAhmkTnJlTvINGv7ygDNPbeIsX/TJjGJZHuh9B2UxbsaEkmlEo9MfhrSzmhIlhRlI2GXnw==", | ||
12787 | "dev": true | ||
12788 | }, | ||
11843 | "escape-goat": { | 12789 | "escape-goat": { |
11844 | "version": "2.1.1", | 12790 | "version": "2.1.1", |
11845 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", | 12791 | "resolved": "https://registry.npmjs.org/escape-goat/-/escape-goat-2.1.1.tgz", |
@@ -12859,21 +13805,6 @@ | |||
12859 | } | 13805 | } |
12860 | } | 13806 | } |
12861 | }, | 13807 | }, |
12862 | "ext": { | ||
12863 | "version": "1.4.0", | ||
12864 | "resolved": "https://registry.npmjs.org/ext/-/ext-1.4.0.tgz", | ||
12865 | "integrity": "sha512-Key5NIsUxdqKg3vIsdw9dSuXpPCQ297y6wBjL30edxwPgt2E44WcWBZey/ZvUc6sERLTxKdyCu4gZFmUbk1Q7A==", | ||
12866 | "requires": { | ||
12867 | "type": "^2.0.0" | ||
12868 | }, | ||
12869 | "dependencies": { | ||
12870 | "type": { | ||
12871 | "version": "2.1.0", | ||
12872 | "resolved": "https://registry.npmjs.org/type/-/type-2.1.0.tgz", | ||
12873 | "integrity": "sha512-G9absDWvhAWCV2gmF1zKud3OyC61nZDwWvBL2DApaVFogI07CprggiQAOOjvp2NRjYWFzPyu7vwtDrQFq8jeSA==" | ||
12874 | } | ||
12875 | } | ||
12876 | }, | ||
12877 | "ext-list": { | 13808 | "ext-list": { |
12878 | "version": "2.2.2", | 13809 | "version": "2.2.2", |
12879 | "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", | 13810 | "resolved": "https://registry.npmjs.org/ext-list/-/ext-list-2.2.2.tgz", |
@@ -13046,11 +13977,6 @@ | |||
13046 | "time-stamp": "^1.0.0" | 13977 | "time-stamp": "^1.0.0" |
13047 | } | 13978 | } |
13048 | }, | 13979 | }, |
13049 | "fast-deep-equal": { | ||
13050 | "version": "2.0.1", | ||
13051 | "resolved": "https://registry.npmjs.org/fast-deep-equal/-/fast-deep-equal-2.0.1.tgz", | ||
13052 | "integrity": "sha1-ewUhjd+WZ79/Nwv3/bLLFf3Qqkk=" | ||
13053 | }, | ||
13054 | "fast-glob": { | 13980 | "fast-glob": { |
13055 | "version": "2.2.7", | 13981 | "version": "2.2.7", |
13056 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", | 13982 | "resolved": "https://registry.npmjs.org/fast-glob/-/fast-glob-2.2.7.tgz", |
@@ -13107,27 +14033,6 @@ | |||
13107 | "bser": "^2.0.0" | 14033 | "bser": "^2.0.0" |
13108 | } | 14034 | } |
13109 | }, | 14035 | }, |
13110 | "fbjs": { | ||
13111 | "version": "0.8.17", | ||
13112 | "resolved": "https://registry.npmjs.org/fbjs/-/fbjs-0.8.17.tgz", | ||
13113 | "integrity": "sha1-xNWY6taUkRJlPWWIsBpc3Nn5D90=", | ||
13114 | "requires": { | ||
13115 | "core-js": "^1.0.0", | ||
13116 | "isomorphic-fetch": "^2.1.1", | ||
13117 | "loose-envify": "^1.0.0", | ||
13118 | "object-assign": "^4.1.0", | ||
13119 | "promise": "^7.1.1", | ||
13120 | "setimmediate": "^1.0.5", | ||
13121 | "ua-parser-js": "^0.7.18" | ||
13122 | }, | ||
13123 | "dependencies": { | ||
13124 | "core-js": { | ||
13125 | "version": "1.2.7", | ||
13126 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", | ||
13127 | "integrity": "sha1-ZSKUwUZR2yj6k70tX/KYOk8IxjY=" | ||
13128 | } | ||
13129 | } | ||
13130 | }, | ||
13131 | "fd-slicer": { | 14036 | "fd-slicer": { |
13132 | "version": "1.1.0", | 14037 | "version": "1.1.0", |
13133 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", | 14038 | "resolved": "https://registry.npmjs.org/fd-slicer/-/fd-slicer-1.1.0.tgz", |
@@ -13197,7 +14102,8 @@ | |||
13197 | "version": "2.0.0", | 14102 | "version": "2.0.0", |
13198 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", | 14103 | "resolved": "https://registry.npmjs.org/filename-reserved-regex/-/filename-reserved-regex-2.0.0.tgz", |
13199 | "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", | 14104 | "integrity": "sha1-q/c9+rc10EVECr/qLZHzieu/oik=", |
13200 | "dev": true | 14105 | "dev": true, |
14106 | "optional": true | ||
13201 | }, | 14107 | }, |
13202 | "filenamify": { | 14108 | "filenamify": { |
13203 | "version": "2.1.0", | 14109 | "version": "2.1.0", |
@@ -14368,6 +15274,23 @@ | |||
14368 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", | 15274 | "integrity": "sha512-3t6rVToeoZfYSGd8YoLFR2DJkiQrIiUrGcjvFX2mDw3bn6k2OtwHN0TNCLbBO+w8qTvimhDkv+LSscbJY1vE6w==", |
14369 | "dev": true | 15275 | "dev": true |
14370 | }, | 15276 | }, |
15277 | "get-intrinsic": { | ||
15278 | "version": "1.1.1", | ||
15279 | "resolved": "https://registry.npmjs.org/get-intrinsic/-/get-intrinsic-1.1.1.tgz", | ||
15280 | "integrity": "sha512-kWZrnVM42QCiEA2Ig1bG8zjoIMOgxWwYCEeNdwY6Tv/cOSeGpcoX4pXHfKUxNKVoArnrEr2e9srnAxxGIraS9Q==", | ||
15281 | "requires": { | ||
15282 | "function-bind": "^1.1.1", | ||
15283 | "has": "^1.0.3", | ||
15284 | "has-symbols": "^1.0.1" | ||
15285 | }, | ||
15286 | "dependencies": { | ||
15287 | "has-symbols": { | ||
15288 | "version": "1.0.1", | ||
15289 | "resolved": "https://registry.npmjs.org/has-symbols/-/has-symbols-1.0.1.tgz", | ||
15290 | "integrity": "sha512-PLcsoqu++dmEIZB+6totNFKq/7Do+Z0u4oT0zKOJNl3lYK6vGwwu2hjHs+68OEZbTjiUE9bgOABXbP/GvrS0Kg==" | ||
15291 | } | ||
15292 | } | ||
15293 | }, | ||
14371 | "get-pkg-repo": { | 15294 | "get-pkg-repo": { |
14372 | "version": "1.4.0", | 15295 | "version": "1.4.0", |
14373 | "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", | 15296 | "resolved": "https://registry.npmjs.org/get-pkg-repo/-/get-pkg-repo-1.4.0.tgz", |
@@ -14838,56 +15761,6 @@ | |||
14838 | } | 15761 | } |
14839 | } | 15762 | } |
14840 | }, | 15763 | }, |
14841 | "git-semver-tags": { | ||
14842 | "version": "3.0.1", | ||
14843 | "resolved": "https://registry.npmjs.org/git-semver-tags/-/git-semver-tags-3.0.1.tgz", | ||
14844 | "integrity": "sha512-Hzd1MOHXouITfCasrpVJbRDg9uvW7LfABk3GQmXYZByerBDrfrEMP9HXpNT7RxAbieiocP6u+xq20DkvjwxnCA==", | ||
14845 | "dev": true, | ||
14846 | "requires": { | ||
14847 | "meow": "^5.0.0", | ||
14848 | "semver": "^6.0.0" | ||
14849 | }, | ||
14850 | "dependencies": { | ||
14851 | "camelcase": { | ||
14852 | "version": "4.1.0", | ||
14853 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-4.1.0.tgz", | ||
14854 | "integrity": "sha1-1UVjW+HjPFQmScaRc+Xeas+uNN0=", | ||
14855 | "dev": true | ||
14856 | }, | ||
14857 | "meow": { | ||
14858 | "version": "5.0.0", | ||
14859 | "resolved": "https://registry.npmjs.org/meow/-/meow-5.0.0.tgz", | ||
14860 | "integrity": "sha512-CbTqYU17ABaLefO8vCU153ZZlprKYWDljcndKKDCFcYQITzWCXZAVk4QMFZPgvzrnUQ3uItnIE/LoUOwrT15Ig==", | ||
14861 | "dev": true, | ||
14862 | "requires": { | ||
14863 | "camelcase-keys": "^4.0.0", | ||
14864 | "decamelize-keys": "^1.0.0", | ||
14865 | "loud-rejection": "^1.0.0", | ||
14866 | "minimist-options": "^3.0.1", | ||
14867 | "normalize-package-data": "^2.3.4", | ||
14868 | "read-pkg-up": "^3.0.0", | ||
14869 | "redent": "^2.0.0", | ||
14870 | "trim-newlines": "^2.0.0", | ||
14871 | "yargs-parser": "^10.0.0" | ||
14872 | } | ||
14873 | }, | ||
14874 | "semver": { | ||
14875 | "version": "6.3.0", | ||
14876 | "resolved": "https://registry.npmjs.org/semver/-/semver-6.3.0.tgz", | ||
14877 | "integrity": "sha512-b39TBaTSfV6yBrapU89p5fKekE2m/NwnDocOVruQFS1/veMgdzuPcnOM34M6CwxW8jH/lxEa5rBoDeUwu5HHTw==", | ||
14878 | "dev": true | ||
14879 | }, | ||
14880 | "yargs-parser": { | ||
14881 | "version": "10.1.0", | ||
14882 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-10.1.0.tgz", | ||
14883 | "integrity": "sha512-VCIyR1wJoEBZUqk5PA+oOBF6ypbwh5aNB3I50guxAL/quggdfs4TtNHQrSazFA3fYZ+tEqfs0zIGlv0c/rgjbQ==", | ||
14884 | "dev": true, | ||
14885 | "requires": { | ||
14886 | "camelcase": "^4.1.0" | ||
14887 | } | ||
14888 | } | ||
14889 | } | ||
14890 | }, | ||
14891 | "git-up": { | 15764 | "git-up": { |
14892 | "version": "4.0.1", | 15765 | "version": "4.0.1", |
14893 | "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", | 15766 | "resolved": "https://registry.npmjs.org/git-up/-/git-up-4.0.1.tgz", |
@@ -15082,36 +15955,16 @@ | |||
15082 | }, | 15955 | }, |
15083 | "dependencies": { | 15956 | "dependencies": { |
15084 | "core-js": { | 15957 | "core-js": { |
15085 | "version": "3.8.3", | 15958 | "version": "3.6.5", |
15086 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.8.3.tgz", | 15959 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.6.5.tgz", |
15087 | "integrity": "sha512-KPYXeVZYemC2TkNEkX/01I+7yd+nX3KddKwZ1Ww7SKWdI2wQprSgLmrTddT8nw92AjEklTsPBoSdQBhbI1bQ6Q==", | 15960 | "integrity": "sha512-vZVEEwZoIsI+vPEuoF9Iqf5H7/M3eeQqWlQnYa8FSKKePuYTf5MWnxb5SDAzCa60b3JBRS5g9b+Dq7b1y/RCrA==", |
15088 | "dev": true, | 15961 | "dev": true, |
15089 | "optional": true | 15962 | "optional": true |
15090 | }, | 15963 | }, |
15091 | "lru-cache": { | ||
15092 | "version": "6.0.0", | ||
15093 | "resolved": "https://registry.npmjs.org/lru-cache/-/lru-cache-6.0.0.tgz", | ||
15094 | "integrity": "sha512-Jo6dJ04CmSjuznwJSS3pUeWmd/H0ffTlkXXgwZi+eq1UCmqQwCh+eLsYOYCwY991i2Fah4h1BEMCx4qThGbsiA==", | ||
15095 | "dev": true, | ||
15096 | "optional": true, | ||
15097 | "requires": { | ||
15098 | "yallist": "^4.0.0" | ||
15099 | } | ||
15100 | }, | ||
15101 | "semver": { | 15964 | "semver": { |
15102 | "version": "7.3.4", | 15965 | "version": "7.3.2", |
15103 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.4.tgz", | 15966 | "resolved": "https://registry.npmjs.org/semver/-/semver-7.3.2.tgz", |
15104 | "integrity": "sha512-tCfb2WLjqFAtXn4KEdxIhalnRtoKFN7nAwj0B3ZXCbQloV2tq5eDbcTmT68JJD3nRJq24/XgxtQKFIpQdtvmVw==", | 15967 | "integrity": "sha512-OrOb32TeeambH6UrhtShmF7CRDqhL6/5XpPNp2DuRH6+9QLw/orhp72j87v8Qa1ScDkvrrBNpZcDejAirJmfXQ==", |
15105 | "dev": true, | ||
15106 | "optional": true, | ||
15107 | "requires": { | ||
15108 | "lru-cache": "^6.0.0" | ||
15109 | } | ||
15110 | }, | ||
15111 | "yallist": { | ||
15112 | "version": "4.0.0", | ||
15113 | "resolved": "https://registry.npmjs.org/yallist/-/yallist-4.0.0.tgz", | ||
15114 | "integrity": "sha512-3wdGidZyq5PB084XLES5TpOSRA3wjXAlIWMhum2kRcv/41Sn2emQ0dycQW4uZXLejwKvg6EsvbdlVL+FYEct7A==", | ||
15115 | "dev": true, | 15968 | "dev": true, |
15116 | "optional": true | 15969 | "optional": true |
15117 | } | 15970 | } |
@@ -18443,8 +19296,7 @@ | |||
18443 | "is-negative-zero": { | 19296 | "is-negative-zero": { |
18444 | "version": "2.0.0", | 19297 | "version": "2.0.0", |
18445 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", | 19298 | "resolved": "https://registry.npmjs.org/is-negative-zero/-/is-negative-zero-2.0.0.tgz", |
18446 | "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=", | 19299 | "integrity": "sha1-lVOxIbD6wohp2p7UWeIMdUN4hGE=" |
18447 | "dev": true | ||
18448 | }, | 19300 | }, |
18449 | "is-npm": { | 19301 | "is-npm": { |
18450 | "version": "4.0.0", | 19302 | "version": "4.0.0", |
@@ -18550,8 +19402,7 @@ | |||
18550 | "is-promise": { | 19402 | "is-promise": { |
18551 | "version": "2.1.0", | 19403 | "version": "2.1.0", |
18552 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", | 19404 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.1.0.tgz", |
18553 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=", | 19405 | "integrity": "sha1-eaKp7OfwlugPNtKy87wWwf9L8/o=" |
18554 | "dev": true | ||
18555 | }, | 19406 | }, |
18556 | "is-regex": { | 19407 | "is-regex": { |
18557 | "version": "1.0.4", | 19408 | "version": "1.0.4", |
@@ -18609,15 +19460,6 @@ | |||
18609 | "has-symbols": "^1.0.0" | 19460 | "has-symbols": "^1.0.0" |
18610 | } | 19461 | } |
18611 | }, | 19462 | }, |
18612 | "is-text-path": { | ||
18613 | "version": "2.0.0", | ||
18614 | "resolved": "https://registry.npmjs.org/is-text-path/-/is-text-path-2.0.0.tgz", | ||
18615 | "integrity": "sha512-+oDTluR6WEjdXEJMnC2z6A4FRwFoYuvShVVEGsS7ewc0UTi2QtAKMDJuL4BDEVt+5T7MjFo12RP8ghOM75oKJw==", | ||
18616 | "dev": true, | ||
18617 | "requires": { | ||
18618 | "text-extensions": "^2.0.0" | ||
18619 | } | ||
18620 | }, | ||
18621 | "is-typedarray": { | 19463 | "is-typedarray": { |
18622 | "version": "1.0.0", | 19464 | "version": "1.0.0", |
18623 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", | 19465 | "resolved": "https://registry.npmjs.org/is-typedarray/-/is-typedarray-1.0.0.tgz", |
@@ -18681,26 +19523,6 @@ | |||
18681 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", | 19523 | "resolved": "https://registry.npmjs.org/isobject/-/isobject-3.0.1.tgz", |
18682 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" | 19524 | "integrity": "sha1-TkMekrEalzFjaqH5yNHMvP2reN8=" |
18683 | }, | 19525 | }, |
18684 | "isomorphic-fetch": { | ||
18685 | "version": "2.2.1", | ||
18686 | "resolved": "https://registry.npmjs.org/isomorphic-fetch/-/isomorphic-fetch-2.2.1.tgz", | ||
18687 | "integrity": "sha1-YRrhrPFPXoH3KVB0coGf6XM1WKk=", | ||
18688 | "requires": { | ||
18689 | "node-fetch": "^1.0.1", | ||
18690 | "whatwg-fetch": ">=0.10.0" | ||
18691 | }, | ||
18692 | "dependencies": { | ||
18693 | "node-fetch": { | ||
18694 | "version": "1.7.3", | ||
18695 | "resolved": "https://registry.npmjs.org/node-fetch/-/node-fetch-1.7.3.tgz", | ||
18696 | "integrity": "sha512-NhZ4CsKx7cYm2vSrBAr2PvFOe6sWDf0UYLRqA6svUYg7+/TSfVAu49jYC4BvQ4Sms9SZgdqGBgroqfDhJdTyKQ==", | ||
18697 | "requires": { | ||
18698 | "encoding": "^0.1.11", | ||
18699 | "is-stream": "^1.0.1" | ||
18700 | } | ||
18701 | } | ||
18702 | } | ||
18703 | }, | ||
18704 | "isstream": { | 19526 | "isstream": { |
18705 | "version": "0.1.2", | 19527 | "version": "0.1.2", |
18706 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", | 19528 | "resolved": "https://registry.npmjs.org/isstream/-/isstream-0.1.2.tgz", |
@@ -19475,9 +20297,9 @@ | |||
19475 | } | 20297 | } |
19476 | }, | 20298 | }, |
19477 | "js-base64": { | 20299 | "js-base64": { |
19478 | "version": "2.5.2", | 20300 | "version": "2.6.4", |
19479 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.5.2.tgz", | 20301 | "resolved": "https://registry.npmjs.org/js-base64/-/js-base64-2.6.4.tgz", |
19480 | "integrity": "sha512-Vg8czh0Q7sFBSUMWWArX/miJeBWYBPpdU/3M/DKSaekLMqrqVPaedp+5mZhie/r0lgrcaYBfwXatEew6gwgiQQ==", | 20302 | "integrity": "sha512-pZe//GGmwJndub7ZghVHz7vjb2LgC1m8B07Au3eYqeqv9emhESByMXxaEgkUkEqJe87oBbSniGYoQNIBklc7IQ==", |
19481 | "dev": true | 20303 | "dev": true |
19482 | }, | 20304 | }, |
19483 | "js-levenshtein": { | 20305 | "js-levenshtein": { |
@@ -19492,9 +20314,10 @@ | |||
19492 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" | 20314 | "integrity": "sha512-RdJUflcE3cUzKiMqQgsCu06FPu9UdIJO0beYbPhHN4k6apgJtifcoCtT9bcxOpYBtpD2kCM6Sbzg4CausW/PKQ==" |
19493 | }, | 20315 | }, |
19494 | "js-yaml": { | 20316 | "js-yaml": { |
19495 | "version": "3.13.1", | 20317 | "version": "3.12.1", |
19496 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.13.1.tgz", | 20318 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.12.1.tgz", |
19497 | "integrity": "sha512-YfbcO7jXDdyj0DGxYVSlSeQNHbD7XPWvrVWeVUujrQEoZzWJIRrCPoyk6kL6IAjAG2IolMK4T0hNUe0HOUs5Jw==", | 20319 | "integrity": "sha512-um46hB9wNOKlwkHgiuyEVAybXBjwFUV0Z/RaHJblRd9DXltue9FTYvzCr9ErQrK9Adz5MU4gHWVaNUfdmrC8qA==", |
20320 | "dev": true, | ||
19498 | "requires": { | 20321 | "requires": { |
19499 | "argparse": "^1.0.7", | 20322 | "argparse": "^1.0.7", |
19500 | "esprima": "^4.0.0" | 20323 | "esprima": "^4.0.0" |
@@ -20847,15 +21670,20 @@ | |||
20847 | }, | 21670 | }, |
20848 | "dependencies": { | 21671 | "dependencies": { |
20849 | "cross-spawn": { | 21672 | "cross-spawn": { |
20850 | "version": "7.0.2", | 21673 | "version": "7.0.1", |
20851 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.2.tgz", | 21674 | "resolved": "https://registry.npmjs.org/cross-spawn/-/cross-spawn-7.0.1.tgz", |
20852 | "integrity": "sha512-PD6G8QG3S4FK/XCGFbEQrDqO2AnMMsy0meR7lerlIOHAAbkuavGU/pOqprrlvfTNjvowivTeBsjebAL0NSoMxw==", | 21675 | "integrity": "sha512-u7v4o84SwFpD32Z8IIcPZ6z1/ie24O6RU3RbtL5Y316l3KuHVPx9ItBgWQ6VlfAFnRnTtMUrsQ9MUUTuEZjogg==", |
20853 | "requires": { | 21676 | "requires": { |
20854 | "path-key": "^3.1.0", | 21677 | "path-key": "^3.1.0", |
20855 | "shebang-command": "^2.0.0", | 21678 | "shebang-command": "^2.0.0", |
20856 | "which": "^2.0.1" | 21679 | "which": "^2.0.1" |
20857 | } | 21680 | } |
20858 | }, | 21681 | }, |
21682 | "electron-is-dev": { | ||
21683 | "version": "1.1.0", | ||
21684 | "resolved": "https://registry.npmjs.org/electron-is-dev/-/electron-is-dev-1.1.0.tgz", | ||
21685 | "integrity": "sha512-Z1qA/1oHNowGtSBIcWk0pcLEqYT/j+13xUw/MYOrBUOL4X7VN0i0KCTf5SqyvMPmW5pSPKbo28wkxMxzZ20YnQ==" | ||
21686 | }, | ||
20859 | "electron-util": { | 21687 | "electron-util": { |
20860 | "version": "0.13.1", | 21688 | "version": "0.13.1", |
20861 | "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.13.1.tgz", | 21689 | "resolved": "https://registry.npmjs.org/electron-util/-/electron-util-0.13.1.tgz", |
@@ -20899,6 +21727,11 @@ | |||
20899 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", | 21727 | "resolved": "https://registry.npmjs.org/merge-stream/-/merge-stream-2.0.0.tgz", |
20900 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" | 21728 | "integrity": "sha512-abv/qOcuPfk3URPfDzmZU1LKmuw8kT+0nIHvKrKgFrwifol/doWcdA4ZqsWQ8ENrFKkd67Mfpo/LovbIUsbt3w==" |
20901 | }, | 21729 | }, |
21730 | "mimic-fn": { | ||
21731 | "version": "2.1.0", | ||
21732 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | ||
21733 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" | ||
21734 | }, | ||
20902 | "npm-run-path": { | 21735 | "npm-run-path": { |
20903 | "version": "3.1.0", | 21736 | "version": "3.1.0", |
20904 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", | 21737 | "resolved": "https://registry.npmjs.org/npm-run-path/-/npm-run-path-3.1.0.tgz", |
@@ -21208,56 +22041,18 @@ | |||
21208 | } | 22041 | } |
21209 | }, | 22042 | }, |
21210 | "memoizee": { | 22043 | "memoizee": { |
21211 | "version": "0.4.15", | 22044 | "version": "0.4.14", |
21212 | "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.15.tgz", | 22045 | "resolved": "https://registry.npmjs.org/memoizee/-/memoizee-0.4.14.tgz", |
21213 | "integrity": "sha512-UBWmJpLZd5STPm7PMUlOw/TSy972M+z8gcyQ5veOnSDRREz/0bmpyTfKt3/51DhEBqCZQn1udM/5flcSPYhkdQ==", | 22046 | "integrity": "sha512-/SWFvWegAIYAO4NQMpcX+gcra0yEZu4OntmUdrBaWrJncxOqAziGFlHxc7yjKVK2uu3lpPW27P27wkR82wA8mg==", |
21214 | "requires": { | 22047 | "requires": { |
21215 | "d": "^1.0.1", | 22048 | "d": "1", |
21216 | "es5-ext": "^0.10.53", | 22049 | "es5-ext": "^0.10.45", |
21217 | "es6-weak-map": "^2.0.3", | 22050 | "es6-weak-map": "^2.0.2", |
21218 | "event-emitter": "^0.3.5", | 22051 | "event-emitter": "^0.3.5", |
21219 | "is-promise": "^2.2.2", | 22052 | "is-promise": "^2.1", |
21220 | "lru-queue": "^0.1.0", | 22053 | "lru-queue": "0.1", |
21221 | "next-tick": "^1.1.0", | 22054 | "next-tick": "1", |
21222 | "timers-ext": "^0.1.7" | 22055 | "timers-ext": "^0.1.5" |
21223 | }, | ||
21224 | "dependencies": { | ||
21225 | "es5-ext": { | ||
21226 | "version": "0.10.53", | ||
21227 | "resolved": "https://registry.npmjs.org/es5-ext/-/es5-ext-0.10.53.tgz", | ||
21228 | "integrity": "sha512-Xs2Stw6NiNHWypzRTY1MtaG/uJlwCk8kH81920ma8mvN8Xq1gsfhZvpkImLQArw8AHnv8MT2I45J3c0R8slE+Q==", | ||
21229 | "requires": { | ||
21230 | "es6-iterator": "~2.0.3", | ||
21231 | "es6-symbol": "~3.1.3", | ||
21232 | "next-tick": "~1.0.0" | ||
21233 | }, | ||
21234 | "dependencies": { | ||
21235 | "next-tick": { | ||
21236 | "version": "1.0.0", | ||
21237 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.0.0.tgz", | ||
21238 | "integrity": "sha1-yobR/ogoFpsBICCOPchCS524NCw=" | ||
21239 | } | ||
21240 | } | ||
21241 | }, | ||
21242 | "es6-symbol": { | ||
21243 | "version": "3.1.3", | ||
21244 | "resolved": "https://registry.npmjs.org/es6-symbol/-/es6-symbol-3.1.3.tgz", | ||
21245 | "integrity": "sha512-NJ6Yn3FuDinBaBRWl/q5X/s4koRHBrgKAu+yGI6JCBeiu3qrcbJhwT2GeR/EXVfylRk8dpQVJoLEFhK+Mu31NA==", | ||
21246 | "requires": { | ||
21247 | "d": "^1.0.1", | ||
21248 | "ext": "^1.1.2" | ||
21249 | } | ||
21250 | }, | ||
21251 | "is-promise": { | ||
21252 | "version": "2.2.2", | ||
21253 | "resolved": "https://registry.npmjs.org/is-promise/-/is-promise-2.2.2.tgz", | ||
21254 | "integrity": "sha512-+lP4/6lKUBfQjZ2pdxThZvLUAafmZb8OAxFb8XXtiQmS35INgr85hdOGoEs124ez1FCnZJt6jau/T+alh58QFQ==" | ||
21255 | }, | ||
21256 | "next-tick": { | ||
21257 | "version": "1.1.0", | ||
21258 | "resolved": "https://registry.npmjs.org/next-tick/-/next-tick-1.1.0.tgz", | ||
21259 | "integrity": "sha512-CXdUiJembsNjuToQvxayPZF9Vqht7hewsvy2sOWafLvi2awflj9mOC6bHIg50orX8IJvWKY9wYQ/zB2kogPslQ==" | ||
21260 | } | ||
21261 | } | 22056 | } |
21262 | }, | 22057 | }, |
21263 | "memory-fs": { | 22058 | "memory-fs": { |
@@ -21449,7 +22244,8 @@ | |||
21449 | "mimic-fn": { | 22244 | "mimic-fn": { |
21450 | "version": "2.1.0", | 22245 | "version": "2.1.0", |
21451 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", | 22246 | "resolved": "https://registry.npmjs.org/mimic-fn/-/mimic-fn-2.1.0.tgz", |
21452 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==" | 22247 | "integrity": "sha512-OqbOk5oEQeAZ8WXWydlu9HJjz9WVdEIvamMCcXmuqUYjTknH/sqsWvhQ3vgwKFRR1HpjvNBKQ37nbJgYzGqGcg==", |
22248 | "dev": true | ||
21453 | }, | 22249 | }, |
21454 | "mimic-response": { | 22250 | "mimic-response": { |
21455 | "version": "1.0.1", | 22251 | "version": "1.0.1", |
@@ -21968,33 +22764,43 @@ | |||
21968 | } | 22764 | } |
21969 | }, | 22765 | }, |
21970 | "node-abi": { | 22766 | "node-abi": { |
21971 | "version": "2.18.0", | 22767 | "version": "2.19.1", |
21972 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.18.0.tgz", | 22768 | "resolved": "https://registry.npmjs.org/node-abi/-/node-abi-2.19.1.tgz", |
21973 | "integrity": "sha512-yi05ZoiuNNEbyT/xXfSySZE+yVnQW6fxPZuFbLyS1s6b5Kw3HzV2PHOM4XR+nsjzkHxByK+2Wg+yCQbe35l8dw==", | 22769 | "integrity": "sha512-HbtmIuByq44yhAzK7b9j/FelKlHYISKQn0mtvcBrU5QBkhoCMp5bu8Hv5AI34DcKfOAcJBcOEMwLlwO62FFu9A==", |
21974 | "dev": true, | 22770 | "dev": true, |
21975 | "requires": { | 22771 | "requires": { |
21976 | "semver": "^5.4.1" | 22772 | "semver": "^5.4.1" |
21977 | } | 22773 | } |
21978 | }, | 22774 | }, |
22775 | "node-addon-api": { | ||
22776 | "version": "3.0.2", | ||
22777 | "resolved": "https://registry.npmjs.org/node-addon-api/-/node-addon-api-3.0.2.tgz", | ||
22778 | "integrity": "sha512-+D4s2HCnxPd5PjjI0STKwncjXTUKKqm74MDMz9OPXavjsGmjkvwgLtA5yoxJUdmpj52+2u+RrXgPipahKczMKg==" | ||
22779 | }, | ||
21979 | "node-cookie": { | 22780 | "node-cookie": { |
21980 | "version": "2.1.1", | 22781 | "version": "2.1.2", |
21981 | "resolved": "https://registry.npmjs.org/node-cookie/-/node-cookie-2.1.1.tgz", | 22782 | "resolved": "https://registry.npmjs.org/node-cookie/-/node-cookie-2.1.2.tgz", |
21982 | "integrity": "sha512-NZG0AxjfMT7N421HUvgOu4ilLin2GpzUnHrETT3k8UyytQTnEWBH6KOyAP9LoMEeu+CvUdwMB5w4ZK3pohjswg==", | 22783 | "integrity": "sha512-8/k8V9/2hCESYMmNVtJiHweKlP1ZqjrzG3bv+cSooiWurHB6N7KqVdX/s7ojbBXTwOJrLKJzC9rlPRvFRYuKRA==", |
21983 | "requires": { | 22784 | "requires": { |
21984 | "cookie": "^0.3.1", | 22785 | "cookie": "^0.4.0", |
21985 | "cookie-signature": "^1.1.0", | 22786 | "cookie-signature": "^1.1.0", |
21986 | "simple-encryptor": "^1.4.0" | 22787 | "simple-encryptor": "^3.0.0" |
21987 | }, | 22788 | }, |
21988 | "dependencies": { | 22789 | "dependencies": { |
22790 | "cookie": { | ||
22791 | "version": "0.4.1", | ||
22792 | "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.4.1.tgz", | ||
22793 | "integrity": "sha512-ZwrFkGJxUR3EIoXtO+yVE69Eb7KlixbaeAWfBQB9vVsNn/o+Yw69gBWSSDK825hQNdN+wF8zELf3dFNl/kxkUA==" | ||
22794 | }, | ||
21989 | "cookie-signature": { | 22795 | "cookie-signature": { |
21990 | "version": "1.1.0", | 22796 | "version": "1.1.0", |
21991 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.1.0.tgz", | 22797 | "resolved": "https://registry.npmjs.org/cookie-signature/-/cookie-signature-1.1.0.tgz", |
21992 | "integrity": "sha512-Alvs19Vgq07eunykd3Xy2jF0/qSNv2u7KDbAek9H5liV1UMijbqFs5cycZvv5dVsvseT/U4H8/7/w8Koh35C4A==" | 22798 | "integrity": "sha512-Alvs19Vgq07eunykd3Xy2jF0/qSNv2u7KDbAek9H5liV1UMijbqFs5cycZvv5dVsvseT/U4H8/7/w8Koh35C4A==" |
21993 | }, | 22799 | }, |
21994 | "simple-encryptor": { | 22800 | "simple-encryptor": { |
21995 | "version": "1.4.0", | 22801 | "version": "3.0.0", |
21996 | "resolved": "https://registry.npmjs.org/simple-encryptor/-/simple-encryptor-1.4.0.tgz", | 22802 | "resolved": "https://registry.npmjs.org/simple-encryptor/-/simple-encryptor-3.0.0.tgz", |
21997 | "integrity": "sha512-g7UhXQ6flzimqzoaDqjGl5hBh4/+tJ4dtAIHaWhO9gtt+GkLRb3F/Xjv//XORFstkNxA+CFVzZJCLhs24NmrSQ==", | 22803 | "integrity": "sha512-xRgj9pU3Gfkl+6iBYRoXM4BdEwY4bLdL1W0tp7AjGTA7Hytv5iwmB5tvJh6K2iVszvPPYimQjLFV8jRZz3fJ1g==", |
21998 | "requires": { | 22804 | "requires": { |
21999 | "scmp": "2.0.0" | 22805 | "scmp": "2.0.0" |
22000 | } | 22806 | } |
@@ -22398,9 +23204,9 @@ | |||
22398 | } | 23204 | } |
22399 | }, | 23205 | }, |
22400 | "node-sass": { | 23206 | "node-sass": { |
22401 | "version": "4.14.0", | 23207 | "version": "4.14.1", |
22402 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.0.tgz", | 23208 | "resolved": "https://registry.npmjs.org/node-sass/-/node-sass-4.14.1.tgz", |
22403 | "integrity": "sha512-AxqU+DFpk0lEz95sI6jO0hU0Rwyw7BXVEv6o9OItoXLyeygPeaSpiV4rwQb10JiTghHaa0gZeD21sz+OsQluaw==", | 23209 | "integrity": "sha512-sjCuOlvGyCJS40R8BscF5vhVlQjNN069NtQ1gSxyK1u9iqvn6tf7O1R4GNowVZfiZUCRt5MmMs1xd+4V/7Yr0g==", |
22404 | "dev": true, | 23210 | "dev": true, |
22405 | "requires": { | 23211 | "requires": { |
22406 | "async-foreach": "^0.1.3", | 23212 | "async-foreach": "^0.1.3", |
@@ -22417,7 +23223,7 @@ | |||
22417 | "node-gyp": "^3.8.0", | 23223 | "node-gyp": "^3.8.0", |
22418 | "npmlog": "^4.0.0", | 23224 | "npmlog": "^4.0.0", |
22419 | "request": "^2.88.0", | 23225 | "request": "^2.88.0", |
22420 | "sass-graph": "^2.2.4", | 23226 | "sass-graph": "2.2.5", |
22421 | "stdout-stream": "^1.4.0", | 23227 | "stdout-stream": "^1.4.0", |
22422 | "true-case-path": "^1.0.2" | 23228 | "true-case-path": "^1.0.2" |
22423 | }, | 23229 | }, |
@@ -22505,6 +23311,12 @@ | |||
22505 | "strip-bom": "^2.0.0" | 23311 | "strip-bom": "^2.0.0" |
22506 | } | 23312 | } |
22507 | }, | 23313 | }, |
23314 | "lodash": { | ||
23315 | "version": "4.17.20", | ||
23316 | "resolved": "https://registry.npmjs.org/lodash/-/lodash-4.17.20.tgz", | ||
23317 | "integrity": "sha512-PlhdFcillOINfeV7Ni6oF1TAEayyZBoZ8bcshTHqOYJYlrqzRK5hagpagky5o4HfCzzd1TRkXPMFq6cKk9rGmA==", | ||
23318 | "dev": true | ||
23319 | }, | ||
22508 | "map-obj": { | 23320 | "map-obj": { |
22509 | "version": "1.0.1", | 23321 | "version": "1.0.1", |
22510 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", | 23322 | "resolved": "https://registry.npmjs.org/map-obj/-/map-obj-1.0.1.tgz", |
@@ -22535,6 +23347,12 @@ | |||
22535 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", | 23347 | "integrity": "sha512-FM9nNUYrRBAELZQT3xeZQ7fmMOBg6nWNmJKTcgsJeaLstP/UODVpGsr5OhXhhXg6f+qtJ8uiZ+PUxkDWcgIXLw==", |
22536 | "dev": true | 23348 | "dev": true |
22537 | }, | 23349 | }, |
23350 | "nan": { | ||
23351 | "version": "2.14.1", | ||
23352 | "resolved": "https://registry.npmjs.org/nan/-/nan-2.14.1.tgz", | ||
23353 | "integrity": "sha512-isWHgVjnFjh2x2yuJ/tj3JbwoHu3UC2dX5G/88Cm24yB6YopVgxvBObDY7n5xW6ExmFhJpSEQqFPvq9zaXc8Jw==", | ||
23354 | "dev": true | ||
23355 | }, | ||
22538 | "node-gyp": { | 23356 | "node-gyp": { |
22539 | "version": "3.8.0", | 23357 | "version": "3.8.0", |
22540 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", | 23358 | "resolved": "https://registry.npmjs.org/node-gyp/-/node-gyp-3.8.0.tgz", |
@@ -22899,12 +23717,6 @@ | |||
22899 | "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", | 23717 | "integrity": "sha512-OSuu/pU4ENM9kmREg0BdNrUDIl1heYa4mBZacJc+vVWz4GtAwu7jO8s4AIt2aGRUTqxykpWzI3Oqnsm13tTMDA==", |
22900 | "dev": true | 23718 | "dev": true |
22901 | }, | 23719 | }, |
22902 | "object-inspect": { | ||
22903 | "version": "1.6.0", | ||
22904 | "resolved": "https://registry.npmjs.org/object-inspect/-/object-inspect-1.6.0.tgz", | ||
22905 | "integrity": "sha512-GJzfBZ6DgDAmnuaM3104jR4s1Myxr3Y3zfIyN4z3UdqN69oSRacNK8UhnobDdC+7J2AHCjGwxQubNJfE70SXXQ==", | ||
22906 | "dev": true | ||
22907 | }, | ||
22908 | "object-is": { | 23720 | "object-is": { |
22909 | "version": "1.0.1", | 23721 | "version": "1.0.1", |
22910 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", | 23722 | "resolved": "https://registry.npmjs.org/object-is/-/object-is-1.0.1.tgz", |
@@ -23542,9 +24354,9 @@ | |||
23542 | } | 24354 | } |
23543 | }, | 24355 | }, |
23544 | "pako": { | 24356 | "pako": { |
23545 | "version": "1.0.10", | 24357 | "version": "1.0.8", |
23546 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.10.tgz", | 24358 | "resolved": "https://registry.npmjs.org/pako/-/pako-1.0.8.tgz", |
23547 | "integrity": "sha512-0DTvPVU3ed8+HNXOu5Bs+o//Mbdj9VNQMUOe9oKCwh8l0GNwpTDMKCWbRjgtD291AWnkAgkqA/LOnQS8AmS1tw==", | 24359 | "integrity": "sha512-6i0HVbUfcKaTv+EG8ZTr75az7GFXcLYk9UyLEg7Notv/Ma+z/UG3TCoz6GiNeOrn1E/e63I0X/Hpw18jHOTUnA==", |
23548 | "dev": true | 24360 | "dev": true |
23549 | }, | 24361 | }, |
23550 | "parallel-transform": { | 24362 | "parallel-transform": { |
@@ -24081,9 +24893,9 @@ | |||
24081 | "dev": true | 24893 | "dev": true |
24082 | }, | 24894 | }, |
24083 | "process-nextick-args": { | 24895 | "process-nextick-args": { |
24084 | "version": "2.0.1", | 24896 | "version": "2.0.0", |
24085 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.1.tgz", | 24897 | "resolved": "https://registry.npmjs.org/process-nextick-args/-/process-nextick-args-2.0.0.tgz", |
24086 | "integrity": "sha512-3ouUOpQhtgrbOa17J7+uxOTpITYWaGP7/AhoR3+A+/1e9skrzelGi/dXzEYyvbxubEF6Wn2ypscTKiKJFFn1ag==" | 24898 | "integrity": "sha512-MtEC1TqN0EU5nephaJ4rAtThHtC86dNN9qCuEhtshvpVBkAW5ZO7BASN9REnF9eoXGcRub+pFuKEpOHE+HbEMw==" |
24087 | }, | 24899 | }, |
24088 | "progress": { | 24900 | "progress": { |
24089 | "version": "2.0.3", | 24901 | "version": "2.0.3", |
@@ -24091,14 +24903,6 @@ | |||
24091 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", | 24903 | "integrity": "sha512-7PiHtLll5LdnKIMw100I+8xJXR5gW2QwWYkT6iJva0bXitZKa/XMrSbdmg3r2Xnaidz9Qumd0VPaMrZlF9V9sA==", |
24092 | "dev": true | 24904 | "dev": true |
24093 | }, | 24905 | }, |
24094 | "promise": { | ||
24095 | "version": "7.3.1", | ||
24096 | "resolved": "https://registry.npmjs.org/promise/-/promise-7.3.1.tgz", | ||
24097 | "integrity": "sha512-nolQXZ/4L+bP/UGlkfaIujX9BKxGwmQ9OT4mOt5yvy8iK1h3wqTEJCijzGANTCCl9nWjY41juyAn2K3Q1hLLTg==", | ||
24098 | "requires": { | ||
24099 | "asap": "~2.0.3" | ||
24100 | } | ||
24101 | }, | ||
24102 | "promise-inflight": { | 24906 | "promise-inflight": { |
24103 | "version": "1.0.1", | 24907 | "version": "1.0.1", |
24104 | "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", | 24908 | "resolved": "https://registry.npmjs.org/promise-inflight/-/promise-inflight-1.0.1.tgz", |
@@ -24395,6 +25199,11 @@ | |||
24395 | "prompt-base": "^4.0.2" | 25199 | "prompt-base": "^4.0.2" |
24396 | }, | 25200 | }, |
24397 | "dependencies": { | 25201 | "dependencies": { |
25202 | "ansi-regex": { | ||
25203 | "version": "4.1.0", | ||
25204 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", | ||
25205 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==" | ||
25206 | }, | ||
24398 | "debug": { | 25207 | "debug": { |
24399 | "version": "2.6.9", | 25208 | "version": "2.6.9", |
24400 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", | 25209 | "resolved": "https://registry.npmjs.org/debug/-/debug-2.6.9.tgz", |
@@ -24407,6 +25216,11 @@ | |||
24407 | "version": "2.0.0", | 25216 | "version": "2.0.0", |
24408 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", | 25217 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.0.0.tgz", |
24409 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" | 25218 | "integrity": "sha1-VgiurfwAvmwpAd9fmGF4jeDVl8g=" |
25219 | }, | ||
25220 | "react-is": { | ||
25221 | "version": "16.8.6", | ||
25222 | "resolved": "https://registry.npmjs.org/react-is/-/react-is-16.8.6.tgz", | ||
25223 | "integrity": "sha512-aUk3bHfZ2bRSVFFbbeVS4i+lNPZr3/WM5jT2J5omUVV1zzcs1nAaf3l51ctA5FFvCRbhrH0bdAsRRQddFJZPtA==" | ||
24410 | } | 25224 | } |
24411 | } | 25225 | } |
24412 | }, | 25226 | }, |
@@ -24478,9 +25292,9 @@ | |||
24478 | }, | 25292 | }, |
24479 | "dependencies": { | 25293 | "dependencies": { |
24480 | "kind-of": { | 25294 | "kind-of": { |
24481 | "version": "6.0.2", | 25295 | "version": "6.0.3", |
24482 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | 25296 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", |
24483 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" | 25297 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" |
24484 | } | 25298 | } |
24485 | } | 25299 | } |
24486 | }, | 25300 | }, |
@@ -24493,9 +25307,9 @@ | |||
24493 | }, | 25307 | }, |
24494 | "dependencies": { | 25308 | "dependencies": { |
24495 | "kind-of": { | 25309 | "kind-of": { |
24496 | "version": "6.0.2", | 25310 | "version": "6.0.3", |
24497 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | 25311 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", |
24498 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" | 25312 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" |
24499 | } | 25313 | } |
24500 | } | 25314 | } |
24501 | }, | 25315 | }, |
@@ -24510,9 +25324,9 @@ | |||
24510 | }, | 25324 | }, |
24511 | "dependencies": { | 25325 | "dependencies": { |
24512 | "kind-of": { | 25326 | "kind-of": { |
24513 | "version": "6.0.2", | 25327 | "version": "6.0.3", |
24514 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.2.tgz", | 25328 | "resolved": "https://registry.npmjs.org/kind-of/-/kind-of-6.0.3.tgz", |
24515 | "integrity": "sha512-s5kLOcnH0XqDO+FvuaLX8DDjZ18CGFk7VygH40QoKPUQhW4e2rvM0rwUq0t8IQDOwYSeLK01U90OjzBTme2QqA==" | 25329 | "integrity": "sha512-dcS1ul+9tmeD95T+x28/ehLgd9mENa3LsvDTtzm3vyBEO7RPptvAD+t44WVXaUjTBRcrpFeFlC8WCruUR456hw==" |
24516 | } | 25330 | } |
24517 | } | 25331 | } |
24518 | }, | 25332 | }, |
@@ -25212,6 +26026,16 @@ | |||
25212 | "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", | 26026 | "integrity": "sha512-8sJ78ElpbDJBHNeBzUbUVLsqKdccaa/BXF1uPTw3GrvQTBgrQrtObr2mUrE38vzYd8cEv+m/JBfDLioYcfXoaw==", |
25213 | "dev": true | 26027 | "dev": true |
25214 | }, | 26028 | }, |
26029 | "js-yaml": { | ||
26030 | "version": "3.14.0", | ||
26031 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", | ||
26032 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", | ||
26033 | "dev": true, | ||
26034 | "requires": { | ||
26035 | "argparse": "^1.0.7", | ||
26036 | "esprima": "^4.0.0" | ||
26037 | } | ||
26038 | }, | ||
25215 | "json5": { | 26039 | "json5": { |
25216 | "version": "2.1.3", | 26040 | "version": "2.1.3", |
25217 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", | 26041 | "resolved": "https://registry.npmjs.org/json5/-/json5-2.1.3.tgz", |
@@ -25995,9 +26819,9 @@ | |||
25995 | "dev": true | 26819 | "dev": true |
25996 | }, | 26820 | }, |
25997 | "rimraf": { | 26821 | "rimraf": { |
25998 | "version": "2.7.1", | 26822 | "version": "2.6.3", |
25999 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.7.1.tgz", | 26823 | "resolved": "https://registry.npmjs.org/rimraf/-/rimraf-2.6.3.tgz", |
26000 | "integrity": "sha512-uWjbaKIK3T1OSVptzX7Nl6PvQ3qAGtKEtVRjRuazjfL3Bx5eI409VZSqgND+4UNnmzLVdPj9FqFJNPqBZFve4w==", | 26824 | "integrity": "sha512-mwqeW5XsA2qAejG46gYdENaxXjx9onRNCfn7L0duuP4hCuTIi/QO7PDK07KJfp1d+izWPrzEJDcSqBa0OZQriA==", |
26001 | "requires": { | 26825 | "requires": { |
26002 | "glob": "^7.1.3" | 26826 | "glob": "^7.1.3" |
26003 | } | 26827 | } |
@@ -26150,221 +26974,103 @@ | |||
26150 | } | 26974 | } |
26151 | }, | 26975 | }, |
26152 | "sass-graph": { | 26976 | "sass-graph": { |
26153 | "version": "2.2.4", | 26977 | "version": "2.2.5", |
26154 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.4.tgz", | 26978 | "resolved": "https://registry.npmjs.org/sass-graph/-/sass-graph-2.2.5.tgz", |
26155 | "integrity": "sha1-E/vWPNHK8JCLn9k0dq1DpR0eC0k=", | 26979 | "integrity": "sha512-VFWDAHOe6mRuT4mZRd4eKE+d8Uedrk6Xnh7Sh9b4NGufQLQjOrvf/MQoOdx+0s92L89FeyUUNfU597j/3uNpag==", |
26156 | "dev": true, | 26980 | "dev": true, |
26157 | "requires": { | 26981 | "requires": { |
26158 | "glob": "^7.0.0", | 26982 | "glob": "^7.0.0", |
26159 | "lodash": "^4.0.0", | 26983 | "lodash": "^4.0.0", |
26160 | "scss-tokenizer": "^0.2.3", | 26984 | "scss-tokenizer": "^0.2.3", |
26161 | "yargs": "^7.0.0" | 26985 | "yargs": "^13.3.2" |
26162 | }, | 26986 | }, |
26163 | "dependencies": { | 26987 | "dependencies": { |
26164 | "ansi-regex": { | 26988 | "ansi-regex": { |
26165 | "version": "2.1.1", | 26989 | "version": "4.1.0", |
26166 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-2.1.1.tgz", | 26990 | "resolved": "https://registry.npmjs.org/ansi-regex/-/ansi-regex-4.1.0.tgz", |
26167 | "integrity": "sha1-w7M6te42DYbg5ijwRorn7yfWVN8=", | 26991 | "integrity": "sha512-1apePfXM1UOSqw0o9IiFAovVz9M5S1Dg+4TrDwfMewQ6p/rmMueb7tWZjQ1rx4Loy1ArBggoqGpfqqdI4rondg==", |
26168 | "dev": true | ||
26169 | }, | ||
26170 | "camelcase": { | ||
26171 | "version": "3.0.0", | ||
26172 | "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-3.0.0.tgz", | ||
26173 | "integrity": "sha1-MvxLn82vhF/N9+c7uXysImHwqwo=", | ||
26174 | "dev": true | 26992 | "dev": true |
26175 | }, | 26993 | }, |
26176 | "cliui": { | 26994 | "cliui": { |
26177 | "version": "3.2.0", | 26995 | "version": "5.0.0", |
26178 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-3.2.0.tgz", | 26996 | "resolved": "https://registry.npmjs.org/cliui/-/cliui-5.0.0.tgz", |
26179 | "integrity": "sha1-EgYBU3qRbSmUD5NNo7SNWFo5IT0=", | 26997 | "integrity": "sha512-PYeGSEmmHM6zvoef2w8TPzlrnNpXIjTipYK780YswmIP9vjxmd6Y2a3CB2Ks6/AU8NHjZugXvo8w3oWM2qnwXA==", |
26180 | "dev": true, | ||
26181 | "requires": { | ||
26182 | "string-width": "^1.0.1", | ||
26183 | "strip-ansi": "^3.0.1", | ||
26184 | "wrap-ansi": "^2.0.0" | ||
26185 | } | ||
26186 | }, | ||
26187 | "find-up": { | ||
26188 | "version": "1.1.2", | ||
26189 | "resolved": "https://registry.npmjs.org/find-up/-/find-up-1.1.2.tgz", | ||
26190 | "integrity": "sha1-ay6YIrGizgpgq2TWEOzK1TyyTQ8=", | ||
26191 | "dev": true, | 26998 | "dev": true, |
26192 | "requires": { | 26999 | "requires": { |
26193 | "path-exists": "^2.0.0", | 27000 | "string-width": "^3.1.0", |
26194 | "pinkie-promise": "^2.0.0" | 27001 | "strip-ansi": "^5.2.0", |
27002 | "wrap-ansi": "^5.1.0" | ||
26195 | } | 27003 | } |
26196 | }, | 27004 | }, |
26197 | "invert-kv": { | 27005 | "get-caller-file": { |
26198 | "version": "1.0.0", | 27006 | "version": "2.0.5", |
26199 | "resolved": "https://registry.npmjs.org/invert-kv/-/invert-kv-1.0.0.tgz", | 27007 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", |
26200 | "integrity": "sha1-EEqOSqym09jNFXqO+L+rLXo//bY=", | 27008 | "integrity": "sha512-DyFP3BM/3YHTQOCUL/w0OZHR0lpKeGrxotcHWcqNEdnltqFwXVfhEBQ94eIo34AfQpo0rGki4cyIiftY06h2Fg==", |
26201 | "dev": true | 27009 | "dev": true |
26202 | }, | 27010 | }, |
26203 | "is-fullwidth-code-point": { | 27011 | "require-main-filename": { |
26204 | "version": "1.0.0", | 27012 | "version": "2.0.0", |
26205 | "resolved": "https://registry.npmjs.org/is-fullwidth-code-point/-/is-fullwidth-code-point-1.0.0.tgz", | 27013 | "resolved": "https://registry.npmjs.org/require-main-filename/-/require-main-filename-2.0.0.tgz", |
26206 | "integrity": "sha1-754xOG8DGn8NZDr4L95QxFfvAMs=", | 27014 | "integrity": "sha512-NKN5kMDylKuldxYLSUfrbo5Tuzh4hd+2E8NPPX02mZtn1VuREQToYe/ZdlJy+J3uCpfaiGF05e7B8W0iXbQHmg==", |
26207 | "dev": true, | ||
26208 | "requires": { | ||
26209 | "number-is-nan": "^1.0.0" | ||
26210 | } | ||
26211 | }, | ||
26212 | "lcid": { | ||
26213 | "version": "1.0.0", | ||
26214 | "resolved": "https://registry.npmjs.org/lcid/-/lcid-1.0.0.tgz", | ||
26215 | "integrity": "sha1-MIrMr6C8SDo4Z7S28rlQYlHRuDU=", | ||
26216 | "dev": true, | ||
26217 | "requires": { | ||
26218 | "invert-kv": "^1.0.0" | ||
26219 | } | ||
26220 | }, | ||
26221 | "load-json-file": { | ||
26222 | "version": "1.1.0", | ||
26223 | "resolved": "https://registry.npmjs.org/load-json-file/-/load-json-file-1.1.0.tgz", | ||
26224 | "integrity": "sha1-lWkFcI1YtLq0wiYbBPWfMcmTdMA=", | ||
26225 | "dev": true, | ||
26226 | "requires": { | ||
26227 | "graceful-fs": "^4.1.2", | ||
26228 | "parse-json": "^2.2.0", | ||
26229 | "pify": "^2.0.0", | ||
26230 | "pinkie-promise": "^2.0.0", | ||
26231 | "strip-bom": "^2.0.0" | ||
26232 | } | ||
26233 | }, | ||
26234 | "os-locale": { | ||
26235 | "version": "1.4.0", | ||
26236 | "resolved": "https://registry.npmjs.org/os-locale/-/os-locale-1.4.0.tgz", | ||
26237 | "integrity": "sha1-IPnxeuKe00XoveWDsT0gCYA8FNk=", | ||
26238 | "dev": true, | ||
26239 | "requires": { | ||
26240 | "lcid": "^1.0.0" | ||
26241 | } | ||
26242 | }, | ||
26243 | "parse-json": { | ||
26244 | "version": "2.2.0", | ||
26245 | "resolved": "https://registry.npmjs.org/parse-json/-/parse-json-2.2.0.tgz", | ||
26246 | "integrity": "sha1-9ID0BDTvgHQfhGkJn43qGPVaTck=", | ||
26247 | "dev": true, | ||
26248 | "requires": { | ||
26249 | "error-ex": "^1.2.0" | ||
26250 | } | ||
26251 | }, | ||
26252 | "path-exists": { | ||
26253 | "version": "2.1.0", | ||
26254 | "resolved": "https://registry.npmjs.org/path-exists/-/path-exists-2.1.0.tgz", | ||
26255 | "integrity": "sha1-D+tsZPD8UY2adU3V77YscCJ2H0s=", | ||
26256 | "dev": true, | ||
26257 | "requires": { | ||
26258 | "pinkie-promise": "^2.0.0" | ||
26259 | } | ||
26260 | }, | ||
26261 | "path-type": { | ||
26262 | "version": "1.1.0", | ||
26263 | "resolved": "https://registry.npmjs.org/path-type/-/path-type-1.1.0.tgz", | ||
26264 | "integrity": "sha1-WcRPfuSR2nBNpBXaWkBwuk+P5EE=", | ||
26265 | "dev": true, | ||
26266 | "requires": { | ||
26267 | "graceful-fs": "^4.1.2", | ||
26268 | "pify": "^2.0.0", | ||
26269 | "pinkie-promise": "^2.0.0" | ||
26270 | } | ||
26271 | }, | ||
26272 | "pify": { | ||
26273 | "version": "2.3.0", | ||
26274 | "resolved": "https://registry.npmjs.org/pify/-/pify-2.3.0.tgz", | ||
26275 | "integrity": "sha1-7RQaasBDqEnqWISY59yosVMw6Qw=", | ||
26276 | "dev": true | 27015 | "dev": true |
26277 | }, | 27016 | }, |
26278 | "read-pkg": { | ||
26279 | "version": "1.1.0", | ||
26280 | "resolved": "https://registry.npmjs.org/read-pkg/-/read-pkg-1.1.0.tgz", | ||
26281 | "integrity": "sha1-9f+qXs0pyzHAR0vKfXVra7KePyg=", | ||
26282 | "dev": true, | ||
26283 | "requires": { | ||
26284 | "load-json-file": "^1.0.0", | ||
26285 | "normalize-package-data": "^2.3.2", | ||
26286 | "path-type": "^1.0.0" | ||
26287 | } | ||
26288 | }, | ||
26289 | "read-pkg-up": { | ||
26290 | "version": "1.0.1", | ||
26291 | "resolved": "https://registry.npmjs.org/read-pkg-up/-/read-pkg-up-1.0.1.tgz", | ||
26292 | "integrity": "sha1-nWPBMnbAZZGNV/ACpX9AobZD+wI=", | ||
26293 | "dev": true, | ||
26294 | "requires": { | ||
26295 | "find-up": "^1.0.0", | ||
26296 | "read-pkg": "^1.0.0" | ||
26297 | } | ||
26298 | }, | ||
26299 | "string-width": { | 27017 | "string-width": { |
26300 | "version": "1.0.2", | 27018 | "version": "3.1.0", |
26301 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-1.0.2.tgz", | 27019 | "resolved": "https://registry.npmjs.org/string-width/-/string-width-3.1.0.tgz", |
26302 | "integrity": "sha1-EYvfW4zcUaKn5w0hHgfisLmxB9M=", | 27020 | "integrity": "sha512-vafcv6KjVZKSgz06oM/H6GDBrAtz8vdhQakGjFIvNrHA6y3HCF1CInLy+QLq8dTJPQ1b+KDUqDFctkdRW44e1w==", |
26303 | "dev": true, | 27021 | "dev": true, |
26304 | "requires": { | 27022 | "requires": { |
26305 | "code-point-at": "^1.0.0", | 27023 | "emoji-regex": "^7.0.1", |
26306 | "is-fullwidth-code-point": "^1.0.0", | 27024 | "is-fullwidth-code-point": "^2.0.0", |
26307 | "strip-ansi": "^3.0.0" | 27025 | "strip-ansi": "^5.1.0" |
26308 | } | 27026 | } |
26309 | }, | 27027 | }, |
26310 | "strip-ansi": { | 27028 | "strip-ansi": { |
26311 | "version": "3.0.1", | 27029 | "version": "5.2.0", |
26312 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-3.0.1.tgz", | 27030 | "resolved": "https://registry.npmjs.org/strip-ansi/-/strip-ansi-5.2.0.tgz", |
26313 | "integrity": "sha1-ajhfuIU9lS1f8F0Oiq+UJ43GPc8=", | 27031 | "integrity": "sha512-DuRs1gKbBqsMKIZlrffwlug8MHkcnpjs5VPmL1PAh+mA30U0DTotfDZ0d2UUsXpPmPmMMJ6W773MaA3J+lbiWA==", |
26314 | "dev": true, | 27032 | "dev": true, |
26315 | "requires": { | 27033 | "requires": { |
26316 | "ansi-regex": "^2.0.0" | 27034 | "ansi-regex": "^4.1.0" |
26317 | } | 27035 | } |
26318 | }, | 27036 | }, |
26319 | "strip-bom": { | 27037 | "wrap-ansi": { |
26320 | "version": "2.0.0", | 27038 | "version": "5.1.0", |
26321 | "resolved": "https://registry.npmjs.org/strip-bom/-/strip-bom-2.0.0.tgz", | 27039 | "resolved": "https://registry.npmjs.org/wrap-ansi/-/wrap-ansi-5.1.0.tgz", |
26322 | "integrity": "sha1-YhmoVhZSBJHzV4i9vxRHqZx+aw4=", | 27040 | "integrity": "sha512-QC1/iN/2/RPVJ5jYK8BGttj5z83LmSKmvbvrXPNCLZSEb32KKVDJDl/MOt2N01qU2H/FkzEa9PKto1BqDjtd7Q==", |
26323 | "dev": true, | 27041 | "dev": true, |
26324 | "requires": { | 27042 | "requires": { |
26325 | "is-utf8": "^0.2.0" | 27043 | "ansi-styles": "^3.2.0", |
27044 | "string-width": "^3.0.0", | ||
27045 | "strip-ansi": "^5.0.0" | ||
26326 | } | 27046 | } |
26327 | }, | 27047 | }, |
26328 | "which-module": { | ||
26329 | "version": "1.0.0", | ||
26330 | "resolved": "https://registry.npmjs.org/which-module/-/which-module-1.0.0.tgz", | ||
26331 | "integrity": "sha1-u6Y8qGGUiZT/MHc2CJ47lgJsKk8=", | ||
26332 | "dev": true | ||
26333 | }, | ||
26334 | "y18n": { | ||
26335 | "version": "3.2.1", | ||
26336 | "resolved": "https://registry.npmjs.org/y18n/-/y18n-3.2.1.tgz", | ||
26337 | "integrity": "sha1-bRX7qITAhnnA136I53WegR4H+kE=", | ||
26338 | "dev": true | ||
26339 | }, | ||
26340 | "yargs": { | 27048 | "yargs": { |
26341 | "version": "7.1.0", | 27049 | "version": "13.3.2", |
26342 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-7.1.0.tgz", | 27050 | "resolved": "https://registry.npmjs.org/yargs/-/yargs-13.3.2.tgz", |
26343 | "integrity": "sha1-a6MY6xaWFyf10oT46gA+jWFU0Mg=", | 27051 | "integrity": "sha512-AX3Zw5iPruN5ie6xGRIDgqkT+ZhnRlZMLMHAs8tg7nRruy2Nb+i5o9bwghAogtM08q1dpr2LVoS8KSTMYpWXUw==", |
26344 | "dev": true, | 27052 | "dev": true, |
26345 | "requires": { | 27053 | "requires": { |
26346 | "camelcase": "^3.0.0", | 27054 | "cliui": "^5.0.0", |
26347 | "cliui": "^3.2.0", | 27055 | "find-up": "^3.0.0", |
26348 | "decamelize": "^1.1.1", | 27056 | "get-caller-file": "^2.0.1", |
26349 | "get-caller-file": "^1.0.1", | ||
26350 | "os-locale": "^1.4.0", | ||
26351 | "read-pkg-up": "^1.0.1", | ||
26352 | "require-directory": "^2.1.1", | 27057 | "require-directory": "^2.1.1", |
26353 | "require-main-filename": "^1.0.1", | 27058 | "require-main-filename": "^2.0.0", |
26354 | "set-blocking": "^2.0.0", | 27059 | "set-blocking": "^2.0.0", |
26355 | "string-width": "^1.0.2", | 27060 | "string-width": "^3.0.0", |
26356 | "which-module": "^1.0.0", | 27061 | "which-module": "^2.0.0", |
26357 | "y18n": "^3.2.1", | 27062 | "y18n": "^4.0.0", |
26358 | "yargs-parser": "^5.0.0" | 27063 | "yargs-parser": "^13.1.2" |
26359 | } | 27064 | } |
26360 | }, | 27065 | }, |
26361 | "yargs-parser": { | 27066 | "yargs-parser": { |
26362 | "version": "5.0.0", | 27067 | "version": "13.1.2", |
26363 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-5.0.0.tgz", | 27068 | "resolved": "https://registry.npmjs.org/yargs-parser/-/yargs-parser-13.1.2.tgz", |
26364 | "integrity": "sha1-J17PDX/+Bcd+ZOfIbkzZS/DhIoo=", | 27069 | "integrity": "sha512-3lbsNRf/j+A4QuSZfDRA7HRSfWrzO0YjqTJd5kjAq37Zep1CEgaYmrH9Q3GwPiB9cHyd1Y1UwggGhJGoxipbzg==", |
26365 | "dev": true, | 27070 | "dev": true, |
26366 | "requires": { | 27071 | "requires": { |
26367 | "camelcase": "^3.0.0" | 27072 | "camelcase": "^5.0.0", |
27073 | "decamelize": "^1.2.0" | ||
26368 | } | 27074 | } |
26369 | } | 27075 | } |
26370 | } | 27076 | } |
@@ -26624,7 +27330,8 @@ | |||
26624 | "setimmediate": { | 27330 | "setimmediate": { |
26625 | "version": "1.0.5", | 27331 | "version": "1.0.5", |
26626 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", | 27332 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", |
26627 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" | 27333 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=", |
27334 | "dev": true | ||
26628 | }, | 27335 | }, |
26629 | "setprototypeof": { | 27336 | "setprototypeof": { |
26630 | "version": "1.1.1", | 27337 | "version": "1.1.1", |
@@ -26671,6 +27378,17 @@ | |||
26671 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", | 27378 | "resolved": "https://registry.npmjs.org/shebang-regex/-/shebang-regex-1.0.0.tgz", |
26672 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" | 27379 | "integrity": "sha1-2kL0l0DAtC2yypcoVxyxkMmO/qM=" |
26673 | }, | 27380 | }, |
27381 | "shelljs": { | ||
27382 | "version": "0.8.4", | ||
27383 | "resolved": "https://registry.npmjs.org/shelljs/-/shelljs-0.8.4.tgz", | ||
27384 | "integrity": "sha512-7gk3UZ9kOfPLIAbslLzyWeGiEqx9e3rxwZM0KE6EL8GlGwjym9Mrlx5/p33bWTu9YG6vcS4MBxYZDHYr5lr8BQ==", | ||
27385 | "dev": true, | ||
27386 | "requires": { | ||
27387 | "glob": "^7.0.0", | ||
27388 | "interpret": "^1.0.0", | ||
27389 | "rechoir": "^0.6.2" | ||
27390 | } | ||
27391 | }, | ||
26674 | "shellwords": { | 27392 | "shellwords": { |
26675 | "version": "0.1.1", | 27393 | "version": "0.1.1", |
26676 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", | 27394 | "resolved": "https://registry.npmjs.org/shellwords/-/shellwords-0.1.1.tgz", |
@@ -27122,9 +27840,10 @@ | |||
27122 | } | 27840 | } |
27123 | }, | 27841 | }, |
27124 | "source-map-support": { | 27842 | "source-map-support": { |
27125 | "version": "0.5.13", | 27843 | "version": "0.5.10", |
27126 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.13.tgz", | 27844 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.10.tgz", |
27127 | "integrity": "sha512-SHSKFHadjVA5oR4PPqhtAVdcBWwRYVd6g6cAXnIbRiIwc2EhPrTuKUBdSLvlEKyIP3GCf89fltvcZiP9MMFA1w==", | 27845 | "integrity": "sha512-YfQ3tQFTK/yzlGJuX8pTwa4tifQj4QS2Mj7UegOu8jAz59MqIiMGPXxQhVQiIMNzayuUSF/jEuVnfFF5JqybmQ==", |
27846 | "dev": true, | ||
27128 | "requires": { | 27847 | "requires": { |
27129 | "buffer-from": "^1.0.0", | 27848 | "buffer-from": "^1.0.0", |
27130 | "source-map": "^0.6.0" | 27849 | "source-map": "^0.6.0" |
@@ -27722,26 +28441,6 @@ | |||
27722 | } | 28441 | } |
27723 | } | 28442 | } |
27724 | }, | 28443 | }, |
27725 | "string.prototype.trimleft": { | ||
27726 | "version": "2.1.0", | ||
27727 | "resolved": "https://registry.npmjs.org/string.prototype.trimleft/-/string.prototype.trimleft-2.1.0.tgz", | ||
27728 | "integrity": "sha512-FJ6b7EgdKxxbDxc79cOlok6Afd++TTs5szo+zJTUyow3ycrRfJVE2pq3vcN53XexvKZu/DJMDfeI/qMiZTrjTw==", | ||
27729 | "dev": true, | ||
27730 | "requires": { | ||
27731 | "define-properties": "^1.1.3", | ||
27732 | "function-bind": "^1.1.1" | ||
27733 | } | ||
27734 | }, | ||
27735 | "string.prototype.trimright": { | ||
27736 | "version": "2.1.0", | ||
27737 | "resolved": "https://registry.npmjs.org/string.prototype.trimright/-/string.prototype.trimright-2.1.0.tgz", | ||
27738 | "integrity": "sha512-fXZTSV55dNBwv16uw+hh5jkghxSnc5oHq+5K/gXgizHwAvMetdAJlHqqoFC1FSDVPYWLkAKl2cxpUT41sV7nSg==", | ||
27739 | "dev": true, | ||
27740 | "requires": { | ||
27741 | "define-properties": "^1.1.3", | ||
27742 | "function-bind": "^1.1.1" | ||
27743 | } | ||
27744 | }, | ||
27745 | "string.prototype.trimstart": { | 28444 | "string.prototype.trimstart": { |
27746 | "version": "1.0.1", | 28445 | "version": "1.0.1", |
27747 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", | 28446 | "resolved": "https://registry.npmjs.org/string.prototype.trimstart/-/string.prototype.trimstart-1.0.1.tgz", |
@@ -27888,6 +28587,7 @@ | |||
27888 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", | 28587 | "resolved": "https://registry.npmjs.org/strip-outer/-/strip-outer-1.0.1.tgz", |
27889 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", | 28588 | "integrity": "sha512-k55yxKHwaXnpYGsOzg4Vl8+tDrWylxDEpknGjhTiZB8dFRU5rTo9CAzeycivxV3s+zlTKwrs6WxMxR95n26kwg==", |
27890 | "dev": true, | 28589 | "dev": true, |
28590 | "optional": true, | ||
27891 | "requires": { | 28591 | "requires": { |
27892 | "escape-string-regexp": "^1.0.2" | 28592 | "escape-string-regexp": "^1.0.2" |
27893 | } | 28593 | } |
@@ -27923,6 +28623,23 @@ | |||
27923 | "dev": true, | 28623 | "dev": true, |
27924 | "requires": { | 28624 | "requires": { |
27925 | "debug": "^4.1.0" | 28625 | "debug": "^4.1.0" |
28626 | }, | ||
28627 | "dependencies": { | ||
28628 | "debug": { | ||
28629 | "version": "4.2.0", | ||
28630 | "resolved": "https://registry.npmjs.org/debug/-/debug-4.2.0.tgz", | ||
28631 | "integrity": "sha512-IX2ncY78vDTjZMFUdmsvIRFY2Cf4FnD0wRs+nQwJU8Lu99/tPFdb0VybiiMTPe3I6rQmwsqQqRBvxU+bZ/I8sg==", | ||
28632 | "dev": true, | ||
28633 | "requires": { | ||
28634 | "ms": "2.1.2" | ||
28635 | } | ||
28636 | }, | ||
28637 | "ms": { | ||
28638 | "version": "2.1.2", | ||
28639 | "resolved": "https://registry.npmjs.org/ms/-/ms-2.1.2.tgz", | ||
28640 | "integrity": "sha512-sGkPx+VjMtmA6MX27oA4FBFELFCZZ4S4XqeGOXCv68tT+jb3vk/RyaKWP0PTKyWtmLSM0b+adUTEvbs1PEaH2w==", | ||
28641 | "dev": true | ||
28642 | } | ||
27926 | } | 28643 | } |
27927 | }, | 28644 | }, |
27928 | "supports-color": { | 28645 | "supports-color": { |
@@ -28026,6 +28743,17 @@ | |||
28026 | } | 28743 | } |
28027 | } | 28744 | } |
28028 | }, | 28745 | }, |
28746 | "js-yaml": { | ||
28747 | "version": "3.14.0", | ||
28748 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", | ||
28749 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", | ||
28750 | "dev": true, | ||
28751 | "optional": true, | ||
28752 | "requires": { | ||
28753 | "argparse": "^1.0.7", | ||
28754 | "esprima": "^4.0.0" | ||
28755 | } | ||
28756 | }, | ||
28029 | "mdn-data": { | 28757 | "mdn-data": { |
28030 | "version": "2.0.4", | 28758 | "version": "2.0.4", |
28031 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", | 28759 | "resolved": "https://registry.npmjs.org/mdn-data/-/mdn-data-2.0.4.tgz", |
@@ -28329,6 +29057,17 @@ | |||
28329 | "commander": "^2.20.0", | 29057 | "commander": "^2.20.0", |
28330 | "source-map": "~0.6.1", | 29058 | "source-map": "~0.6.1", |
28331 | "source-map-support": "~0.5.12" | 29059 | "source-map-support": "~0.5.12" |
29060 | }, | ||
29061 | "dependencies": { | ||
29062 | "source-map-support": { | ||
29063 | "version": "0.5.19", | ||
29064 | "resolved": "https://registry.npmjs.org/source-map-support/-/source-map-support-0.5.19.tgz", | ||
29065 | "integrity": "sha512-Wonm7zOCIJzBGQdB+thsPar0kYuCIzYvxZwlBa87yi/Mdjv7Tip2cyVbLj5o0cFPN4EVkuTwb3GDDyUx2DGnGw==", | ||
29066 | "requires": { | ||
29067 | "buffer-from": "^1.0.0", | ||
29068 | "source-map": "^0.6.0" | ||
29069 | } | ||
29070 | } | ||
28332 | } | 29071 | } |
28333 | }, | 29072 | }, |
28334 | "terser-webpack-plugin": { | 29073 | "terser-webpack-plugin": { |
@@ -28468,12 +29207,6 @@ | |||
28468 | } | 29207 | } |
28469 | } | 29208 | } |
28470 | }, | 29209 | }, |
28471 | "text-extensions": { | ||
28472 | "version": "2.0.0", | ||
28473 | "resolved": "https://registry.npmjs.org/text-extensions/-/text-extensions-2.0.0.tgz", | ||
28474 | "integrity": "sha512-F91ZqLgvi1E0PdvmxMgp+gcf6q8fMH7mhdwWfzXnl1k+GbpQDmi8l7DzLC5JTASKbwpY3TfxajAUzAXcv2NmsQ==", | ||
28475 | "dev": true | ||
28476 | }, | ||
28477 | "text-hex": { | 29210 | "text-hex": { |
28478 | "version": "1.0.0", | 29211 | "version": "1.0.0", |
28479 | "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", | 29212 | "resolved": "https://registry.npmjs.org/text-hex/-/text-hex-1.0.0.tgz", |
@@ -28832,6 +29565,7 @@ | |||
28832 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", | 29565 | "resolved": "https://registry.npmjs.org/trim-repeated/-/trim-repeated-1.0.0.tgz", |
28833 | "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", | 29566 | "integrity": "sha1-42RqLqTokTEr9+rObPsFOAvAHCE=", |
28834 | "dev": true, | 29567 | "dev": true, |
29568 | "optional": true, | ||
28835 | "requires": { | 29569 | "requires": { |
28836 | "escape-string-regexp": "^1.0.2" | 29570 | "escape-string-regexp": "^1.0.2" |
28837 | } | 29571 | } |
@@ -28909,6 +29643,16 @@ | |||
28909 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", | 29643 | "resolved": "https://registry.npmjs.org/diff/-/diff-4.0.1.tgz", |
28910 | "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", | 29644 | "integrity": "sha512-s2+XdvhPCOF01LRQBC8hf4vhbVmI2CGS5aZnxLJlT5FtdhPCDFq80q++zK2KlrVorVDdL5BOGZ/VfLrVtYNF+Q==", |
28911 | "dev": true | 29645 | "dev": true |
29646 | }, | ||
29647 | "js-yaml": { | ||
29648 | "version": "3.14.0", | ||
29649 | "resolved": "https://registry.npmjs.org/js-yaml/-/js-yaml-3.14.0.tgz", | ||
29650 | "integrity": "sha512-/4IbIeHcD9VMHFqDR/gQ7EdZdLimOvW2DdcxFjdyyZ9NsbS+ccrXqVWDtab/lRl5AlUqmpBx8EhPaWR+OtY17A==", | ||
29651 | "dev": true, | ||
29652 | "requires": { | ||
29653 | "argparse": "^1.0.7", | ||
29654 | "esprima": "^4.0.0" | ||
29655 | } | ||
28912 | } | 29656 | } |
28913 | } | 29657 | } |
28914 | }, | 29658 | }, |
@@ -29064,9 +29808,9 @@ | |||
29064 | } | 29808 | } |
29065 | }, | 29809 | }, |
29066 | "type-fest": { | 29810 | "type-fest": { |
29067 | "version": "0.3.1", | 29811 | "version": "0.8.1", |
29068 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.3.1.tgz", | 29812 | "resolved": "https://registry.npmjs.org/type-fest/-/type-fest-0.8.1.tgz", |
29069 | "integrity": "sha512-cUGJnCdr4STbePCgqNFbpVNCepa+kAVohJs1sLhxzdH+gnEoOd8VhbYa7pD3zZYGiURWM2xzEII3fQcRizDkYQ==", | 29813 | "integrity": "sha512-4dbzIzqvjtgiM5rw1k5rEHtBANKmdudhGyBEajN01fEyhaAIhsoKNy6y7+IN93IfpFtwY9iqi7kD+xwKhQsNJA==", |
29070 | "dev": true | 29814 | "dev": true |
29071 | }, | 29815 | }, |
29072 | "type-is": { | 29816 | "type-is": { |
@@ -29119,11 +29863,6 @@ | |||
29119 | "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", | 29863 | "integrity": "sha512-ml7V7JfiN2Xwvcer+XAf2csGO1bPBdRbFCkYBczNZggrBZ9c7G3riSUeJmqEU5uOtXNPMhE3n+R4FA/3YOAWOQ==", |
29120 | "dev": true | 29864 | "dev": true |
29121 | }, | 29865 | }, |
29122 | "ua-parser-js": { | ||
29123 | "version": "0.7.20", | ||
29124 | "resolved": "https://registry.npmjs.org/ua-parser-js/-/ua-parser-js-0.7.20.tgz", | ||
29125 | "integrity": "sha512-8OaIKfzL5cpx8eCMAhhvTlft8GYF8b2eQr6JkCyVdrgjcytyOmPCXrqXFcUnhonRpLlh5yxEZVohm6mzaowUOw==" | ||
29126 | }, | ||
29127 | "uglify-js": { | 29866 | "uglify-js": { |
29128 | "version": "3.6.0", | 29867 | "version": "3.6.0", |
29129 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", | 29868 | "resolved": "https://registry.npmjs.org/uglify-js/-/uglify-js-3.6.0.tgz", |
@@ -29188,6 +29927,11 @@ | |||
29188 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", | 29927 | "resolved": "https://registry.npmjs.org/unc-path-regex/-/unc-path-regex-0.1.2.tgz", |
29189 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" | 29928 | "integrity": "sha1-5z3T17DXxe2G+6xrCufYxqadUPo=" |
29190 | }, | 29929 | }, |
29930 | "underscore": { | ||
29931 | "version": "1.11.0", | ||
29932 | "resolved": "https://registry.npmjs.org/underscore/-/underscore-1.11.0.tgz", | ||
29933 | "integrity": "sha512-xY96SsN3NA461qIRKZ/+qox37YXPtSBswMGfiNptr+wrt6ds4HaMw23TP612fEyGekRE6LNRiLYr/aqbHXNedw==" | ||
29934 | }, | ||
29191 | "undertaker": { | 29935 | "undertaker": { |
29192 | "version": "1.2.1", | 29936 | "version": "1.2.1", |
29193 | "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", | 29937 | "resolved": "https://registry.npmjs.org/undertaker/-/undertaker-1.2.1.tgz", |
@@ -29407,12 +30151,11 @@ | |||
29407 | }, | 30151 | }, |
29408 | "dependencies": { | 30152 | "dependencies": { |
29409 | "ansi-styles": { | 30153 | "ansi-styles": { |
29410 | "version": "4.2.1", | 30154 | "version": "4.3.0", |
29411 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.2.1.tgz", | 30155 | "resolved": "https://registry.npmjs.org/ansi-styles/-/ansi-styles-4.3.0.tgz", |
29412 | "integrity": "sha512-9VGjrMsG1vePxcSweQsN20KY/c4zN0h9fLjqAbwbPfahM3t+NL+M9HC8xeXG2I8pX5NoamTGNuomEUFI7fcUjA==", | 30156 | "integrity": "sha512-zbB9rCJAT1rbjiVDb2hqKFHNYLxgtk8NURxZ3IZwD3F6NtxbXZQCnnSi1Lkx+IDohdPlFp222wVALIheZJQSEg==", |
29413 | "dev": true, | 30157 | "dev": true, |
29414 | "requires": { | 30158 | "requires": { |
29415 | "@types/color-name": "^1.1.1", | ||
29416 | "color-convert": "^2.0.1" | 30159 | "color-convert": "^2.0.1" |
29417 | } | 30160 | } |
29418 | }, | 30161 | }, |
@@ -29557,11 +30300,6 @@ | |||
29557 | "tmp": "0.0.x" | 30300 | "tmp": "0.0.x" |
29558 | } | 30301 | } |
29559 | }, | 30302 | }, |
29560 | "utf8": { | ||
29561 | "version": "3.0.0", | ||
29562 | "resolved": "https://registry.npmjs.org/utf8/-/utf8-3.0.0.tgz", | ||
29563 | "integrity": "sha512-E8VjFIQ/TyQgp+TZfS6l8yp/xWppSAHzidGiRrqe4bK4XP9pTRyKFgGJpO3SN7zdX4DeomTrwaseCHovfpFcqQ==" | ||
29564 | }, | ||
29565 | "utf8-byte-length": { | 30303 | "utf8-byte-length": { |
29566 | "version": "1.0.4", | 30304 | "version": "1.0.4", |
29567 | "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", | 30305 | "resolved": "https://registry.npmjs.org/utf8-byte-length/-/utf8-byte-length-1.0.4.tgz", |
@@ -29993,6 +30731,17 @@ | |||
29993 | "wrap-ansi": "^5.1.0" | 30731 | "wrap-ansi": "^5.1.0" |
29994 | } | 30732 | } |
29995 | }, | 30733 | }, |
30734 | "enhanced-resolve": { | ||
30735 | "version": "4.1.0", | ||
30736 | "resolved": "https://registry.npmjs.org/enhanced-resolve/-/enhanced-resolve-4.1.0.tgz", | ||
30737 | "integrity": "sha512-F/7vkyTtyc/llOIn8oWclcB25KdRaiPBpZYDgJHgh/UHtpgT2p2eldQgtQnLtUvfMKPKxbRaQM/hHkvLHt1Vng==", | ||
30738 | "dev": true, | ||
30739 | "requires": { | ||
30740 | "graceful-fs": "^4.1.2", | ||
30741 | "memory-fs": "^0.4.0", | ||
30742 | "tapable": "^1.0.0" | ||
30743 | } | ||
30744 | }, | ||
29996 | "get-caller-file": { | 30745 | "get-caller-file": { |
29997 | "version": "2.0.5", | 30746 | "version": "2.0.5", |
29998 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", | 30747 | "resolved": "https://registry.npmjs.org/get-caller-file/-/get-caller-file-2.0.5.tgz", |
@@ -30357,11 +31106,6 @@ | |||
30357 | "iconv-lite": "0.4.24" | 31106 | "iconv-lite": "0.4.24" |
30358 | } | 31107 | } |
30359 | }, | 31108 | }, |
30360 | "whatwg-fetch": { | ||
30361 | "version": "3.0.0", | ||
30362 | "resolved": "https://registry.npmjs.org/whatwg-fetch/-/whatwg-fetch-3.0.0.tgz", | ||
30363 | "integrity": "sha512-9GSJUgz1D4MfyKU7KRqwOjXCXTqWdFNvEr7eUBYchQiVc744mqK/MzXPNR2WsPkmkOa4ywfg8C2n8h+13Bey1Q==" | ||
30364 | }, | ||
30365 | "whatwg-mimetype": { | 31109 | "whatwg-mimetype": { |
30366 | "version": "2.3.0", | 31110 | "version": "2.3.0", |
30367 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", | 31111 | "resolved": "https://registry.npmjs.org/whatwg-mimetype/-/whatwg-mimetype-2.3.0.tgz", |
diff --git a/package.json b/package.json index d6a01c01e..13352c46f 100644 --- a/package.json +++ b/package.json | |||
@@ -66,7 +66,7 @@ | |||
66 | "auto-launch": "5.0.5", | 66 | "auto-launch": "5.0.5", |
67 | "btoa": "1.2.1", | 67 | "btoa": "1.2.1", |
68 | "classnames": "2.2.6", | 68 | "classnames": "2.2.6", |
69 | "cld3-asm": "1.0.1", | 69 | "cld": "2.7.0", |
70 | "css": "2.2.4", | 70 | "css": "2.2.4", |
71 | "darkreader": "4.7.15", | 71 | "darkreader": "4.7.15", |
72 | "dbus-next": "0.8.2", | 72 | "dbus-next": "0.8.2", |
@@ -79,7 +79,7 @@ | |||
79 | "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git", | 79 | "electron-process-manager": "git+https://git@github.com/dizer/electron-process-manager.git", |
80 | "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git", | 80 | "electron-process-reporter": "git+https://git@github.com/dizer/electron-process-reporter.git", |
81 | "electron-react-titlebar": "0.8.2", | 81 | "electron-react-titlebar": "0.8.2", |
82 | "electron-updater": "4.2.5", | 82 | "electron-updater": "4.3.5", |
83 | "electron-util": "0.14.0", | 83 | "electron-util": "0.14.0", |
84 | "electron-window-state": "5.0.3", | 84 | "electron-window-state": "5.0.3", |
85 | "fs-extra": "7.0.1", | 85 | "fs-extra": "7.0.1", |
@@ -149,6 +149,7 @@ | |||
149 | "@types/fs-extra": "7.0.0", | 149 | "@types/fs-extra": "7.0.0", |
150 | "@types/jss": "^9.5.7", | 150 | "@types/jss": "^9.5.7", |
151 | "@types/lodash": "4.14.149", | 151 | "@types/lodash": "4.14.149", |
152 | "@types/node": "12.12.54", | ||
152 | "@types/react": "16.9.13", | 153 | "@types/react": "16.9.13", |
153 | "@types/react-dom": "16.9.4", | 154 | "@types/react-dom": "16.9.4", |
154 | "@types/react-jss": "^8.6.0", | 155 | "@types/react-jss": "^8.6.0", |
@@ -161,9 +162,9 @@ | |||
161 | "cross-env": "^5.0.5", | 162 | "cross-env": "^5.0.5", |
162 | "cz-conventional-changelog": "2.1.0", | 163 | "cz-conventional-changelog": "2.1.0", |
163 | "dotenv": "^4.0.0", | 164 | "dotenv": "^4.0.0", |
164 | "electron": "9.4.0", | 165 | "electron": "10.1.3", |
165 | "electron-builder": "22.8.1", | 166 | "electron-builder": "22.7.0", |
166 | "electron-notarize": "0.2.1", | 167 | "electron-notarize": "1.0.0", |
167 | "electron-rebuild": "1.11.0", | 168 | "electron-rebuild": "1.11.0", |
168 | "eslint": "5.10.0", | 169 | "eslint": "5.10.0", |
169 | "eslint-config-airbnb": "17.1.0", | 170 | "eslint-config-airbnb": "17.1.0", |
@@ -188,7 +189,8 @@ | |||
188 | "lerna": "3.19.0", | 189 | "lerna": "3.19.0", |
189 | "mobx-react-devtools": "6.1.1", | 190 | "mobx-react-devtools": "6.1.1", |
190 | "mocha": "5.2.0", | 191 | "mocha": "5.2.0", |
191 | "node-sass": "4.14.0", | 192 | "node-abi": "2.19.1", |
193 | "node-sass": "4.14.1", | ||
192 | "prettier": "1.19.1", | 194 | "prettier": "1.19.1", |
193 | "react-intl-translations-manager": "5.0.3", | 195 | "react-intl-translations-manager": "5.0.3", |
194 | "terser-webpack-plugin": "1.2.1", | 196 | "terser-webpack-plugin": "1.2.1", |
diff --git a/packages/forms/package.json b/packages/forms/package.json index 18b6d2244..f61b787ac 100644 --- a/packages/forms/package.json +++ b/packages/forms/package.json | |||
@@ -1,7 +1,7 @@ | |||
1 | { | 1 | { |
2 | "name": "@meetfranz/forms", | 2 | "name": "@meetfranz/forms", |
3 | "version": "1.1.0", | 3 | "version": "1.2.1", |
4 | "description": "React form components for Ferdi", | 4 | "description": "React form components for Franz", |
5 | "main": "lib/index.js", | 5 | "main": "lib/index.js", |
6 | "scripts": { | 6 | "scripts": { |
7 | "dev": "tsc -w", | 7 | "dev": "tsc -w", |
@@ -35,5 +35,5 @@ | |||
35 | "react-dom": "16.7.0", | 35 | "react-dom": "16.7.0", |
36 | "react-jss": "^8.6.1" | 36 | "react-jss": "^8.6.1" |
37 | }, | 37 | }, |
38 | "gitHead": "e1e46986d902adc4c19ee009016290f9733a7d61" | 38 | "gitHead": "00db2bddccb8bb8ad7d29b8d032876c798b8bbf3" |
39 | } | 39 | } |
diff --git a/packages/forms/src/index.ts b/packages/forms/src/index.ts index ea47fe25e..45a9ed8e3 100644 --- a/packages/forms/src/index.ts +++ b/packages/forms/src/index.ts | |||
@@ -1,4 +1,5 @@ | |||
1 | export { Input } from './input'; | 1 | export { Input } from './input'; |
2 | export { Textarea } from './textarea'; | ||
2 | export { Toggle } from './toggle'; | 3 | export { Toggle } from './toggle'; |
3 | export { Button } from './button'; | 4 | export { Button } from './button'; |
4 | export { Select } from './select'; | 5 | export { Select } from './select'; |
diff --git a/packages/forms/src/textarea/index.tsx b/packages/forms/src/textarea/index.tsx new file mode 100644 index 000000000..cd691a507 --- /dev/null +++ b/packages/forms/src/textarea/index.tsx | |||
@@ -0,0 +1,128 @@ | |||
1 | import { mdiEye, mdiEyeOff } from '@mdi/js'; | ||
2 | import Icon from '@mdi/react'; | ||
3 | import classnames from 'classnames'; | ||
4 | import React, { Component, createRef } from 'react'; | ||
5 | import injectSheet from 'react-jss'; | ||
6 | |||
7 | import { IFormField, IWithStyle } from '../typings/generic'; | ||
8 | |||
9 | import { Error } from '../error'; | ||
10 | import { Label } from '../label'; | ||
11 | import { Wrapper } from '../wrapper'; | ||
12 | |||
13 | import styles from './styles'; | ||
14 | |||
15 | interface IData { | ||
16 | [index: string]: string; | ||
17 | } | ||
18 | |||
19 | interface IProps extends React.TextareaHTMLAttributes<HTMLTextAreaElement>, IFormField, IWithStyle { | ||
20 | focus?: boolean; | ||
21 | data: IData; | ||
22 | textareaClassName?: string; | ||
23 | } | ||
24 | |||
25 | class TextareaComponent extends Component<IProps> { | ||
26 | static defaultProps = { | ||
27 | focus: false, | ||
28 | onChange: () => {}, | ||
29 | onBlur: () => {}, | ||
30 | onFocus: () => {}, | ||
31 | showLabel: true, | ||
32 | disabled: false, | ||
33 | rows: 5, | ||
34 | }; | ||
35 | |||
36 | private textareaRef = createRef<HTMLTextAreaElement>(); | ||
37 | |||
38 | componentDidMount() { | ||
39 | const { data } = this.props; | ||
40 | |||
41 | if (this.textareaRef && this.textareaRef.current && data) { | ||
42 | Object.keys(data).map(key => this.textareaRef.current!.dataset[key] = data[key]); | ||
43 | } | ||
44 | } | ||
45 | |||
46 | onChange(e: React.ChangeEvent<HTMLTextAreaElement>) { | ||
47 | const { | ||
48 | onChange, | ||
49 | } = this.props; | ||
50 | |||
51 | if (onChange) { | ||
52 | onChange(e); | ||
53 | } | ||
54 | } | ||
55 | |||
56 | render() { | ||
57 | const { | ||
58 | classes, | ||
59 | className, | ||
60 | disabled, | ||
61 | error, | ||
62 | focus, | ||
63 | id, | ||
64 | textareaClassName, | ||
65 | label, | ||
66 | showLabel, | ||
67 | value, | ||
68 | name, | ||
69 | placeholder, | ||
70 | spellCheck, | ||
71 | onBlur, | ||
72 | onFocus, | ||
73 | minLength, | ||
74 | maxLength, | ||
75 | required, | ||
76 | rows, | ||
77 | noMargin, | ||
78 | } = this.props; | ||
79 | |||
80 | return ( | ||
81 | <Wrapper | ||
82 | className={className} | ||
83 | identifier="franz-textarea" | ||
84 | noMargin={noMargin} | ||
85 | > | ||
86 | <Label | ||
87 | title={label} | ||
88 | showLabel={showLabel} | ||
89 | htmlFor={id} | ||
90 | className={classes.label} | ||
91 | isRequired={required} | ||
92 | > | ||
93 | <div | ||
94 | className={classnames({ | ||
95 | [`${textareaClassName}`]: textareaClassName, | ||
96 | [`${classes.wrapper}`]: true, | ||
97 | [`${classes.disabled}`]: disabled, | ||
98 | [`${classes.hasError}`]: error, | ||
99 | })}> | ||
100 | <textarea | ||
101 | autoFocus={focus} | ||
102 | id={id} | ||
103 | name={name} | ||
104 | placeholder={placeholder} | ||
105 | spellCheck={spellCheck} | ||
106 | className={classes.textarea} | ||
107 | ref={this.textareaRef} | ||
108 | onChange={this.onChange.bind(this)} | ||
109 | onFocus={onFocus} | ||
110 | onBlur={onBlur} | ||
111 | disabled={disabled} | ||
112 | minLength={minLength} | ||
113 | maxLength={maxLength} | ||
114 | rows={rows} | ||
115 | > | ||
116 | {value} | ||
117 | </textarea> | ||
118 | </div> | ||
119 | </Label> | ||
120 | {error && ( | ||
121 | <Error message={error} /> | ||
122 | )} | ||
123 | </Wrapper> | ||
124 | ); | ||
125 | } | ||
126 | } | ||
127 | |||
128 | export const Textarea = injectSheet(styles)(TextareaComponent); | ||
diff --git a/packages/forms/src/textarea/styles.ts b/packages/forms/src/textarea/styles.ts new file mode 100644 index 000000000..c1cbd76a5 --- /dev/null +++ b/packages/forms/src/textarea/styles.ts | |||
@@ -0,0 +1,53 @@ | |||
1 | import { Theme } from '@meetfranz/theme'; | ||
2 | import CSS from 'csstype'; | ||
3 | |||
4 | export default (theme: Theme) => ({ | ||
5 | label: { | ||
6 | '& > div': { | ||
7 | marginTop: 5, | ||
8 | }, | ||
9 | }, | ||
10 | disabled: { | ||
11 | opacity: theme.inputDisabledOpacity, | ||
12 | }, | ||
13 | formModifier: { | ||
14 | background: 'none', | ||
15 | border: 0, | ||
16 | borderLeft: theme.inputBorder, | ||
17 | padding: '4px 20px 0', | ||
18 | outline: 'none', | ||
19 | |||
20 | '&:active': { | ||
21 | opacity: 0.5, | ||
22 | }, | ||
23 | |||
24 | '& svg': { | ||
25 | fill: theme.inputModifierColor, | ||
26 | }, | ||
27 | }, | ||
28 | textarea: { | ||
29 | background: 'none', | ||
30 | border: 0, | ||
31 | fontSize: theme.uiFontSize, | ||
32 | outline: 'none', | ||
33 | padding: 8, | ||
34 | width: '100%', | ||
35 | color: theme.inputColor, | ||
36 | |||
37 | '&::placeholder': { | ||
38 | color: theme.inputPlaceholderColor, | ||
39 | }, | ||
40 | }, | ||
41 | wrapper: { | ||
42 | background: theme.inputBackground, | ||
43 | border: theme.inputBorder, | ||
44 | borderRadius: theme.borderRadiusSmall, | ||
45 | boxSizing: 'border-box' as CSS.BoxSizingProperty, | ||
46 | display: 'flex', | ||
47 | order: 1, | ||
48 | width: '100%', | ||
49 | }, | ||
50 | hasError: { | ||
51 | borderColor: theme.brandDanger, | ||
52 | }, | ||
53 | }); | ||
diff --git a/packages/ui/package-lock.json b/packages/ui/package-lock.json index 8fa68a29b..64020c004 100644 --- a/packages/ui/package-lock.json +++ b/packages/ui/package-lock.json | |||
@@ -1,63 +1,20 @@ | |||
1 | { | 1 | { |
2 | "name": "@meetfranz/ui", | 2 | "name": "@meetfranz/ui", |
3 | "version": "0.0.0", | 3 | "version": "1.0.0", |
4 | "lockfileVersion": 1, | 4 | "lockfileVersion": 1, |
5 | "requires": true, | 5 | "requires": true, |
6 | "dependencies": { | 6 | "dependencies": { |
7 | "@mdi/js": { | ||
8 | "version": "3.3.92", | ||
9 | "resolved": "https://registry.npmjs.org/@mdi/js/-/js-3.3.92.tgz", | ||
10 | "integrity": "sha512-l+12IwTycHlijWMiRWBAssm0RSgkQiwMthIy/EcBAdSqtnsHnFjHq+aI2MBZ8/AYX0QBxNUv4+EN0SXZgNkWDg==" | ||
11 | }, | ||
12 | "@mdi/react": { | 7 | "@mdi/react": { |
13 | "version": "1.1.0", | 8 | "version": "1.1.0", |
14 | "resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.1.0.tgz", | 9 | "resolved": "https://registry.npmjs.org/@mdi/react/-/react-1.1.0.tgz", |
15 | "integrity": "sha512-c0+avMYEZ6i7Pg1ULLFs+p7k8bDPiie9rrgGYs8VWQhw2tUUYz7r0lIPVzD3bzMghWfyhfkArj88K5Of0WTMNw==" | 10 | "integrity": "sha512-c0+avMYEZ6i7Pg1ULLFs+p7k8bDPiie9rrgGYs8VWQhw2tUUYz7r0lIPVzD3bzMghWfyhfkArj88K5Of0WTMNw==" |
16 | }, | 11 | }, |
17 | "@meetfranz/theme": { | 12 | "@meetfranz/theme": { |
18 | "version": "file:../theme", | 13 | "version": "1.0.14", |
14 | "resolved": "https://registry.npmjs.org/@meetfranz/theme/-/theme-1.0.14.tgz", | ||
15 | "integrity": "sha512-iWP+3ifiNum98sHKiNdUJK+R0p4Z7TT8OenA1N2BnSC6CFob+dLhzAK+o5lxcyEcKZKYDwd7JKRZj93wqpBPpg==", | ||
19 | "requires": { | 16 | "requires": { |
20 | "color": "^3.1.0" | 17 | "color": "^3.1.0" |
21 | }, | ||
22 | "dependencies": { | ||
23 | "color": { | ||
24 | "version": "3.1.0", | ||
25 | "bundled": true, | ||
26 | "requires": { | ||
27 | "color-convert": "^1.9.1", | ||
28 | "color-string": "^1.5.2" | ||
29 | } | ||
30 | }, | ||
31 | "color-convert": { | ||
32 | "version": "1.9.3", | ||
33 | "bundled": true, | ||
34 | "requires": { | ||
35 | "color-name": "1.1.3" | ||
36 | } | ||
37 | }, | ||
38 | "color-name": { | ||
39 | "version": "1.1.3", | ||
40 | "bundled": true | ||
41 | }, | ||
42 | "color-string": { | ||
43 | "version": "1.5.3", | ||
44 | "bundled": true, | ||
45 | "requires": { | ||
46 | "color-name": "^1.0.0", | ||
47 | "simple-swizzle": "^0.2.2" | ||
48 | } | ||
49 | }, | ||
50 | "is-arrayish": { | ||
51 | "version": "0.3.2", | ||
52 | "bundled": true | ||
53 | }, | ||
54 | "simple-swizzle": { | ||
55 | "version": "0.2.2", | ||
56 | "bundled": true, | ||
57 | "requires": { | ||
58 | "is-arrayish": "^0.3.1" | ||
59 | } | ||
60 | } | ||
61 | } | 18 | } |
62 | }, | 19 | }, |
63 | "asap": { | 20 | "asap": { |
@@ -65,6 +22,37 @@ | |||
65 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", | 22 | "resolved": "https://registry.npmjs.org/asap/-/asap-2.0.6.tgz", |
66 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" | 23 | "integrity": "sha1-5QNHYR1+aQlDIIu9r+vLwvuGbUY=" |
67 | }, | 24 | }, |
25 | "color": { | ||
26 | "version": "3.1.2", | ||
27 | "resolved": "https://registry.npmjs.org/color/-/color-3.1.2.tgz", | ||
28 | "integrity": "sha512-vXTJhHebByxZn3lDvDJYw4lR5+uB3vuoHsuYA5AKuxRVn5wzzIfQKGLBmgdVRHKTJYeK5rvJcHnrd0Li49CFpg==", | ||
29 | "requires": { | ||
30 | "color-convert": "^1.9.1", | ||
31 | "color-string": "^1.5.2" | ||
32 | } | ||
33 | }, | ||
34 | "color-convert": { | ||
35 | "version": "1.9.3", | ||
36 | "resolved": "https://registry.npmjs.org/color-convert/-/color-convert-1.9.3.tgz", | ||
37 | "integrity": "sha512-QfAUtd+vFdAtFQcC8CCyYt1fYWxSqAiK2cSD6zDB8N3cpsEBAvRxp9zOGg6G/SHHJYAT88/az/IuDGALsNVbGg==", | ||
38 | "requires": { | ||
39 | "color-name": "1.1.3" | ||
40 | } | ||
41 | }, | ||
42 | "color-name": { | ||
43 | "version": "1.1.3", | ||
44 | "resolved": "https://registry.npmjs.org/color-name/-/color-name-1.1.3.tgz", | ||
45 | "integrity": "sha1-p9BVi9icQveV3UIyj3QIMcpTvCU=" | ||
46 | }, | ||
47 | "color-string": { | ||
48 | "version": "1.5.3", | ||
49 | "resolved": "https://registry.npmjs.org/color-string/-/color-string-1.5.3.tgz", | ||
50 | "integrity": "sha512-dC2C5qeWoYkxki5UAXapdjqO672AM4vZuPGRQfO8b5HKuKGBbKWpITyDYN7TOFKvRW7kOgAn3746clDBMDJyQw==", | ||
51 | "requires": { | ||
52 | "color-name": "^1.0.0", | ||
53 | "simple-swizzle": "^0.2.2" | ||
54 | } | ||
55 | }, | ||
68 | "core-js": { | 56 | "core-js": { |
69 | "version": "1.2.7", | 57 | "version": "1.2.7", |
70 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", | 58 | "resolved": "https://registry.npmjs.org/core-js/-/core-js-1.2.7.tgz", |
@@ -110,6 +98,11 @@ | |||
110 | "safer-buffer": ">= 2.1.2 < 3" | 98 | "safer-buffer": ">= 2.1.2 < 3" |
111 | } | 99 | } |
112 | }, | 100 | }, |
101 | "is-arrayish": { | ||
102 | "version": "0.3.2", | ||
103 | "resolved": "https://registry.npmjs.org/is-arrayish/-/is-arrayish-0.3.2.tgz", | ||
104 | "integrity": "sha512-eVRqCvVlZbuw3GrM63ovNSNAeA1K16kaR/LRY/92w0zxQ5/1YzwblUX652i4Xs9RwAGjW9d9y6X88t8OaAJfWQ==" | ||
105 | }, | ||
113 | "is-stream": { | 106 | "is-stream": { |
114 | "version": "1.1.0", | 107 | "version": "1.1.0", |
115 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", | 108 | "resolved": "https://registry.npmjs.org/is-stream/-/is-stream-1.1.0.tgz", |
@@ -188,6 +181,14 @@ | |||
188 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", | 181 | "resolved": "https://registry.npmjs.org/setimmediate/-/setimmediate-1.0.5.tgz", |
189 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" | 182 | "integrity": "sha1-KQy7Iy4waULX1+qbg3Mqt4VvgoU=" |
190 | }, | 183 | }, |
184 | "simple-swizzle": { | ||
185 | "version": "0.2.2", | ||
186 | "resolved": "https://registry.npmjs.org/simple-swizzle/-/simple-swizzle-0.2.2.tgz", | ||
187 | "integrity": "sha1-pNprY1/8zMoz9w0Xy5JZLeleVXo=", | ||
188 | "requires": { | ||
189 | "is-arrayish": "^0.3.1" | ||
190 | } | ||
191 | }, | ||
191 | "spin.js": { | 192 | "spin.js": { |
192 | "version": "2.3.2", | 193 | "version": "2.3.2", |
193 | "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz", | 194 | "resolved": "https://registry.npmjs.org/spin.js/-/spin.js-2.3.2.tgz", |
diff --git a/packages/ui/package.json b/packages/ui/package.json index 214437093..fefe06f4c 100644 --- a/packages/ui/package.json +++ b/packages/ui/package.json | |||
@@ -1,7 +1,7 @@ | |||
1 | { | 1 | { |
2 | "name": "@meetfranz/ui", | 2 | "name": "@meetfranz/ui", |
3 | "version": "1.0.0", | 3 | "version": "1.1.0", |
4 | "description": "React UI components for Ferdi", | 4 | "description": "React UI components for Franz", |
5 | "main": "lib/index.js", | 5 | "main": "lib/index.js", |
6 | "scripts": { | 6 | "scripts": { |
7 | "dev": "tsc -w", | 7 | "dev": "tsc -w", |
@@ -23,7 +23,6 @@ | |||
23 | "author": "Stefan Malzner <stefan@adlk.io>", | 23 | "author": "Stefan Malzner <stefan@adlk.io>", |
24 | "license": "Apache-2.0", | 24 | "license": "Apache-2.0", |
25 | "dependencies": { | 25 | "dependencies": { |
26 | "@mdi/js": "^3.3.92", | ||
27 | "@mdi/react": "^1.1.0", | 26 | "@mdi/react": "^1.1.0", |
28 | "@meetfranz/theme": "^1.0.14", | 27 | "@meetfranz/theme": "^1.0.14", |
29 | "react-loader": "^2.4.5" | 28 | "react-loader": "^2.4.5" |
@@ -34,5 +33,5 @@ | |||
34 | "react-dom": "16.7.0", | 33 | "react-dom": "16.7.0", |
35 | "react-jss": "^8.6.1" | 34 | "react-jss": "^8.6.1" |
36 | }, | 35 | }, |
37 | "gitHead": "e1e46986d902adc4c19ee009016290f9733a7d61" | 36 | "gitHead": "254da30f801169fac376bda1439b46cabbb491ad" |
38 | } | 37 | } |
diff --git a/src/actions/service.js b/src/actions/service.js index f0c42e8aa..578fdeca8 100644 --- a/src/actions/service.js +++ b/src/actions/service.js | |||
@@ -95,9 +95,14 @@ export default { | |||
95 | serviceId: PropTypes.string.isRequired, | 95 | serviceId: PropTypes.string.isRequired, |
96 | }, | 96 | }, |
97 | openDevToolsForActiveService: {}, | 97 | openDevToolsForActiveService: {}, |
98 | setHibernation: { | 98 | hibernate: { |
99 | serviceId: PropTypes.string.isRequired, | 99 | serviceId: PropTypes.string.isRequired, |
100 | hibernating: PropTypes.bool.isRequired, | 100 | }, |
101 | awake: { | ||
102 | serviceId: PropTypes.string.isRequired, | ||
103 | }, | ||
104 | resetLastPollTimer: { | ||
105 | serviceId: PropTypes.string, | ||
101 | }, | 106 | }, |
102 | shareSettingsWithServiceProcess: {}, | 107 | shareSettingsWithServiceProcess: {}, |
103 | }; | 108 | }; |
diff --git a/src/components/auth/Pricing.js b/src/components/auth/Pricing.js index 593cb9c4b..4f5a76c8a 100644 --- a/src/components/auth/Pricing.js +++ b/src/components/auth/Pricing.js | |||
@@ -67,6 +67,15 @@ const messages = defineMessages({ | |||
67 | }); | 67 | }); |
68 | 68 | ||
69 | const styles = theme => ({ | 69 | const styles = theme => ({ |
70 | root: { | ||
71 | width: '500px !important', | ||
72 | textAlign: 'center', | ||
73 | padding: 20, | ||
74 | zIndex: 100, | ||
75 | |||
76 | '& h1': { | ||
77 | }, | ||
78 | }, | ||
70 | container: { | 79 | container: { |
71 | position: 'relative', | 80 | position: 'relative', |
72 | marginLeft: -150, | 81 | marginLeft: -150, |
@@ -86,8 +95,8 @@ const styles = theme => ({ | |||
86 | featureContainer: { | 95 | featureContainer: { |
87 | width: 300, | 96 | width: 300, |
88 | position: 'absolute', | 97 | position: 'absolute', |
89 | left: 'calc(100% / 2 + 225px)', | 98 | left: 'calc(100% / 2 + 250px)', |
90 | top: 155, | 99 | marginTop: 20, |
91 | background: theme.signup.pricing.feature.background, | 100 | background: theme.signup.pricing.feature.background, |
92 | height: 'auto', | 101 | height: 'auto', |
93 | padding: 20, | 102 | padding: 20, |
@@ -174,8 +183,8 @@ export default @injectSheet(styles) @observer class Signup extends Component { | |||
174 | const [intPart, fractionPart] = (price).toString().split('.'); | 183 | const [intPart, fractionPart] = (price).toString().split('.'); |
175 | 184 | ||
176 | return ( | 185 | return ( |
177 | <div className={classnames('auth__scroll-container', classes.container)}> | 186 | <> |
178 | <div className={classnames('auth__container', 'auth__container--signup', classes.content)}> | 187 | <div className={classnames('auth__container', classes.root, classes.container)}> |
179 | <form className="franz-form auth__form"> | 188 | <form className="franz-form auth__form"> |
180 | {isLoadingRequiredData ? <Loader /> : ( | 189 | {isLoadingRequiredData ? <Loader /> : ( |
181 | <img | 190 | <img |
@@ -212,7 +221,7 @@ export default @injectSheet(styles) @observer class Signup extends Component { | |||
212 | <p className={classnames(classes.price, classes.trialPrice)}> | 221 | <p className={classnames(classes.price, classes.trialPrice)}> |
213 | <span className={classes.figure}> | 222 | <span className={classes.figure}> |
214 | {currency} | 223 | {currency} |
215 | 0 | 224 | 0 |
216 | </span> | 225 | </span> |
217 | <sup>00</sup> | 226 | <sup>00</sup> |
218 | </p> | 227 | </p> |
@@ -234,7 +243,7 @@ export default @injectSheet(styles) @observer class Signup extends Component { | |||
234 | </ul> | 243 | </ul> |
235 | </div> | 244 | </div> |
236 | {trialActivationError && ( | 245 | {trialActivationError && ( |
237 | <p className={classes.error}>{intl.formatMessage(messages.activationError)}</p> | 246 | <p className={classes.error}>{intl.formatMessage(messages.activationError)}</p> |
238 | )} | 247 | )} |
239 | <Button | 248 | <Button |
240 | label={intl.formatMessage(!canSkipTrial ? messages.ctaStart : messages.ctaAccept)} | 249 | label={intl.formatMessage(!canSkipTrial ? messages.ctaStart : messages.ctaAccept)} |
@@ -244,9 +253,9 @@ export default @injectSheet(styles) @observer class Signup extends Component { | |||
244 | disabled={isLoadingRequiredData || isActivatingTrial} | 253 | disabled={isLoadingRequiredData || isActivatingTrial} |
245 | /> | 254 | /> |
246 | {canSkipTrial && ( | 255 | {canSkipTrial && ( |
247 | <p className={classes.skipLink}> | 256 | <p className={classes.skipLink}> |
248 | <a href="#/">{intl.formatMessage(messages.ctaSkip)}</a> | 257 | <a href="#/">{intl.formatMessage(messages.ctaSkip)}</a> |
249 | </p> | 258 | </p> |
250 | )} | 259 | )} |
251 | </form> | 260 | </form> |
252 | </div> | 261 | </div> |
@@ -256,7 +265,7 @@ export default @injectSheet(styles) @observer class Signup extends Component { | |||
256 | </H2> | 265 | </H2> |
257 | <FeatureList /> | 266 | <FeatureList /> |
258 | </div> | 267 | </div> |
259 | </div> | 268 | </> |
260 | ); | 269 | ); |
261 | } | 270 | } |
262 | } | 271 | } |
diff --git a/src/components/auth/SetupAssistant.js b/src/components/auth/SetupAssistant.js new file mode 100644 index 000000000..e03cf9101 --- /dev/null +++ b/src/components/auth/SetupAssistant.js | |||
@@ -0,0 +1,319 @@ | |||
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 injectSheet from 'react-jss'; | ||
6 | import classnames from 'classnames'; | ||
7 | |||
8 | import { Input, Button } from '@meetfranz/forms'; | ||
9 | import { Badge } from '@meetfranz/ui'; | ||
10 | import Modal from '../ui/Modal'; | ||
11 | import Infobox from '../ui/Infobox'; | ||
12 | import Appear from '../ui/effects/Appear'; | ||
13 | |||
14 | import { CDN_URL } from '../../config'; | ||
15 | |||
16 | const SLACK_ID = 'slack'; | ||
17 | |||
18 | const messages = defineMessages({ | ||
19 | headline: { | ||
20 | id: 'setupAssistant.headline', | ||
21 | defaultMessage: '!!!Let\'s get started', | ||
22 | }, | ||
23 | subHeadline: { | ||
24 | id: 'setupAssistant.subheadline', | ||
25 | defaultMessage: '!!!Choose from our most used services and get back on top of your messaging now.', | ||
26 | }, | ||
27 | submitButtonLabel: { | ||
28 | id: 'setupAssistant.submit.label', | ||
29 | defaultMessage: '!!!Let\'s go', | ||
30 | }, | ||
31 | inviteSuccessInfo: { | ||
32 | id: 'invite.successInfo', | ||
33 | defaultMessage: '!!!Invitations sent successfully', | ||
34 | }, | ||
35 | }); | ||
36 | |||
37 | const styles = theme => ({ | ||
38 | root: { | ||
39 | width: '500px !important', | ||
40 | textAlign: 'center', | ||
41 | padding: 20, | ||
42 | |||
43 | '& h1': { | ||
44 | }, | ||
45 | }, | ||
46 | servicesGrid: { | ||
47 | display: 'flex', | ||
48 | flexWrap: 'wrap', | ||
49 | justifyContent: 'space-between', | ||
50 | }, | ||
51 | serviceContainer: { | ||
52 | background: theme.colorBackground, | ||
53 | position: 'relative', | ||
54 | width: '32%', | ||
55 | display: 'flex', | ||
56 | alignItems: 'center', | ||
57 | flexDirection: 'column', | ||
58 | justifyContent: 'center', | ||
59 | padding: 20, | ||
60 | borderRadius: theme.borderRadius, | ||
61 | marginBottom: 10, | ||
62 | opacity: 0.5, | ||
63 | transition: 'all 0.25s', | ||
64 | border: [3, 'solid', 'transparent'], | ||
65 | |||
66 | '& h2': { | ||
67 | margin: [10, 0, 0], | ||
68 | color: theme.colorText, | ||
69 | }, | ||
70 | |||
71 | '&:hover': { | ||
72 | border: [3, 'solid', theme.brandPrimary], | ||
73 | '& $serviceIcon': { | ||
74 | }, | ||
75 | }, | ||
76 | |||
77 | }, | ||
78 | selected: { | ||
79 | border: [3, 'solid', theme.brandPrimary], | ||
80 | background: `${theme.brandPrimary}47`, | ||
81 | opacity: 1, | ||
82 | }, | ||
83 | serviceIcon: { | ||
84 | width: 50, | ||
85 | transition: 'all 0.25s', | ||
86 | }, | ||
87 | |||
88 | slackModalContent: { | ||
89 | textAlign: 'center', | ||
90 | |||
91 | '& img': { | ||
92 | width: 50, | ||
93 | marginBottom: 20, | ||
94 | }, | ||
95 | }, | ||
96 | modalActionContainer: { | ||
97 | display: 'flex', | ||
98 | flexDirection: 'column', | ||
99 | justifyContent: 'center', | ||
100 | alignItems: 'center', | ||
101 | }, | ||
102 | ctaCancel: { | ||
103 | background: 'none !important', | ||
104 | }, | ||
105 | slackBadge: { | ||
106 | position: 'absolute', | ||
107 | bottom: 4, | ||
108 | height: 'auto', | ||
109 | padding: '0px 4px', | ||
110 | borderRadius: theme.borderRadiusSmall, | ||
111 | margin: 0, | ||
112 | display: 'flex', | ||
113 | overflow: 'hidden', | ||
114 | }, | ||
115 | clearSlackWorkspace: { | ||
116 | background: theme.inputPrefixColor, | ||
117 | marginLeft: 5, | ||
118 | height: '100%', | ||
119 | color: theme.colorText, | ||
120 | display: 'inline-flex', | ||
121 | justifyContent: 'center', | ||
122 | alignItems: 'center', | ||
123 | marginRight: -4, | ||
124 | padding: [0, 5], | ||
125 | }, | ||
126 | }); | ||
127 | |||
128 | @injectSheet(styles) @observer | ||
129 | class SetupAssistant extends Component { | ||
130 | static propTypes = { | ||
131 | classes: PropTypes.object.isRequired, | ||
132 | onSubmit: PropTypes.func.isRequired, | ||
133 | isInviteSuccessful: PropTypes.bool, | ||
134 | services: PropTypes.object.isRequired, | ||
135 | isSettingUpServices: PropTypes.bool.isRequired, | ||
136 | }; | ||
137 | |||
138 | static defaultProps = { | ||
139 | isInviteSuccessful: false, | ||
140 | }; | ||
141 | |||
142 | static contextTypes = { | ||
143 | intl: intlShape, | ||
144 | }; | ||
145 | |||
146 | state = { | ||
147 | services: [{ | ||
148 | id: 'whatsapp', | ||
149 | }, { | ||
150 | id: 'messenger', | ||
151 | }, { | ||
152 | id: 'gmail', | ||
153 | }], | ||
154 | isSlackModalOpen: false, | ||
155 | slackWorkspace: '', | ||
156 | }; | ||
157 | |||
158 | slackWorkspaceHandler() { | ||
159 | const { slackWorkspace = '', services } = this.state; | ||
160 | |||
161 | const sanitizedWorkspace = slackWorkspace.trim().replace(/^https?:\/\//, ''); | ||
162 | |||
163 | if (sanitizedWorkspace) { | ||
164 | const index = services.findIndex(s => s.id === SLACK_ID); | ||
165 | |||
166 | if (index === -1) { | ||
167 | const newServices = services; | ||
168 | newServices.push({ id: SLACK_ID, team: sanitizedWorkspace }); | ||
169 | this.setState({ services: newServices }); | ||
170 | } | ||
171 | } | ||
172 | |||
173 | this.setState({ | ||
174 | isSlackModalOpen: false, | ||
175 | slackWorkspace: sanitizedWorkspace, | ||
176 | }); | ||
177 | } | ||
178 | |||
179 | render() { | ||
180 | const { intl } = this.context; | ||
181 | const { | ||
182 | classes, isInviteSuccessful, onSubmit, services, isSettingUpServices, | ||
183 | } = this.props; | ||
184 | const { isSlackModalOpen, slackWorkspace, services: addedServices } = this.state; | ||
185 | |||
186 | return ( | ||
187 | <div className={`auth__container ${classes.root}`}> | ||
188 | {this.state.showSuccessInfo && isInviteSuccessful && ( | ||
189 | <Appear> | ||
190 | <Infobox | ||
191 | type="success" | ||
192 | icon="checkbox-marked-circle-outline" | ||
193 | dismissable | ||
194 | > | ||
195 | {intl.formatMessage(messages.inviteSuccessInfo)} | ||
196 | </Infobox> | ||
197 | </Appear> | ||
198 | )} | ||
199 | |||
200 | <img | ||
201 | src="./assets/images/logo.svg" | ||
202 | className="auth__logo" | ||
203 | alt="" | ||
204 | /> | ||
205 | <h1> | ||
206 | {intl.formatMessage(messages.headline)} | ||
207 | </h1> | ||
208 | <h2> | ||
209 | {intl.formatMessage(messages.subHeadline)} | ||
210 | </h2> | ||
211 | <div className={classnames('grid', classes.servicesGrid)}> | ||
212 | {Object.keys(services).map((id) => { | ||
213 | const service = services[id]; | ||
214 | return ( | ||
215 | <button | ||
216 | className={classnames({ | ||
217 | [classes.serviceContainer]: true, | ||
218 | [classes.selected]: this.state.services.findIndex(s => s.id === id) !== -1, | ||
219 | })} | ||
220 | key={id} | ||
221 | onClick={() => { | ||
222 | const index = this.state.services.findIndex(s => s.id === id); | ||
223 | if (index === -1) { | ||
224 | if (id === SLACK_ID) { | ||
225 | this.setState({ isSlackModalOpen: true }); | ||
226 | } else { | ||
227 | addedServices.push({ id }); | ||
228 | } | ||
229 | } else { | ||
230 | addedServices.splice(index, 1); | ||
231 | if (id === SLACK_ID) { | ||
232 | this.setState({ | ||
233 | slackWorkspace: '', | ||
234 | }); | ||
235 | } | ||
236 | } | ||
237 | |||
238 | this.setState({ services: addedServices }); | ||
239 | }} | ||
240 | type="button" | ||
241 | > | ||
242 | <img | ||
243 | src={`${CDN_URL}/recipes/dist/${id}/src/icon.svg`} | ||
244 | className={classes.serviceIcon} | ||
245 | alt="" | ||
246 | /> | ||
247 | <h2> | ||
248 | {service.name} | ||
249 | </h2> | ||
250 | {id === SLACK_ID && slackWorkspace && ( | ||
251 | <Badge type="secondary" className={classes.slackBadge}> | ||
252 | {slackWorkspace} | ||
253 | <button | ||
254 | type="button" | ||
255 | className={classes.clearSlackWorkspace} | ||
256 | onClick={() => { | ||
257 | this.setState({ | ||
258 | slackWorkspace: '', | ||
259 | }); | ||
260 | }} | ||
261 | > | ||
262 | x | ||
263 | </button> | ||
264 | </Badge> | ||
265 | )} | ||
266 | </button> | ||
267 | ); | ||
268 | })} | ||
269 | </div> | ||
270 | <Modal | ||
271 | isOpen={isSlackModalOpen} | ||
272 | // isBlocking={false} | ||
273 | close={() => this.setState({ isSlackModalOpen: false })} | ||
274 | > | ||
275 | <div className={classes.slackModalContent}> | ||
276 | <img src={`${CDN_URL}/recipes/dist/slack/src/icon.svg`} alt="" /> | ||
277 | <h1>Create your first Slack workspace</h1> | ||
278 | <form onSubmit={(e) => { | ||
279 | e.preventDefault(); | ||
280 | this.slackWorkspaceHandler(); | ||
281 | }} | ||
282 | > | ||
283 | <Input | ||
284 | suffix=".slack.com" | ||
285 | placeholder="workspace-url" | ||
286 | onChange={e => this.setState({ slackWorkspace: e.target.value })} | ||
287 | value={slackWorkspace} | ||
288 | /> | ||
289 | <div className={classes.modalActionContainer}> | ||
290 | <Button | ||
291 | type="submit" | ||
292 | label="Save" | ||
293 | /> | ||
294 | <Button | ||
295 | type="link" | ||
296 | buttonType="secondary" | ||
297 | label="Cancel" | ||
298 | className={classes.ctaCancel} | ||
299 | onClick={() => this.setState({ slackWorkspace: '' })} | ||
300 | /> | ||
301 | </div> | ||
302 | </form> | ||
303 | </div> | ||
304 | </Modal> | ||
305 | <Button | ||
306 | type="button" | ||
307 | className="auth__button" | ||
308 | // disabled={!atLeastOneEmailAddress} | ||
309 | label={intl.formatMessage(messages.submitButtonLabel)} | ||
310 | onClick={() => onSubmit(this.state.services)} | ||
311 | busy={isSettingUpServices} | ||
312 | disabled={isSettingUpServices || addedServices.length === 0} | ||
313 | /> | ||
314 | </div> | ||
315 | ); | ||
316 | } | ||
317 | } | ||
318 | |||
319 | export default SetupAssistant; | ||
diff --git a/src/components/layout/Sidebar.js b/src/components/layout/Sidebar.js index 90bbe86e9..a47e74db0 100644 --- a/src/components/layout/Sidebar.js +++ b/src/components/layout/Sidebar.js | |||
@@ -60,6 +60,7 @@ export default @inject('stores', 'actions') @observer class Sidebar extends Comp | |||
60 | isAppMuted: PropTypes.bool.isRequired, | 60 | isAppMuted: PropTypes.bool.isRequired, |
61 | isWorkspaceDrawerOpen: PropTypes.bool.isRequired, | 61 | isWorkspaceDrawerOpen: PropTypes.bool.isRequired, |
62 | toggleWorkspaceDrawer: PropTypes.func.isRequired, | 62 | toggleWorkspaceDrawer: PropTypes.func.isRequired, |
63 | isTodosServiceActive: PropTypes.bool.isRequired, | ||
63 | }; | 64 | }; |
64 | 65 | ||
65 | static contextTypes = { | 66 | static contextTypes = { |
@@ -96,6 +97,7 @@ export default @inject('stores', 'actions') @observer class Sidebar extends Comp | |||
96 | toggleWorkspaceDrawer, | 97 | toggleWorkspaceDrawer, |
97 | stores, | 98 | stores, |
98 | actions, | 99 | actions, |
100 | isTodosServiceActive, | ||
99 | } = this.props; | 101 | } = this.props; |
100 | const { intl } = this.context; | 102 | const { intl } = this.context; |
101 | const todosToggleMessage = ( | 103 | const todosToggleMessage = ( |
@@ -140,6 +142,7 @@ export default @inject('stores', 'actions') @observer class Sidebar extends Comp | |||
140 | todoActions.toggleTodosPanel(); | 142 | todoActions.toggleTodosPanel(); |
141 | this.updateToolTip(); | 143 | this.updateToolTip(); |
142 | }} | 144 | }} |
145 | disblaed={isTodosServiceActive} | ||
143 | className={`sidebar__button sidebar__button--todos ${todosStore.isTodosPanelVisible ? 'is-active' : ''}`} | 146 | className={`sidebar__button sidebar__button--todos ${todosStore.isTodosPanelVisible ? 'is-active' : ''}`} |
144 | data-tip={`${intl.formatMessage(todosToggleMessage)} (${ctrlKey}+T)`} | 147 | data-tip={`${intl.formatMessage(todosToggleMessage)} (${ctrlKey}+T)`} |
145 | > | 148 | > |
diff --git a/src/components/services/content/ServiceView.js b/src/components/services/content/ServiceView.js index d91016c71..444d5fea4 100644 --- a/src/components/services/content/ServiceView.js +++ b/src/components/services/content/ServiceView.js | |||
@@ -1,6 +1,6 @@ | |||
1 | import React, { Component, Fragment } from 'react'; | 1 | import React, { Component, Fragment } from 'react'; |
2 | import PropTypes from 'prop-types'; | 2 | import PropTypes from 'prop-types'; |
3 | import { autorun, reaction } from 'mobx'; | 3 | import { autorun } from 'mobx'; |
4 | import { observer, inject } from 'mobx-react'; | 4 | import { observer, inject } from 'mobx-react'; |
5 | import classnames from 'classnames'; | 5 | import classnames from 'classnames'; |
6 | 6 | ||
@@ -27,11 +27,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
27 | stores: PropTypes.shape({ | 27 | stores: PropTypes.shape({ |
28 | settings: PropTypes.instanceOf(SettingsStore).isRequired, | 28 | settings: PropTypes.instanceOf(SettingsStore).isRequired, |
29 | }).isRequired, | 29 | }).isRequired, |
30 | actions: PropTypes.shape({ | 30 | isSpellcheckerEnabled: PropTypes.bool.isRequired, |
31 | service: PropTypes.shape({ | ||
32 | setHibernation: PropTypes.func.isRequired, | ||
33 | }).isRequired, | ||
34 | }).isRequired, | ||
35 | }; | 31 | }; |
36 | 32 | ||
37 | static defaultProps = { | 33 | static defaultProps = { |
@@ -50,12 +46,6 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
50 | 46 | ||
51 | forceRepaintTimeout = null; | 47 | forceRepaintTimeout = null; |
52 | 48 | ||
53 | constructor(props) { | ||
54 | super(props); | ||
55 | |||
56 | this.startHibernationTimer = this.startHibernationTimer.bind(this); | ||
57 | } | ||
58 | |||
59 | componentDidMount() { | 49 | componentDidMount() { |
60 | this.autorunDisposer = autorun(() => { | 50 | this.autorunDisposer = autorun(() => { |
61 | if (this.props.service.isActive) { | 51 | if (this.props.service.isActive) { |
@@ -65,32 +55,6 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
65 | }, 100); | 55 | }, 100); |
66 | } | 56 | } |
67 | }); | 57 | }); |
68 | |||
69 | reaction( | ||
70 | () => this.props.service.isActive, | ||
71 | () => { | ||
72 | if (!this.props.service.isActive && this.props.stores.settings.all.app.hibernate) { | ||
73 | // Service is inactive - start hibernation countdown | ||
74 | this.startHibernationTimer(); | ||
75 | } else { | ||
76 | if (this.hibernationTimer) { | ||
77 | // Service is active but we have an active hibernation timer: Clear timeout | ||
78 | clearTimeout(this.hibernationTimer); | ||
79 | } | ||
80 | |||
81 | // Service is active, wake up service from hibernation | ||
82 | this.props.actions.service.setHibernation({ | ||
83 | serviceId: this.props.service.id, | ||
84 | hibernating: false, | ||
85 | }); | ||
86 | } | ||
87 | }, | ||
88 | ); | ||
89 | |||
90 | // Start hibernation counter if we are in background | ||
91 | if (!this.props.service.isActive && this.props.stores.settings.all.app.hibernate) { | ||
92 | this.startHibernationTimer(); | ||
93 | } | ||
94 | } | 58 | } |
95 | 59 | ||
96 | componentWillUnmount() { | 60 | componentWillUnmount() { |
@@ -110,19 +74,6 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
110 | }); | 74 | }); |
111 | }; | 75 | }; |
112 | 76 | ||
113 | startHibernationTimer() { | ||
114 | const timerDuration = (Number(this.props.stores.settings.all.app.hibernationStrategy) || 300) * 1000; | ||
115 | |||
116 | const hibernationTimer = setTimeout(() => { | ||
117 | this.props.actions.service.setHibernation({ | ||
118 | serviceId: this.props.service.id, | ||
119 | hibernating: true, | ||
120 | }); | ||
121 | }, timerDuration); | ||
122 | |||
123 | this.hibernationTimer = hibernationTimer; | ||
124 | } | ||
125 | |||
126 | render() { | 77 | render() { |
127 | const { | 78 | const { |
128 | detachService, | 79 | detachService, |
@@ -132,6 +83,7 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
132 | edit, | 83 | edit, |
133 | enable, | 84 | enable, |
134 | stores, | 85 | stores, |
86 | isSpellcheckerEnabled, | ||
135 | } = this.props; | 87 | } = this.props; |
136 | 88 | ||
137 | const { | 89 | const { |
@@ -193,22 +145,19 @@ export default @inject('stores', 'actions') @observer class ServiceView extends | |||
193 | </Fragment> | 145 | </Fragment> |
194 | ) : ( | 146 | ) : ( |
195 | <> | 147 | <> |
196 | {(!service.isHibernating || service.disableHibernation) ? ( | 148 | {(!service.isHibernating || service.isHibernationEnabled) ? ( |
197 | <> | 149 | <> |
198 | {showNavBar && ( | 150 | {showNavBar && ( |
199 | <WebControlsScreen service={service} /> | 151 | <WebControlsScreen service={service} /> |
200 | )} | 152 | )} |
201 | <ServiceWebview | 153 | {!service.isHibernating && ( |
202 | service={service} | 154 | <ServiceWebview |
203 | setWebviewReference={setWebviewReference} | 155 | service={service} |
204 | detachService={detachService} | 156 | setWebviewReference={setWebviewReference} |
205 | /> | 157 | detachService={detachService} |
206 | {/* {service.lostRecipeConnection && ( | 158 | isSpellcheckerEnabled={isSpellcheckerEnabled} |
207 | <ConnectionLostBanner | ||
208 | name={service.name} | ||
209 | reload={reload} | ||
210 | /> | 159 | /> |
211 | )} */} | 160 | )} |
212 | </> | 161 | </> |
213 | ) : ( | 162 | ) : ( |
214 | <div> | 163 | <div> |
diff --git a/src/components/services/content/ServiceWebview.js b/src/components/services/content/ServiceWebview.js index 2e3354279..4edbde5e2 100644 --- a/src/components/services/content/ServiceWebview.js +++ b/src/components/services/content/ServiceWebview.js | |||
@@ -15,6 +15,7 @@ class ServiceWebview extends Component { | |||
15 | service: PropTypes.instanceOf(ServiceModel).isRequired, | 15 | service: PropTypes.instanceOf(ServiceModel).isRequired, |
16 | setWebviewReference: PropTypes.func.isRequired, | 16 | setWebviewReference: PropTypes.func.isRequired, |
17 | detachService: PropTypes.func.isRequired, | 17 | detachService: PropTypes.func.isRequired, |
18 | isSpellcheckerEnabled: PropTypes.bool.isRequired, | ||
18 | }; | 19 | }; |
19 | 20 | ||
20 | @observable webview = null; | 21 | @observable webview = null; |
@@ -55,6 +56,7 @@ class ServiceWebview extends Component { | |||
55 | const { | 56 | const { |
56 | service, | 57 | service, |
57 | setWebviewReference, | 58 | setWebviewReference, |
59 | isSpellcheckerEnabled, | ||
58 | } = this.props; | 60 | } = this.props; |
59 | 61 | ||
60 | const preloadScript = path.join(__dirname, '../../../', 'webview', 'recipe.js'); | 62 | const preloadScript = path.join(__dirname, '../../../', 'webview', 'recipe.js'); |
@@ -70,7 +72,7 @@ class ServiceWebview extends Component { | |||
70 | autosize | 72 | autosize |
71 | src={service.url} | 73 | src={service.url} |
72 | preload={preloadScript} | 74 | preload={preloadScript} |
73 | partition={`persist:service-${service.id}`} | 75 | partition={service.partition} |
74 | onDidAttach={() => { | 76 | onDidAttach={() => { |
75 | setWebviewReference({ | 77 | setWebviewReference({ |
76 | serviceId: service.id, | 78 | serviceId: service.id, |
@@ -81,6 +83,7 @@ class ServiceWebview extends Component { | |||
81 | useragent={service.userAgent} | 83 | useragent={service.userAgent} |
82 | disablewebsecurity={service.recipe.disablewebsecurity ? true : undefined} | 84 | disablewebsecurity={service.recipe.disablewebsecurity ? true : undefined} |
83 | allowpopups | 85 | allowpopups |
86 | webpreferences={`spellcheck=${isSpellcheckerEnabled ? 1 : 0}`} | ||
84 | /> | 87 | /> |
85 | ); | 88 | ); |
86 | } | 89 | } |
diff --git a/src/components/services/content/Services.js b/src/components/services/content/Services.js index da2ee0b9e..f679eeed0 100644 --- a/src/components/services/content/Services.js +++ b/src/components/services/content/Services.js | |||
@@ -10,6 +10,7 @@ import injectSheet from 'react-jss'; | |||
10 | import ServiceView from './ServiceView'; | 10 | import ServiceView from './ServiceView'; |
11 | import Appear from '../../ui/effects/Appear'; | 11 | import Appear from '../../ui/effects/Appear'; |
12 | import serverlessLogin from '../../../helpers/serverless-helpers'; | 12 | import serverlessLogin from '../../../helpers/serverless-helpers'; |
13 | import { TODOS_RECIPE_ID } from '../../../features/todos'; | ||
13 | 14 | ||
14 | const messages = defineMessages({ | 15 | const messages = defineMessages({ |
15 | welcome: { | 16 | welcome: { |
@@ -58,6 +59,7 @@ export default @injectSheet(styles) @inject('actions') @observer class Services | |||
58 | hasActivatedTrial: PropTypes.bool.isRequired, | 59 | hasActivatedTrial: PropTypes.bool.isRequired, |
59 | classes: PropTypes.object.isRequired, | 60 | classes: PropTypes.object.isRequired, |
60 | actions: PropTypes.object.isRequired, | 61 | actions: PropTypes.object.isRequired, |
62 | isSpellcheckerEnabled: PropTypes.bool.isRequired, | ||
61 | }; | 63 | }; |
62 | 64 | ||
63 | static defaultProps = { | 65 | static defaultProps = { |
@@ -111,6 +113,7 @@ export default @injectSheet(styles) @inject('actions') @observer class Services | |||
111 | userHasCompletedSignup, | 113 | userHasCompletedSignup, |
112 | hasActivatedTrial, | 114 | hasActivatedTrial, |
113 | classes, | 115 | classes, |
116 | isSpellcheckerEnabled, | ||
114 | } = this.props; | 117 | } = this.props; |
115 | 118 | ||
116 | const { | 119 | const { |
@@ -168,7 +171,7 @@ export default @injectSheet(styles) @inject('actions') @observer class Services | |||
168 | </div> | 171 | </div> |
169 | </Appear> | 172 | </Appear> |
170 | )} | 173 | )} |
171 | {services.map(service => ( | 174 | {services.filter(service => service.recipe.id !== TODOS_RECIPE_ID).map(service => ( |
172 | <ServiceView | 175 | <ServiceView |
173 | key={service.id} | 176 | key={service.id} |
174 | service={service} | 177 | service={service} |
@@ -186,6 +189,7 @@ export default @injectSheet(styles) @inject('actions') @observer class Services | |||
186 | redirect: false, | 189 | redirect: false, |
187 | })} | 190 | })} |
188 | upgrade={() => openSettings({ path: 'user' })} | 191 | upgrade={() => openSettings({ path: 'user' })} |
192 | isSpellcheckerEnabled={isSpellcheckerEnabled} | ||
189 | /> | 193 | /> |
190 | ))} | 194 | ))} |
191 | </div> | 195 | </div> |
diff --git a/src/components/services/tabs/TabItem.js b/src/components/services/tabs/TabItem.js index efa5fa60c..479f151a6 100644 --- a/src/components/services/tabs/TabItem.js +++ b/src/components/services/tabs/TabItem.js | |||
@@ -5,9 +5,14 @@ import PropTypes from 'prop-types'; | |||
5 | import { observer } from 'mobx-react'; | 5 | import { observer } from 'mobx-react'; |
6 | import classnames from 'classnames'; | 6 | import classnames from 'classnames'; |
7 | import { SortableElement } from 'react-sortable-hoc'; | 7 | import { SortableElement } from 'react-sortable-hoc'; |
8 | import injectSheet from 'react-jss'; | ||
9 | import ms from 'ms'; | ||
8 | 10 | ||
11 | import { observable, autorun } from 'mobx'; | ||
9 | import ServiceModel from '../../../models/Service'; | 12 | import ServiceModel from '../../../models/Service'; |
10 | import { ctrlKey } from '../../../environment'; | 13 | import { ctrlKey, cmdKey } from '../../../environment'; |
14 | |||
15 | const IS_SERVICE_DEBUGGING_ENABLED = (localStorage.getItem('debug') || '').includes('Franz:Service'); | ||
11 | 16 | ||
12 | const { Menu } = remote; | 17 | const { Menu } = remote; |
13 | 18 | ||
@@ -50,9 +55,38 @@ const messages = defineMessages({ | |||
50 | }, | 55 | }, |
51 | }); | 56 | }); |
52 | 57 | ||
53 | @observer | 58 | const styles = { |
54 | class TabItem extends Component { | 59 | pollIndicator: { |
60 | position: 'absolute', | ||
61 | bottom: 2, | ||
62 | width: 10, | ||
63 | height: 10, | ||
64 | borderRadius: 5, | ||
65 | background: 'gray', | ||
66 | transition: 'background 0.5s', | ||
67 | }, | ||
68 | pollIndicatorPoll: { | ||
69 | left: 2, | ||
70 | }, | ||
71 | pollIndicatorAnswer: { | ||
72 | left: 14, | ||
73 | }, | ||
74 | polled: { | ||
75 | background: 'yellow !important', | ||
76 | transition: 'background 0.1s', | ||
77 | }, | ||
78 | pollAnswered: { | ||
79 | background: 'green !important', | ||
80 | transition: 'background 0.1s', | ||
81 | }, | ||
82 | stale: { | ||
83 | background: 'red !important', | ||
84 | }, | ||
85 | }; | ||
86 | |||
87 | @injectSheet(styles) @observer class TabItem extends Component { | ||
55 | static propTypes = { | 88 | static propTypes = { |
89 | classes: PropTypes.object.isRequired, | ||
56 | service: PropTypes.instanceOf(ServiceModel).isRequired, | 90 | service: PropTypes.instanceOf(ServiceModel).isRequired, |
57 | clickHandler: PropTypes.func.isRequired, | 91 | clickHandler: PropTypes.func.isRequired, |
58 | shortcutIndex: PropTypes.number.isRequired, | 92 | shortcutIndex: PropTypes.number.isRequired, |
@@ -71,8 +105,33 @@ class TabItem extends Component { | |||
71 | intl: intlShape, | 105 | intl: intlShape, |
72 | }; | 106 | }; |
73 | 107 | ||
108 | @observable isPolled = false; | ||
109 | |||
110 | @observable isPollAnswered = false; | ||
111 | |||
112 | componentDidMount() { | ||
113 | const { service } = this.props; | ||
114 | |||
115 | if (IS_SERVICE_DEBUGGING_ENABLED) { | ||
116 | autorun(() => { | ||
117 | if (Date.now() - service.lastPoll < ms('0.2s')) { | ||
118 | this.isPolled = true; | ||
119 | |||
120 | setTimeout(() => { this.isPolled = false; }, ms('1s')); | ||
121 | } | ||
122 | |||
123 | if (Date.now() - service.lastPollAnswer < ms('0.2s')) { | ||
124 | this.isPollAnswered = true; | ||
125 | |||
126 | setTimeout(() => { this.isPollAnswered = false; }, ms('1s')); | ||
127 | } | ||
128 | }); | ||
129 | } | ||
130 | } | ||
131 | |||
74 | render() { | 132 | render() { |
75 | const { | 133 | const { |
134 | classes, | ||
76 | service, | 135 | service, |
77 | clickHandler, | 136 | clickHandler, |
78 | shortcutIndex, | 137 | shortcutIndex, |
@@ -97,6 +156,7 @@ class TabItem extends Component { | |||
97 | }, { | 156 | }, { |
98 | label: intl.formatMessage(messages.reload), | 157 | label: intl.formatMessage(messages.reload), |
99 | click: reload, | 158 | click: reload, |
159 | accelerator: `${cmdKey}+R`, | ||
100 | }, { | 160 | }, { |
101 | label: intl.formatMessage(messages.edit), | 161 | label: intl.formatMessage(messages.edit), |
102 | click: () => openSettings({ | 162 | click: () => openSettings({ |
@@ -141,7 +201,7 @@ class TabItem extends Component { | |||
141 | • | 201 | • |
142 | </span> | 202 | </span> |
143 | )} | 203 | )} |
144 | {service.isHibernating && !service.disableHibernation && ( | 204 | {service.isHibernating && !service.isHibernationEnabled && ( |
145 | <span className="tab-item__message-count hibernating"> | 205 | <span className="tab-item__message-count hibernating"> |
146 | • | 206 | • |
147 | </span> | 207 | </span> |
@@ -153,6 +213,7 @@ class TabItem extends Component { | |||
153 | return ( | 213 | return ( |
154 | <li | 214 | <li |
155 | className={classnames({ | 215 | className={classnames({ |
216 | [classes.stale]: IS_SERVICE_DEBUGGING_ENABLED && service.lostRecipeConnection, | ||
156 | 'tab-item': true, | 217 | 'tab-item': true, |
157 | 'is-active': service.isActive, | 218 | 'is-active': service.isActive, |
158 | 'has-custom-icon': service.hasCustomIcon, | 219 | 'has-custom-icon': service.hasCustomIcon, |
@@ -168,6 +229,24 @@ class TabItem extends Component { | |||
168 | alt="" | 229 | alt="" |
169 | /> | 230 | /> |
170 | {notificationBadge} | 231 | {notificationBadge} |
232 | {IS_SERVICE_DEBUGGING_ENABLED && ( | ||
233 | <> | ||
234 | <div | ||
235 | className={classnames({ | ||
236 | [classes.pollIndicator]: true, | ||
237 | [classes.pollIndicatorPoll]: true, | ||
238 | [classes.polled]: this.isPolled, | ||
239 | })} | ||
240 | /> | ||
241 | <div | ||
242 | className={classnames({ | ||
243 | [classes.pollIndicator]: true, | ||
244 | [classes.pollIndicatorAnswer]: true, | ||
245 | [classes.pollAnswered]: this.isPollAnswered, | ||
246 | })} | ||
247 | /> | ||
248 | </> | ||
249 | )} | ||
171 | </li> | 250 | </li> |
172 | ); | 251 | ); |
173 | } | 252 | } |
diff --git a/src/components/settings/services/EditServiceForm.js b/src/components/settings/services/EditServiceForm.js index f1e70ce59..80f60b3e1 100644 --- a/src/components/settings/services/EditServiceForm.js +++ b/src/components/settings/services/EditServiceForm.js | |||
@@ -20,7 +20,6 @@ import Select from '../../ui/Select'; | |||
20 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; | 20 | import PremiumFeatureContainer from '../../ui/PremiumFeatureContainer'; |
21 | import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; | 21 | import LimitReachedInfobox from '../../../features/serviceLimit/components/LimitReachedInfobox'; |
22 | import { serviceLimitStore } from '../../../features/serviceLimit'; | 22 | import { serviceLimitStore } from '../../../features/serviceLimit'; |
23 | |||
24 | import { isMac } from '../../../environment'; | 23 | import { isMac } from '../../../environment'; |
25 | 24 | ||
26 | const messages = defineMessages({ | 25 | const messages = defineMessages({ |
@@ -96,9 +95,9 @@ const messages = defineMessages({ | |||
96 | id: 'settings.service.form.isMutedInfo', | 95 | id: 'settings.service.form.isMutedInfo', |
97 | defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', | 96 | defaultMessage: '!!!When disabled, all notification sounds and audio playback are muted', |
98 | }, | 97 | }, |
99 | disableHibernationInfo: { | 98 | isHibernationEnabledInfo: { |
100 | id: 'settings.service.form.disableHibernationInfo', | 99 | id: 'settings.service.form.isHibernatedEnabledInfo', |
101 | defaultMessage: '!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.', | 100 | defaultMessage: '!!!When enabled, a service will be shut down after a period of time to save system resources.', |
102 | }, | 101 | }, |
103 | headlineNotifications: { | 102 | headlineNotifications: { |
104 | id: 'settings.service.form.headlineNotifications', | 103 | id: 'settings.service.form.headlineNotifications', |
@@ -375,9 +374,9 @@ export default @observer class EditServiceForm extends Component { | |||
375 | <Toggle field={form.$('isEnabled')} /> | 374 | <Toggle field={form.$('isEnabled')} /> |
376 | {isHibernationFeatureActive && ( | 375 | {isHibernationFeatureActive && ( |
377 | <> | 376 | <> |
378 | <Toggle field={form.$('disableHibernation')} /> | 377 | <Toggle field={form.$('isHibernationEnabled')} /> |
379 | <p className="settings__help"> | 378 | <p className="settings__help"> |
380 | {intl.formatMessage(messages.disableHibernationInfo)} | 379 | {intl.formatMessage(messages.isHibernationEnabledInfo)} |
381 | </p> | 380 | </p> |
382 | </> | 381 | </> |
383 | )} | 382 | )} |
@@ -409,7 +408,7 @@ export default @observer class EditServiceForm extends Component { | |||
409 | gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }} | 408 | gaEventInfo={{ category: 'User', event: 'upgrade', label: 'spellchecker' }} |
410 | > | 409 | > |
411 | <div className="settings__settings-group"> | 410 | <div className="settings__settings-group"> |
412 | <Select field={form.$('spellcheckerLanguage')} multiple /> | 411 | <Select field={form.$('spellcheckerLanguage')} /> |
413 | </div> | 412 | </div> |
414 | </PremiumFeatureContainer> | 413 | </PremiumFeatureContainer> |
415 | )} | 414 | )} |
diff --git a/src/components/settings/settings/EditSettingsForm.js b/src/components/settings/settings/EditSettingsForm.js index cd772214f..f20c38bc9 100644 --- a/src/components/settings/settings/EditSettingsForm.js +++ b/src/components/settings/settings/EditSettingsForm.js | |||
@@ -173,6 +173,8 @@ export default @observer class EditSettingsForm extends Component { | |||
173 | isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, | 173 | isAdaptableDarkModeEnabled: PropTypes.bool.isRequired, |
174 | isNightlyEnabled: PropTypes.bool.isRequired, | 174 | isNightlyEnabled: PropTypes.bool.isRequired, |
175 | openProcessManager: PropTypes.func.isRequired, | 175 | openProcessManager: PropTypes.func.isRequired, |
176 | hasAddedTodosAsService: PropTypes.bool.isRequired, | ||
177 | isOnline: PropTypes.bool.isRequired, | ||
176 | }; | 178 | }; |
177 | 179 | ||
178 | static contextTypes = { | 180 | static contextTypes = { |
@@ -227,6 +229,8 @@ export default @observer class EditSettingsForm extends Component { | |||
227 | openProcessManager, | 229 | openProcessManager, |
228 | isTodosActivated, | 230 | isTodosActivated, |
229 | isNightlyEnabled, | 231 | isNightlyEnabled, |
232 | hasAddedTodosAsService, | ||
233 | isOnline, | ||
230 | } = this.props; | 234 | } = this.props; |
231 | const { intl } = this.context; | 235 | const { intl } = this.context; |
232 | 236 | ||
@@ -346,7 +350,7 @@ export default @observer class EditSettingsForm extends Component { | |||
346 | 350 | ||
347 | <Hr /> | 351 | <Hr /> |
348 | 352 | ||
349 | {isTodosEnabled && ( | 353 | {isTodosEnabled && !hasAddedTodosAsService && ( |
350 | <> | 354 | <> |
351 | <Toggle field={form.$('enableTodos')} /> | 355 | <Toggle field={form.$('enableTodos')} /> |
352 | {isTodosActivated && ( | 356 | {isTodosActivated && ( |
@@ -535,10 +539,10 @@ export default @observer class EditSettingsForm extends Component { | |||
535 | <Toggle | 539 | <Toggle |
536 | field={form.$('enableSpellchecking')} | 540 | field={form.$('enableSpellchecking')} |
537 | /> | 541 | /> |
538 | {form.$('enableSpellchecking').value && !isMac && ( | 542 | {!isMac && form.$('enableSpellchecking').value && ( |
539 | <Select field={form.$('spellcheckerLanguage')} multiple /> | 543 | <Select field={form.$('spellcheckerLanguage')} /> |
540 | )} | 544 | )} |
541 | {form.$('enableSpellchecking').value && isMac && ( | 545 | {isMac && form.$('enableSpellchecking').value && ( |
542 | <p>{intl.formatMessage(messages.spellCheckerLanguageInfo)}</p> | 546 | <p>{intl.formatMessage(messages.spellCheckerLanguageInfo)}</p> |
543 | )} | 547 | )} |
544 | </Fragment> | 548 | </Fragment> |
@@ -625,7 +629,7 @@ export default @observer class EditSettingsForm extends Component { | |||
625 | buttonType="secondary" | 629 | buttonType="secondary" |
626 | label={intl.formatMessage(updateButtonLabelMessage)} | 630 | label={intl.formatMessage(updateButtonLabelMessage)} |
627 | onClick={checkForUpdates} | 631 | onClick={checkForUpdates} |
628 | disabled={!automaticUpdates || isCheckingForUpdates || isUpdateAvailable} | 632 | disabled={!automaticUpdates || isCheckingForUpdates || isUpdateAvailable || !isOnline} |
629 | loaded={!isCheckingForUpdates || !isUpdateAvailable} | 633 | loaded={!isCheckingForUpdates || !isUpdateAvailable} |
630 | /> | 634 | /> |
631 | )} | 635 | )} |
diff --git a/src/components/ui/FeatureList.js b/src/components/ui/FeatureList.js index dbc2a9078..72c799819 100644 --- a/src/components/ui/FeatureList.js +++ b/src/components/ui/FeatureList.js | |||
@@ -76,7 +76,7 @@ export class FeatureList extends Component { | |||
76 | static propTypes = { | 76 | static propTypes = { |
77 | className: PropTypes.string, | 77 | className: PropTypes.string, |
78 | featureClassName: PropTypes.string, | 78 | featureClassName: PropTypes.string, |
79 | plan: PropTypes.oneOf(Object.values(PLANS)), | 79 | plan: PropTypes.oneOf(Object.keys(PLANS)), |
80 | }; | 80 | }; |
81 | 81 | ||
82 | static defaultProps = { | 82 | static defaultProps = { |
diff --git a/src/components/ui/Modal/index.js b/src/components/ui/Modal/index.js index 0af521452..a9fa0cd1b 100644 --- a/src/components/ui/Modal/index.js +++ b/src/components/ui/Modal/index.js | |||
@@ -41,8 +41,6 @@ export default @injectCSS(styles) class Modal extends Component { | |||
41 | showClose, | 41 | showClose, |
42 | } = this.props; | 42 | } = this.props; |
43 | 43 | ||
44 | const appRoot = document.getElementById('root'); | ||
45 | |||
46 | return ( | 44 | return ( |
47 | <ReactModal | 45 | <ReactModal |
48 | isOpen={isOpen} | 46 | isOpen={isOpen} |
@@ -55,7 +53,7 @@ export default @injectCSS(styles) class Modal extends Component { | |||
55 | portal={portal} | 53 | portal={portal} |
56 | onRequestClose={close} | 54 | onRequestClose={close} |
57 | shouldCloseOnOverlayClick={shouldCloseOnOverlayClick} | 55 | shouldCloseOnOverlayClick={shouldCloseOnOverlayClick} |
58 | appElement={appRoot} | 56 | appElement={document.getElementById('root')} |
59 | > | 57 | > |
60 | {showClose && close && ( | 58 | {showClose && close && ( |
61 | <button | 59 | <button |
diff --git a/src/config.js b/src/config.js index eb6f08be9..03d201425 100644 --- a/src/config.js +++ b/src/config.js | |||
@@ -31,6 +31,8 @@ export const LOCAL_TODOS_FRONTEND_URL = 'http://localhost:4000'; | |||
31 | export const PRODUCTION_TODOS_FRONTEND_URL = 'https://app.franztodos.com'; | 31 | export const PRODUCTION_TODOS_FRONTEND_URL = 'https://app.franztodos.com'; |
32 | export const DEVELOPMENT_TODOS_FRONTEND_URL = 'https://development--franz-todos.netlify.com'; | 32 | export const DEVELOPMENT_TODOS_FRONTEND_URL = 'https://development--franz-todos.netlify.com'; |
33 | 33 | ||
34 | export const CDN_URL = 'https://cdn.franzinfra.com'; | ||
35 | |||
34 | export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; | 36 | export const GA_ID = !isDevMode ? 'UA-74126766-10' : 'UA-74126766-12'; |
35 | 37 | ||
36 | export const KEEP_WS_LOADED_USID = '0a0aa000-0a0a-49a0-a000-a0a0a0a0a0a0'; | 38 | export const KEEP_WS_LOADED_USID = '0a0aa000-0a0a-49a0-a000-a0a0a0a0a0a0'; |
@@ -100,7 +102,7 @@ export const DEFAULT_APP_SETTINGS = { | |||
100 | showMessageBadgeWhenMuted: true, | 102 | showMessageBadgeWhenMuted: true, |
101 | showDragArea: false, | 103 | showDragArea: false, |
102 | enableSpellchecking: true, | 104 | enableSpellchecking: true, |
103 | spellcheckerLanguage: '["en-US"]', | 105 | spellcheckerLanguage: 'en-us', |
104 | darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time | 106 | darkMode: process.platform === 'darwin' ? nativeTheme.shouldUseDarkColors : false, // We can't use refs from `./environment` at this time |
105 | locale: '', | 107 | locale: '', |
106 | fallbackLocale: 'en-US', | 108 | fallbackLocale: 'en-US', |
@@ -193,6 +195,7 @@ export const ALLOWED_PROTOCOLS = [ | |||
193 | 'https:', | 195 | 'https:', |
194 | 'http:', | 196 | 'http:', |
195 | 'ftp:', | 197 | 'ftp:', |
198 | 'franz:', | ||
196 | ]; | 199 | ]; |
197 | 200 | ||
198 | export const PLANS = { | 201 | export const PLANS = { |
diff --git a/src/containers/auth/SetupAssistantScreen.js b/src/containers/auth/SetupAssistantScreen.js new file mode 100644 index 000000000..960ed7e33 --- /dev/null +++ b/src/containers/auth/SetupAssistantScreen.js | |||
@@ -0,0 +1,133 @@ | |||
1 | /* eslint-disable no-await-in-loop */ | ||
2 | import React, { Component } from 'react'; | ||
3 | import PropTypes from 'prop-types'; | ||
4 | import { inject, observer } from 'mobx-react'; | ||
5 | |||
6 | import { sleep } from '../../helpers/async-helpers'; | ||
7 | import SetupAssistant from '../../components/auth/SetupAssistant'; | ||
8 | import ServicesStore from '../../stores/ServicesStore'; | ||
9 | import RecipesStore from '../../stores/RecipesStore'; | ||
10 | import { TODOS_RECIPE_ID } from '../../features/todos'; | ||
11 | import UserStore from '../../stores/UserStore'; | ||
12 | |||
13 | export default @inject('stores', 'actions') @observer class SetupAssistantScreen extends Component { | ||
14 | services = { | ||
15 | whatsapp: { | ||
16 | name: 'WhatsApp', | ||
17 | hasTeamId: false, | ||
18 | }, | ||
19 | messenger: { | ||
20 | name: 'Messenger', | ||
21 | hasTeamId: false, | ||
22 | }, | ||
23 | gmail: { | ||
24 | name: 'Gmail', | ||
25 | hasTeamId: false, | ||
26 | }, | ||
27 | skype: { | ||
28 | name: 'Skype', | ||
29 | hasTeamId: false, | ||
30 | }, | ||
31 | telegram: { | ||
32 | name: 'Telegram', | ||
33 | hasTeamId: false, | ||
34 | }, | ||
35 | instagram: { | ||
36 | name: 'Instagram', | ||
37 | hasTeamId: false, | ||
38 | }, | ||
39 | slack: { | ||
40 | name: 'Slack', | ||
41 | hasTeamId: true, | ||
42 | }, | ||
43 | hangouts: { | ||
44 | name: 'Hangouts', | ||
45 | hasTeamId: false, | ||
46 | }, | ||
47 | linkedin: { | ||
48 | name: 'LinkedIn', | ||
49 | hasTeamId: false, | ||
50 | }, | ||
51 | } | ||
52 | |||
53 | state = { | ||
54 | isSettingUpServices: false, | ||
55 | } | ||
56 | |||
57 | async setupServices(serviceConfig) { | ||
58 | const { stores: { services, router, user } } = this.props; | ||
59 | console.log(serviceConfig); | ||
60 | |||
61 | this.setState({ | ||
62 | isSettingUpServices: true, | ||
63 | }); | ||
64 | |||
65 | // The store requests are not build for paralell requests so we need to finish one request after another | ||
66 | for (const config of serviceConfig) { | ||
67 | const serviceData = { | ||
68 | name: this.services[config.id].name, | ||
69 | }; | ||
70 | |||
71 | if (config.team) { | ||
72 | serviceData.team = config.team; | ||
73 | } | ||
74 | |||
75 | await services._createService({ | ||
76 | recipeId: config.id, | ||
77 | serviceData, | ||
78 | redirect: false, | ||
79 | skipCleanup: true, | ||
80 | }); | ||
81 | |||
82 | await sleep(100); | ||
83 | } | ||
84 | |||
85 | // Add Franz ToDos | ||
86 | await services._createService({ | ||
87 | recipeId: TODOS_RECIPE_ID, | ||
88 | serviceData: { | ||
89 | name: 'Franz ToDos', | ||
90 | }, | ||
91 | redirect: false, | ||
92 | skipCleanup: true, | ||
93 | }); | ||
94 | |||
95 | this.setState({ | ||
96 | isSettingUpServices: false, | ||
97 | }); | ||
98 | |||
99 | await sleep(100); | ||
100 | |||
101 | router.push(user.pricingRoute); | ||
102 | } | ||
103 | |||
104 | render() { | ||
105 | return ( | ||
106 | <SetupAssistant | ||
107 | onSubmit={config => this.setupServices(config)} | ||
108 | services={this.services} | ||
109 | embed={false} | ||
110 | isSettingUpServices={this.state.isSettingUpServices} | ||
111 | /> | ||
112 | ); | ||
113 | } | ||
114 | } | ||
115 | |||
116 | SetupAssistantScreen.wrappedComponent.propTypes = { | ||
117 | stores: PropTypes.shape({ | ||
118 | services: PropTypes.instanceOf(ServicesStore), | ||
119 | recipes: PropTypes.instanceOf(RecipesStore), | ||
120 | user: PropTypes.instanceOf(UserStore), | ||
121 | }).isRequired, | ||
122 | actions: PropTypes.shape({ | ||
123 | user: PropTypes.shape({ | ||
124 | invite: PropTypes.func.isRequired, | ||
125 | }).isRequired, | ||
126 | service: PropTypes.shape({ | ||
127 | createService: PropTypes.func.isRequired, | ||
128 | }).isRequired, | ||
129 | recipe: PropTypes.shape({ | ||
130 | install: PropTypes.func.isRequired, | ||
131 | }).isRequired, | ||
132 | }).isRequired, | ||
133 | }; | ||
diff --git a/src/containers/layout/AppLayoutContainer.js b/src/containers/layout/AppLayoutContainer.js index a4312d9de..d7e413bb9 100644 --- a/src/containers/layout/AppLayoutContainer.js +++ b/src/containers/layout/AppLayoutContainer.js | |||
@@ -116,6 +116,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
116 | isWorkspaceDrawerOpen={workspaceStore.isWorkspaceDrawerOpen} | 116 | isWorkspaceDrawerOpen={workspaceStore.isWorkspaceDrawerOpen} |
117 | showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted} | 117 | showMessageBadgeWhenMutedSetting={settings.all.app.showMessageBadgeWhenMuted} |
118 | showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} | 118 | showMessageBadgesEvenWhenMuted={ui.showMessageBadgesEvenWhenMuted} |
119 | isTodosServiceActive={services.isTodosServiceActive || false} | ||
119 | /> | 120 | /> |
120 | ); | 121 | ); |
121 | 122 | ||
@@ -131,6 +132,7 @@ export default @inject('stores', 'actions') @observer class AppLayoutContainer e | |||
131 | update={updateService} | 132 | update={updateService} |
132 | userHasCompletedSignup={user.hasCompletedSignup} | 133 | userHasCompletedSignup={user.hasCompletedSignup} |
133 | hasActivatedTrial={user.hasActivatedTrial} | 134 | hasActivatedTrial={user.hasActivatedTrial} |
135 | isSpellcheckerEnabled={settings.app.enableSpellchecking} | ||
134 | /> | 136 | /> |
135 | ); | 137 | ); |
136 | 138 | ||
diff --git a/src/containers/settings/EditServiceScreen.js b/src/containers/settings/EditServiceScreen.js index 6aeecaa6d..d92d3bc07 100644 --- a/src/containers/settings/EditServiceScreen.js +++ b/src/containers/settings/EditServiceScreen.js | |||
@@ -33,9 +33,9 @@ const messages = defineMessages({ | |||
33 | id: 'settings.service.form.enableService', | 33 | id: 'settings.service.form.enableService', |
34 | defaultMessage: '!!!Enable service', | 34 | defaultMessage: '!!!Enable service', |
35 | }, | 35 | }, |
36 | disableHibernation: { | 36 | enableHibernation: { |
37 | id: 'settings.service.form.disableHibernation', | 37 | id: 'settings.service.form.enableHibernation', |
38 | defaultMessage: '!!!Disable hibernation', | 38 | defaultMessage: '!!!Enable hibernation', |
39 | }, | 39 | }, |
40 | enableNotification: { | 40 | enableNotification: { |
41 | id: 'settings.service.form.enableNotification', | 41 | id: 'settings.service.form.enableNotification', |
@@ -167,10 +167,10 @@ export default @inject('stores', 'actions') @observer class EditServiceScreen ex | |||
167 | value: service.isEnabled, | 167 | value: service.isEnabled, |
168 | default: true, | 168 | default: true, |
169 | }, | 169 | }, |
170 | disableHibernation: { | 170 | isHibernationEnabled: { |
171 | label: intl.formatMessage(messages.disableHibernation), | 171 | label: intl.formatMessage(messages.enableHibernation), |
172 | value: action !== 'edit' ? false : service.disableHibernation, | 172 | value: action !== 'edit' ? recipe.autoHibernate : service.isHibernationEnabled, |
173 | default: false, | 173 | default: true, |
174 | }, | 174 | }, |
175 | isNotificationEnabled: { | 175 | isNotificationEnabled: { |
176 | label: intl.formatMessage(messages.enableNotification), | 176 | label: intl.formatMessage(messages.enableNotification), |
diff --git a/src/containers/settings/EditSettingsScreen.js b/src/containers/settings/EditSettingsScreen.js index 097f0ed8b..148bb2c53 100644 --- a/src/containers/settings/EditSettingsScreen.js +++ b/src/containers/settings/EditSettingsScreen.js | |||
@@ -25,6 +25,7 @@ import globalMessages from '../../i18n/globalMessages'; | |||
25 | import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; | 25 | import { DEFAULT_IS_FEATURE_ENABLED_BY_USER } from '../../features/todos'; |
26 | import WorkspacesStore from '../../features/workspaces/store'; | 26 | import WorkspacesStore from '../../features/workspaces/store'; |
27 | import { DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED } from '../../features/workspaces'; | 27 | import { DEFAULT_SETTING_KEEP_ALL_WORKSPACES_LOADED } from '../../features/workspaces'; |
28 | import ServicesStore from '../../stores/ServicesStore'; | ||
28 | 29 | ||
29 | const messages = defineMessages({ | 30 | const messages = defineMessages({ |
30 | autoLaunchOnStart: { | 31 | autoLaunchOnStart: { |
@@ -587,6 +588,7 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
587 | app, | 588 | app, |
588 | todos, | 589 | todos, |
589 | workspaces, | 590 | workspaces, |
591 | services, | ||
590 | } = this.props.stores; | 592 | } = this.props.stores; |
591 | const { | 593 | const { |
592 | updateStatus, | 594 | updateStatus, |
@@ -628,6 +630,8 @@ export default @inject('stores', 'actions') @observer class EditSettingsScreen e | |||
628 | isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} | 630 | isUsingCustomTodoService={this.props.stores.todos.isUsingCustomTodoService} |
629 | isNightlyEnabled={this.props.stores.settings.app.nightly} | 631 | isNightlyEnabled={this.props.stores.settings.app.nightly} |
630 | openProcessManager={() => this.openProcessManager()} | 632 | openProcessManager={() => this.openProcessManager()} |
633 | hasAddedTodosAsService={services.isTodosServiceAdded} | ||
634 | isOnline={app.isOnline} | ||
631 | /> | 635 | /> |
632 | </ErrorBoundary> | 636 | </ErrorBoundary> |
633 | ); | 637 | ); |
@@ -639,6 +643,7 @@ EditSettingsScreen.wrappedComponent.propTypes = { | |||
639 | app: PropTypes.instanceOf(AppStore).isRequired, | 643 | app: PropTypes.instanceOf(AppStore).isRequired, |
640 | user: PropTypes.instanceOf(UserStore).isRequired, | 644 | user: PropTypes.instanceOf(UserStore).isRequired, |
641 | settings: PropTypes.instanceOf(SettingsStore).isRequired, | 645 | settings: PropTypes.instanceOf(SettingsStore).isRequired, |
646 | services: PropTypes.instanceOf(ServicesStore).isRequired, | ||
642 | todos: PropTypes.instanceOf(TodosStore).isRequired, | 647 | todos: PropTypes.instanceOf(TodosStore).isRequired, |
643 | workspaces: PropTypes.instanceOf(WorkspacesStore).isRequired, | 648 | workspaces: PropTypes.instanceOf(WorkspacesStore).isRequired, |
644 | }).isRequired, | 649 | }).isRequired, |
diff --git a/src/electron/Settings.js b/src/electron/Settings.js index d4f0d25bf..743d48632 100644 --- a/src/electron/Settings.js +++ b/src/electron/Settings.js | |||
@@ -33,6 +33,10 @@ export default class Settings { | |||
33 | return this.store; | 33 | return this.store; |
34 | } | 34 | } |
35 | 35 | ||
36 | get allSerialized() { | ||
37 | return toJS(this.store); | ||
38 | } | ||
39 | |||
36 | get(key) { | 40 | get(key) { |
37 | return this.store[key]; | 41 | return this.store[key]; |
38 | } | 42 | } |
diff --git a/src/electron/ipc-api/cld.js b/src/electron/ipc-api/cld.js new file mode 100644 index 000000000..23f18aa94 --- /dev/null +++ b/src/electron/ipc-api/cld.js | |||
@@ -0,0 +1,20 @@ | |||
1 | import { ipcMain } from 'electron'; | ||
2 | import cld from 'cld'; | ||
3 | |||
4 | const debug = require('debug')('Franz:ipcApi:cld'); | ||
5 | |||
6 | export default async () => { | ||
7 | ipcMain.handle('detect-language', async (event, { sample }) => { | ||
8 | try { | ||
9 | const result = await cld.detect(sample); | ||
10 | debug('Checking language', 'probability', result.languages); | ||
11 | if (result.reliable) { | ||
12 | debug('Language detected reliably, setting spellchecker language to', result.languages[0].code); | ||
13 | |||
14 | return result.languages[0].code; | ||
15 | } | ||
16 | } catch (e) { | ||
17 | console.error(e); | ||
18 | } | ||
19 | }); | ||
20 | }; | ||
diff --git a/src/electron/ipc-api/dnd.js b/src/electron/ipc-api/dnd.js new file mode 100644 index 000000000..4589aa222 --- /dev/null +++ b/src/electron/ipc-api/dnd.js | |||
@@ -0,0 +1,16 @@ | |||
1 | import { ipcMain } from 'electron'; | ||
2 | import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; | ||
3 | |||
4 | const debug = require('debug')('Franz:ipcApi:dnd'); | ||
5 | |||
6 | export default async () => { | ||
7 | ipcMain.handle('get-dnd', async () => { | ||
8 | try { | ||
9 | const isDND = getDoNotDisturb(); | ||
10 | debug('Fetching DND state, set to', isDND); | ||
11 | return isDND; | ||
12 | } catch (e) { | ||
13 | console.error(e); | ||
14 | } | ||
15 | }); | ||
16 | }; | ||
diff --git a/src/electron/ipc-api/download.js b/src/electron/ipc-api/download.js index 36eca3c9f..16de66229 100644 --- a/src/electron/ipc-api/download.js +++ b/src/electron/ipc-api/download.js | |||
@@ -17,9 +17,15 @@ function decodeBase64Image(dataString) { | |||
17 | 17 | ||
18 | export default (params) => { | 18 | export default (params) => { |
19 | ipcMain.on('download-file', async (event, { url, content, fileOptions = {} }) => { | 19 | ipcMain.on('download-file', async (event, { url, content, fileOptions = {} }) => { |
20 | // We're passing a fake browserWindow to `electron-dl` in order to access the | ||
21 | // webContents of the webview that has initiated the download | ||
22 | const fakeWindow = { | ||
23 | webContents: event.sender.webContents, | ||
24 | }; | ||
25 | |||
20 | try { | 26 | try { |
21 | if (!content) { | 27 | if (!content) { |
22 | const dl = await download(params.mainWindow, url, { | 28 | const dl = await download(fakeWindow, url, { |
23 | saveAs: true, | 29 | saveAs: true, |
24 | }); | 30 | }); |
25 | debug('File saved to', dl.savePath); | 31 | debug('File saved to', dl.savePath); |
@@ -27,14 +33,20 @@ export default (params) => { | |||
27 | const extension = mime.extension(fileOptions.mime); | 33 | const extension = mime.extension(fileOptions.mime); |
28 | const filename = `${fileOptions.name}.${extension}`; | 34 | const filename = `${fileOptions.name}.${extension}`; |
29 | 35 | ||
30 | dialog.showSaveDialog(params.mainWindow, { | 36 | try { |
31 | defaultPath: filename, | 37 | const saveDialog = await dialog.showSaveDialog(params.mainWindow, { |
32 | }, (name) => { | 38 | defaultPath: filename, |
39 | }); | ||
40 | |||
41 | if (saveDialog.canceled) return; | ||
42 | |||
33 | const binaryImage = decodeBase64Image(content); | 43 | const binaryImage = decodeBase64Image(content); |
34 | fs.writeFileSync(name, binaryImage, 'binary'); | 44 | fs.writeFileSync(saveDialog.filePath, binaryImage, 'binary'); |
35 | 45 | ||
36 | debug('File blob saved to', name); | 46 | debug('File blob saved to', saveDialog.filePath); |
37 | }); | 47 | } catch (err) { |
48 | console.log(err); | ||
49 | } | ||
38 | } | 50 | } |
39 | } catch (e) { | 51 | } catch (e) { |
40 | console.error(e); | 52 | console.error(e); |
diff --git a/src/electron/ipc-api/index.js b/src/electron/ipc-api/index.js index dcdef6b32..6181e5628 100644 --- a/src/electron/ipc-api/index.js +++ b/src/electron/ipc-api/index.js | |||
@@ -4,6 +4,8 @@ import appIndicator from './appIndicator'; | |||
4 | import download from './download'; | 4 | import download from './download'; |
5 | import processManager from './processManager'; | 5 | import processManager from './processManager'; |
6 | import localServer from './localServer'; | 6 | import localServer from './localServer'; |
7 | import cld from './cld'; | ||
8 | import dnd from './dnd'; | ||
7 | 9 | ||
8 | export default (params) => { | 10 | export default (params) => { |
9 | settings(params); | 11 | settings(params); |
@@ -12,4 +14,6 @@ export default (params) => { | |||
12 | download(params); | 14 | download(params); |
13 | processManager(params); | 15 | processManager(params); |
14 | localServer(params); | 16 | localServer(params); |
17 | cld(params); | ||
18 | dnd(); | ||
15 | }; | 19 | }; |
diff --git a/src/electron/ipc-api/settings.js b/src/electron/ipc-api/settings.js index 6d48c54e3..15182739c 100644 --- a/src/electron/ipc-api/settings.js +++ b/src/electron/ipc-api/settings.js | |||
@@ -2,11 +2,9 @@ import { ipcMain } from 'electron'; | |||
2 | 2 | ||
3 | export default (params) => { | 3 | export default (params) => { |
4 | ipcMain.on('getAppSettings', (event, type) => { | 4 | ipcMain.on('getAppSettings', (event, type) => { |
5 | const cleanData = JSON.parse(JSON.stringify(params.settings[type].all)); | ||
6 | |||
7 | params.mainWindow.webContents.send('appSettings', { | 5 | params.mainWindow.webContents.send('appSettings', { |
8 | type, | 6 | type, |
9 | data: cleanData, | 7 | data: params.settings[type].allSerialized, |
10 | }); | 8 | }); |
11 | }); | 9 | }); |
12 | 10 | ||
diff --git a/src/features/todos/actions.js b/src/features/todos/actions.js index 1ccc9a592..cc17e919b 100644 --- a/src/features/todos/actions.js +++ b/src/features/todos/actions.js | |||
@@ -15,9 +15,14 @@ export const todoActions = createActionsFromDefinitions({ | |||
15 | data: PropTypes.object, | 15 | data: PropTypes.object, |
16 | }, | 16 | }, |
17 | handleClientMessage: { | 17 | handleClientMessage: { |
18 | action: PropTypes.string.isRequired, | 18 | channel: PropTypes.string.isRequired, |
19 | data: PropTypes.object, | 19 | message: PropTypes.shape({ |
20 | action: PropTypes.string.isRequired, | ||
21 | data: PropTypes.object, | ||
22 | }), | ||
20 | }, | 23 | }, |
24 | openDevTools: {}, | ||
25 | reload: {}, | ||
21 | }, PropTypes.checkPropTypes); | 26 | }, PropTypes.checkPropTypes); |
22 | 27 | ||
23 | export default todoActions; | 28 | export default todoActions; |
diff --git a/src/features/todos/components/TodosWebview.js b/src/features/todos/components/TodosWebview.js index c612702b0..90575ebac 100644 --- a/src/features/todos/components/TodosWebview.js +++ b/src/features/todos/components/TodosWebview.js | |||
@@ -5,12 +5,14 @@ import injectSheet from 'react-jss'; | |||
5 | import Webview from 'react-electron-web-view'; | 5 | import Webview from 'react-electron-web-view'; |
6 | import { Icon } from '@meetfranz/ui'; | 6 | import { Icon } from '@meetfranz/ui'; |
7 | import { defineMessages, intlShape } from 'react-intl'; | 7 | import { defineMessages, intlShape } from 'react-intl'; |
8 | import classnames from 'classnames'; | ||
8 | 9 | ||
9 | import { mdiCheckAll } from '@mdi/js'; | 10 | import { mdiCheckAll } from '@mdi/js'; |
10 | import SettingsStore from '../../../stores/SettingsStore'; | 11 | import SettingsStore from '../../../stores/SettingsStore'; |
11 | 12 | ||
12 | import Appear from '../../../components/ui/effects/Appear'; | 13 | import Appear from '../../../components/ui/effects/Appear'; |
13 | import UpgradeButton from '../../../components/ui/UpgradeButton'; | 14 | import UpgradeButton from '../../../components/ui/UpgradeButton'; |
15 | import { TODOS_PARTITION_ID } from '..'; | ||
14 | 16 | ||
15 | import userAgent from '../../../helpers/userAgent-helpers'; | 17 | import userAgent from '../../../helpers/userAgent-helpers'; |
16 | 18 | ||
@@ -49,7 +51,7 @@ const styles = theme => ({ | |||
49 | borderLeft: [1, 'solid', theme.todos.todosLayer.borderLeftColor], | 51 | borderLeft: [1, 'solid', theme.todos.todosLayer.borderLeftColor], |
50 | zIndex: 300, | 52 | zIndex: 300, |
51 | 53 | ||
52 | transform: ({ isVisible, width }) => `translateX(${isVisible ? 0 : width}px)`, | 54 | transform: ({ isVisible, width, isTodosServiceActive }) => `translateX(${isVisible || isTodosServiceActive ? 0 : width}px)`, |
53 | 55 | ||
54 | '& webview': { | 56 | '& webview': { |
55 | height: '100%', | 57 | height: '100%', |
@@ -91,12 +93,19 @@ const styles = theme => ({ | |||
91 | premiumCTA: { | 93 | premiumCTA: { |
92 | marginTop: 40, | 94 | marginTop: 40, |
93 | }, | 95 | }, |
96 | isTodosServiceActive: { | ||
97 | width: 'calc(100% - 368px)', | ||
98 | position: 'absolute', | ||
99 | right: 0, | ||
100 | zIndex: 0, | ||
101 | }, | ||
94 | }); | 102 | }); |
95 | 103 | ||
96 | @injectSheet(styles) @inject('stores') @observer | 104 | @injectSheet(styles) @inject('stores') @observer |
97 | class TodosWebview extends Component { | 105 | class TodosWebview extends Component { |
98 | static propTypes = { | 106 | static propTypes = { |
99 | classes: PropTypes.object.isRequired, | 107 | classes: PropTypes.object.isRequired, |
108 | isTodosServiceActive: PropTypes.bool.isRequired, | ||
100 | isVisible: PropTypes.bool.isRequired, | 109 | isVisible: PropTypes.bool.isRequired, |
101 | handleClientMessage: PropTypes.func.isRequired, | 110 | handleClientMessage: PropTypes.func.isRequired, |
102 | setTodosWebview: PropTypes.func.isRequired, | 111 | setTodosWebview: PropTypes.func.isRequired, |
@@ -194,12 +203,16 @@ class TodosWebview extends Component { | |||
194 | startListeningToIpcMessages() { | 203 | startListeningToIpcMessages() { |
195 | const { handleClientMessage } = this.props; | 204 | const { handleClientMessage } = this.props; |
196 | if (!this.webview) return; | 205 | if (!this.webview) return; |
197 | this.webview.addEventListener('ipc-message', e => handleClientMessage(e.args[0])); | 206 | this.webview.addEventListener('ipc-message', (e) => { |
207 | // console.log(e); | ||
208 | handleClientMessage({ channel: e.channel, message: e.args[0] }); | ||
209 | }); | ||
198 | } | 210 | } |
199 | 211 | ||
200 | render() { | 212 | render() { |
201 | const { | 213 | const { |
202 | classes, | 214 | classes, |
215 | isTodosServiceActive, | ||
203 | isVisible, | 216 | isVisible, |
204 | isTodosIncludedInCurrentPlan, | 217 | isTodosIncludedInCurrentPlan, |
205 | stores, | 218 | stores, |
@@ -222,13 +235,21 @@ class TodosWebview extends Component { | |||
222 | isTodoUrlValid = validURL(todoUrl); | 235 | isTodoUrlValid = validURL(todoUrl); |
223 | } | 236 | } |
224 | 237 | ||
238 | let displayedWidth = isVisible ? width : 0; | ||
239 | if (isTodosServiceActive) { | ||
240 | displayedWidth = null; | ||
241 | } | ||
225 | 242 | ||
226 | return ( | 243 | return ( |
227 | <div | 244 | <div |
228 | className={classes.root} | 245 | className={classnames({ |
229 | style={{ width: isVisible ? width : 0 }} | 246 | [classes.root]: true, |
247 | [classes.isTodosServiceActive]: isTodosServiceActive, | ||
248 | })} | ||
249 | style={{ width: displayedWidth }} | ||
230 | onMouseUp={() => this.stopResize()} | 250 | onMouseUp={() => this.stopResize()} |
231 | ref={(node) => { this.node = node; }} | 251 | ref={(node) => { this.node = node; }} |
252 | id="todos-panel" | ||
232 | > | 253 | > |
233 | <div | 254 | <div |
234 | className={classes.resizeHandler} | 255 | className={classes.resizeHandler} |
@@ -251,7 +272,7 @@ class TodosWebview extends Component { | |||
251 | setTodosWebview(this.webview); | 272 | setTodosWebview(this.webview); |
252 | this.startListeningToIpcMessages(); | 273 | this.startListeningToIpcMessages(); |
253 | }} | 274 | }} |
254 | partition="persist:todos" | 275 | partition={TODOS_PARTITION_ID} |
255 | preload="./features/todos/preload.js" | 276 | preload="./features/todos/preload.js" |
256 | ref={(webview) => { this.webview = webview ? webview.view : null; }} | 277 | ref={(webview) => { this.webview = webview ? webview.view : null; }} |
257 | src={todoUrl} | 278 | src={todoUrl} |
diff --git a/src/features/todos/containers/TodosScreen.js b/src/features/todos/containers/TodosScreen.js index bc05a587d..884925be6 100644 --- a/src/features/todos/containers/TodosScreen.js +++ b/src/features/todos/containers/TodosScreen.js | |||
@@ -7,6 +7,7 @@ import TodosWebview from '../components/TodosWebview'; | |||
7 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; | 7 | import ErrorBoundary from '../../../components/util/ErrorBoundary'; |
8 | import { TODOS_MIN_WIDTH, todosStore } from '..'; | 8 | import { TODOS_MIN_WIDTH, todosStore } from '..'; |
9 | import { todoActions } from '../actions'; | 9 | import { todoActions } from '../actions'; |
10 | import ServicesStore from '../../../stores/ServicesStore'; | ||
10 | 11 | ||
11 | @inject('stores', 'actions') @observer | 12 | @inject('stores', 'actions') @observer |
12 | class TodosScreen extends Component { | 13 | class TodosScreen extends Component { |
@@ -18,6 +19,7 @@ class TodosScreen extends Component { | |||
18 | return ( | 19 | return ( |
19 | <ErrorBoundary> | 20 | <ErrorBoundary> |
20 | <TodosWebview | 21 | <TodosWebview |
22 | isTodosServiceActive={this.props.stores.services.isTodosServiceActive || false} | ||
21 | isVisible={todosStore.isTodosPanelVisible} | 23 | isVisible={todosStore.isTodosPanelVisible} |
22 | togglePanel={todoActions.toggleTodosPanel} | 24 | togglePanel={todoActions.toggleTodosPanel} |
23 | handleClientMessage={todoActions.handleClientMessage} | 25 | handleClientMessage={todoActions.handleClientMessage} |
@@ -37,5 +39,6 @@ export default TodosScreen; | |||
37 | TodosScreen.wrappedComponent.propTypes = { | 39 | TodosScreen.wrappedComponent.propTypes = { |
38 | stores: PropTypes.shape({ | 40 | stores: PropTypes.shape({ |
39 | features: PropTypes.instanceOf(FeaturesStore).isRequired, | 41 | features: PropTypes.instanceOf(FeaturesStore).isRequired, |
42 | services: PropTypes.instanceOf(ServicesStore).isRequired, | ||
40 | }).isRequired, | 43 | }).isRequired, |
41 | }; | 44 | }; |
diff --git a/src/features/todos/index.js b/src/features/todos/index.js index 9f355e9ba..8ff06f190 100644 --- a/src/features/todos/index.js +++ b/src/features/todos/index.js | |||
@@ -9,6 +9,8 @@ export const DEFAULT_TODOS_WIDTH = 300; | |||
9 | export const TODOS_MIN_WIDTH = 200; | 9 | export const TODOS_MIN_WIDTH = 200; |
10 | export const DEFAULT_TODOS_VISIBLE = true; | 10 | export const DEFAULT_TODOS_VISIBLE = true; |
11 | export const DEFAULT_IS_FEATURE_ENABLED_BY_USER = true; | 11 | export const DEFAULT_IS_FEATURE_ENABLED_BY_USER = true; |
12 | export const TODOS_RECIPE_ID = 'franz-todos'; | ||
13 | export const TODOS_PARTITION_ID = 'persist:todos"'; | ||
12 | 14 | ||
13 | export const TODOS_ROUTES = { | 15 | export const TODOS_ROUTES = { |
14 | TARGET: '/todos', | 16 | TARGET: '/todos', |
diff --git a/src/features/todos/preload.js b/src/features/todos/preload.js index d834cf547..9bd76a704 100644 --- a/src/features/todos/preload.js +++ b/src/features/todos/preload.js | |||
@@ -5,7 +5,12 @@ const debug = require('debug')('Ferdi:feature:todos:preload'); | |||
5 | 5 | ||
6 | debug('Preloading Todos Webview'); | 6 | debug('Preloading Todos Webview'); |
7 | 7 | ||
8 | let hostMessageListener = () => {}; | 8 | let hostMessageListener = ({ action }) => { |
9 | switch (action) { | ||
10 | case 'todos:initialize-as-service': ipcRenderer.sendToHost('hello'); break; | ||
11 | default: | ||
12 | } | ||
13 | }; | ||
9 | 14 | ||
10 | window.ferdi = { | 15 | window.ferdi = { |
11 | onInitialize(ipcHostMessageListener) { | 16 | onInitialize(ipcHostMessageListener) { |
diff --git a/src/features/todos/store.js b/src/features/todos/store.js index a05203a04..c1d6a9049 100644 --- a/src/features/todos/store.js +++ b/src/features/todos/store.js | |||
@@ -23,7 +23,9 @@ export default class TodoStore extends FeatureStore { | |||
23 | 23 | ||
24 | @observable isFeatureActive = false; | 24 | @observable isFeatureActive = false; |
25 | 25 | ||
26 | webview = null; | 26 | @observable webview = null; |
27 | |||
28 | isInitialized = false; | ||
27 | 29 | ||
28 | @computed get width() { | 30 | @computed get width() { |
29 | const width = this.settings.width || DEFAULT_TODOS_WIDTH; | 31 | const width = this.settings.width || DEFAULT_TODOS_WIDTH; |
@@ -65,6 +67,8 @@ export default class TodoStore extends FeatureStore { | |||
65 | [todoActions.handleHostMessage, this._handleHostMessage], | 67 | [todoActions.handleHostMessage, this._handleHostMessage], |
66 | [todoActions.handleClientMessage, this._handleClientMessage], | 68 | [todoActions.handleClientMessage, this._handleClientMessage], |
67 | [todoActions.toggleTodosFeatureVisibility, this._toggleTodosFeatureVisibility], | 69 | [todoActions.toggleTodosFeatureVisibility, this._toggleTodosFeatureVisibility], |
70 | [todoActions.openDevTools, this._openDevTools], | ||
71 | [todoActions.reload, this._reload], | ||
68 | ])); | 72 | ])); |
69 | 73 | ||
70 | // REACTIONS | 74 | // REACTIONS |
@@ -129,16 +133,28 @@ export default class TodoStore extends FeatureStore { | |||
129 | } | 133 | } |
130 | }; | 134 | }; |
131 | 135 | ||
132 | @action _handleClientMessage = (message) => { | 136 | @action _handleClientMessage = ({ channel, message = {} }) => { |
133 | debug('_handleClientMessage', message); | 137 | debug('_handleClientMessage', channel, message); |
134 | switch (message.action) { | 138 | switch (message.action) { |
135 | case 'todos:initialized': this._onTodosClientInitialized(); break; | 139 | case 'todos:initialized': this._onTodosClientInitialized(); break; |
136 | case 'todos:goToService': this._goToService(message.data); break; | 140 | case 'todos:goToService': this._goToService(message.data); break; |
137 | default: | 141 | default: |
138 | debug('Unknown client message reiceived', message); | 142 | debug('Other message received', channel, message); |
143 | console.log('this.stores.services.isTodosServiceAdded', this.stores.services.isTodosServiceAdded); | ||
144 | if (this.stores.services.isTodosServiceAdded) { | ||
145 | this.actions.service.handleIPCMessage({ | ||
146 | serviceId: this.stores.services.isTodosServiceAdded.id, | ||
147 | channel, | ||
148 | args: message, | ||
149 | }); | ||
150 | } | ||
139 | } | 151 | } |
140 | }; | 152 | }; |
141 | 153 | ||
154 | _handleNewWindowEvent = ({ url }) => { | ||
155 | this.actions.app.openExternalUrl({ url }); | ||
156 | } | ||
157 | |||
142 | @action _toggleTodosFeatureVisibility = () => { | 158 | @action _toggleTodosFeatureVisibility = () => { |
143 | debug('_toggleTodosFeatureVisibility'); | 159 | debug('_toggleTodosFeatureVisibility'); |
144 | 160 | ||
@@ -147,14 +163,28 @@ export default class TodoStore extends FeatureStore { | |||
147 | }); | 163 | }); |
148 | }; | 164 | }; |
149 | 165 | ||
166 | _openDevTools = () => { | ||
167 | debug('_openDevTools'); | ||
168 | |||
169 | const webview = document.querySelector('#todos-panel webview'); | ||
170 | if (webview) webview.openDevTools(); | ||
171 | } | ||
172 | |||
173 | _reload = () => { | ||
174 | debug('_reload'); | ||
175 | |||
176 | const webview = document.querySelector('#todos-panel webview'); | ||
177 | if (webview) webview.reload(); | ||
178 | } | ||
179 | |||
150 | // Todos client message handlers | 180 | // Todos client message handlers |
151 | 181 | ||
152 | _onTodosClientInitialized = () => { | 182 | _onTodosClientInitialized = async () => { |
153 | const { authToken } = this.stores.user; | 183 | const { authToken } = this.stores.user; |
154 | const { isDarkThemeActive } = this.stores.ui; | 184 | const { isDarkThemeActive } = this.stores.ui; |
155 | const { locale } = this.stores.app; | 185 | const { locale } = this.stores.app; |
156 | if (!this.webview) return; | 186 | if (!this.webview) return; |
157 | this.webview.send(IPC.TODOS_HOST_CHANNEL, { | 187 | await this.webview.send(IPC.TODOS_HOST_CHANNEL, { |
158 | action: 'todos:configure', | 188 | action: 'todos:configure', |
159 | data: { | 189 | data: { |
160 | authToken, | 190 | authToken, |
@@ -163,9 +193,11 @@ export default class TodoStore extends FeatureStore { | |||
163 | }, | 193 | }, |
164 | }); | 194 | }); |
165 | 195 | ||
166 | this.webview.addEventListener('new-window', ({ url }) => { | 196 | if (!this.isInitialized) { |
167 | this.actions.app.openExternalUrl({ url }); | 197 | this.webview.addEventListener('new-window', this._handleNewWindowEvent); |
168 | }); | 198 | |
199 | this.isInitialized = true; | ||
200 | } | ||
169 | }; | 201 | }; |
170 | 202 | ||
171 | _goToService = ({ url, serviceId }) => { | 203 | _goToService = ({ url, serviceId }) => { |
diff --git a/src/helpers/userAgent-helpers.js b/src/helpers/userAgent-helpers.js index 4929d9578..be6162464 100644 --- a/src/helpers/userAgent-helpers.js +++ b/src/helpers/userAgent-helpers.js | |||
@@ -19,7 +19,7 @@ function windows() { | |||
19 | } | 19 | } |
20 | 20 | ||
21 | function linux() { | 21 | function linux() { |
22 | return 'X11; Linux x86_64'; | 22 | return 'X11; Ubuntu; Linux x86_64'; |
23 | } | 23 | } |
24 | 24 | ||
25 | export default function userAgent(removeChromeVersion = false, addFerdiVersion = false) { | 25 | export default function userAgent(removeChromeVersion = false, addFerdiVersion = false) { |
diff --git a/src/i18n/languages.js b/src/i18n/languages.js index 868ef1389..e7713b42b 100644 --- a/src/i18n/languages.js +++ b/src/i18n/languages.js | |||
@@ -28,45 +28,95 @@ export const APP_LOCALES = { | |||
28 | es: 'Español', | 28 | es: 'Español', |
29 | no: 'Norsk (Norwegian)', | 29 | no: 'Norsk (Norwegian)', |
30 | be: 'белар (Belarusian)', | 30 | be: 'белар (Belarusian)', |
31 | et: 'Eestlane', | ||
31 | }; | 32 | }; |
32 | 33 | ||
33 | // Hunspell compatible keys | 34 | // Hunspell compatible keys |
34 | export const SPELLCHECKER_LOCALES = { | 35 | export const SPELLCHECKER_LOCALES = { |
35 | 'bg-bg': 'български език', | 36 | // 'bg-BG': 'български език', |
36 | 'ca-es': 'Català', | 37 | // 'ca-es': 'Català', |
37 | 'cs-cz': 'Čeština', | 38 | // 'cs-cz': 'Čeština', |
38 | 'da-dk': 'Dansk', | 39 | // 'da-dk': 'Dansk', |
39 | 'de-de': 'Deutsch', | 40 | // 'de-de': 'Deutsch', |
40 | 'el-gr': 'ελληνικά (Greek)', | 41 | // 'el-gr': 'ελληνικά (Greek)', |
41 | 'en-gb': 'English (GB)', | 42 | // 'en-gb': 'English (GB)', |
42 | 'en-us': 'English (US)', | 43 | // 'en-us': 'English (US)', |
43 | 'es-es': 'Español', | 44 | // 'es-es': 'Español', |
44 | 'et-ee': 'Estonian', | 45 | // 'et-ee': 'Estonian', |
45 | 'fa-ir': 'فارسی (Persian)', | 46 | // 'fa-ir': 'فارسی (Persian)', |
46 | 'fo-fo': 'Faroese', | 47 | // 'fo-fo': 'Faroese', |
47 | 'fr-fr': 'Français', | 48 | // 'fr-fr': 'Français', |
48 | 'he-il': 'עברית (Hebrew)', | 49 | // 'he-il': 'עברית (Hebrew)', |
49 | 'hr-hr': 'Hrvatski jezik', | 50 | // 'hr-hr': 'Hrvatski jezik', |
50 | 'hu-hu': 'Magyar', | 51 | // 'hu-hu': 'Magyar', |
51 | 'it-it': 'Italiano', | 52 | // 'it-it': 'Italiano', |
53 | // ko: 'Korean', | ||
54 | // 'lt-lt': 'Lietuvių kalba', | ||
55 | // 'lv-lv': 'Latviešu valoda', | ||
56 | // 'nb-no': 'Norsk bokmål', | ||
57 | // 'nl-nl': 'Nederlands', | ||
58 | // 'pl-pl': 'Język polski', | ||
59 | // 'pt-br': 'Português (Brazil)', | ||
60 | // 'pt-pt': 'Português', | ||
61 | // 'ro-ro': 'Limba română', | ||
62 | // 'ru-ru': 'Русский (Russian)', | ||
63 | // 'sk-sk': 'Slovenčina', | ||
64 | // 'sl-si': 'Slovenski jezik', | ||
65 | // sr: 'Српски језик (Serbian)', | ||
66 | // 'sv-se': 'Svenska', | ||
67 | // 'ta-in': 'தமிழ் (Tamil)', | ||
68 | // 'tg-tg': 'Тоҷикӣ (Tajik)', | ||
69 | // tr: 'Türkçe', | ||
70 | // 'uk-ua': 'Українська (Ukrainian)', | ||
71 | // vi: 'Tiếng Việt', | ||
72 | |||
73 | af: 'Afrikaans', | ||
74 | bg: 'български език', | ||
75 | ca: 'Català', | ||
76 | cs: 'Čeština', | ||
77 | cy: 'Welsh', | ||
78 | da: 'Dansk', | ||
79 | de: 'Deutsch', | ||
80 | el: 'ελληνικά (Greek)', | ||
81 | 'en-AU': 'English (Australia)', | ||
82 | 'en-CA': 'English (Canada)', | ||
83 | 'en-GB': 'English (Great Britain)', | ||
84 | 'en-US': 'English (United States)', | ||
85 | es: 'Español', | ||
86 | 'es-AR': 'Español (Argentina)', | ||
87 | 'es-ES': 'Español (España)', | ||
88 | 'es-MX': 'Español (Mexico)', | ||
89 | 'es-US': 'Español (Estados Unidos)', | ||
90 | et: 'Eesti', | ||
91 | fa: 'فارسی (Persian)', | ||
92 | fo: 'Føroyskt', | ||
93 | fr: 'Français', | ||
94 | he: 'עברית (Hebrew)', | ||
95 | hi: 'नहीं। (Hindi)', | ||
96 | hr: 'Hrvatski jezik', | ||
97 | hu: 'Magyar', | ||
98 | hy: 'հայերեն (Armenian)', | ||
99 | id: 'bahasa Indonesia', | ||
100 | it: 'Italiano', | ||
52 | ko: 'Korean', | 101 | ko: 'Korean', |
53 | 'lt-lt': 'Lietuvių kalba', | 102 | lt: 'Lietuvis', |
54 | 'lv-lv': 'Latviešu valoda', | 103 | lv: 'Latviešu valoda', |
55 | 'nb-no': 'Norsk bokmål', | 104 | nb: 'Norsk bokmål', |
56 | 'nl-nl': 'Nederlands', | 105 | nl: 'Nederlands', |
57 | 'pl-pl': 'Język polski', | 106 | pl: 'Język polski', |
58 | 'pt-br': 'Português (Brazil)', | 107 | 'pt-BR': 'Português (Brasil)', |
59 | 'pt-pt': 'Português', | 108 | 'pt-PT': 'Português (Portugal)', |
60 | 'ro-ro': 'Limba română', | 109 | ro: 'Limba română', |
61 | 'ru-ru': 'Русский (Russian)', | 110 | ru: 'Русский (Russian)', |
62 | 'sk-sk': 'Slovenčina', | 111 | sh: 'Srpsko hrvatski', |
63 | 'sl-si': 'Slovenski jezik', | 112 | sk: 'Slovenčina', |
64 | sr: 'Српски језик (Serbian)', | 113 | sl: 'Slovenščina', |
65 | 'sv-se': 'Svenska', | 114 | sq: 'Shqip', |
66 | 'ta-in': 'தமிழ் (Tamil)', | 115 | sv: 'Svenska', |
67 | 'tg-tg': 'Тоҷикӣ (Tajik)', | 116 | ta: 'தமிழ் (Tamil)', |
117 | tg: 'Тоҷикӣ (Tajik)', | ||
68 | tr: 'Türkçe', | 118 | tr: 'Türkçe', |
69 | 'uk-ua': 'Українська (Ukrainian)', | 119 | uk: 'Українська (Ukrainian)', |
70 | vi: 'Tiếng Việt', | 120 | vi: 'Tiếng Việt', |
71 | }; | 121 | }; |
72 | 122 | ||
diff --git a/src/i18n/locales/bg.json b/src/i18n/locales/bg.json new file mode 100644 index 000000000..64a1f93c5 --- /dev/null +++ b/src/i18n/locales/bg.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Презареди", | ||
3 | "app.errorHandler.headline" : "Нещо се обърка", | ||
4 | "connectionLostBanner.cta" : "Презареди услугата", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Upgrade account", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Send as email", | ||
33 | "feature.shareFranz.action.facebook" : "Share on Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Share on Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "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", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "Няма връзка с онлайн услугите на Франц", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "Не сте свързани към интернет", | ||
52 | "global.spellchecker.useDefault" : "Use System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Detect language automatically", | ||
54 | "global.spellchecking.autodetect.short" : "Automatic", | ||
55 | "global.spellchecking.language" : "Spell checking language", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "Вмъкнете вашите услуги на Франц 4", | ||
58 | "import.notSupportedHeadline" : "Тези услуги не се подържат все още във Франц 5. ", | ||
59 | "import.skip.label" : "Искам да прибавя ръчно услуги", | ||
60 | "import.submit.label" : "Внасяне на услуги", | ||
61 | "infobar.buttonChangelog" : "Кое е новото?", | ||
62 | "infobar.buttonInstallUpdate" : "Рестартиране и инсталиране на обновлението", | ||
63 | "infobar.buttonReloadServices" : "Презареждане на услугите", | ||
64 | "infobar.requiredRequestsFailed" : "Неуспешно зареждане на услугите и информацията на потребителя. ", | ||
65 | "infobar.servicesUpdated" : "Вашите услуги са обновени.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "Има нова версия на Франц", | ||
68 | "invite.email.label" : "Адрес на е-поща:", | ||
69 | "invite.headline.friends" : "Поканете 3 ваши приятели или колеги", | ||
70 | "invite.name.label" : "Име", | ||
71 | "invite.skip.label" : "Искам да направя това по-късно", | ||
72 | "invite.submit.label" : "Изпращане на поканите", | ||
73 | "invite.successInfo" : "Поканите бяха изпратени успшно", | ||
74 | "login.email.label" : "Адрес на е-поща", | ||
75 | "login.headline" : "Вход", | ||
76 | "login.invalidCredentials" : "Неправилна е-поща или парола. ", | ||
77 | "login.link.password" : "Пренастройване на паролата", | ||
78 | "login.link.signup" : "Създаване на безплатен профил", | ||
79 | "login.password.label" : "Парола", | ||
80 | "login.serverLogout" : "Вашата сесия изтече, моля влезте отново", | ||
81 | "login.submit.label" : "Вход", | ||
82 | "login.tokenExpired" : "Вашата сесия изтече, моля влезте отново", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "За Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Проверка за обновления", | ||
88 | "menu.app.hide" : "Скрий", | ||
89 | "menu.app.hideOthers" : "Скрий другите", | ||
90 | "menu.app.quit" : "Изход", | ||
91 | "menu.app.settings" : "Настройки", | ||
92 | "menu.app.unhide" : "Покажи", | ||
93 | "menu.edit" : "Редактиране", | ||
94 | "menu.edit.copy" : "Копирай", | ||
95 | "menu.edit.cut" : "Отрежи", | ||
96 | "menu.edit.delete" : "Изтриване", | ||
97 | "menu.edit.emojiSymbols" : "Емотикони и символи", | ||
98 | "menu.edit.paste" : "Постави", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Направи Отново", | ||
100 | "menu.edit.redo" : "Направи отново", | ||
101 | "menu.edit.selectAll" : "Избери всичко", | ||
102 | "menu.edit.speech" : "Реч", | ||
103 | "menu.edit.startDictation" : "Започни диктовка", | ||
104 | "menu.edit.startSpeaking" : "Започни да говориш", | ||
105 | "menu.edit.stopSpeaking" : "Спри да говориш", | ||
106 | "menu.edit.undo" : "Отмяна", | ||
107 | "menu.file" : "Документ", | ||
108 | "menu.help" : "Помощ", | ||
109 | "menu.help.changelog" : "Списък с промените", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Научете повече", | ||
114 | "menu.help.privacy" : "Декларация за поверителност", | ||
115 | "menu.help.support" : "Поддръжка", | ||
116 | "menu.help.tos" : "Условия на ползване", | ||
117 | "menu.services" : "Услуги", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "Изглед", | ||
125 | "menu.view.enterFullScreen" : "Отвории на цял екран", | ||
126 | "menu.view.exitFullScreen" : "Излез от цял екран", | ||
127 | "menu.view.reloadFranz" : "Презареди Franz", | ||
128 | "menu.view.reloadService" : "Презареди услугата", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Оригинален размер", | ||
131 | "menu.view.toggleDevTools" : "Превключи инструментите за разработка", | ||
132 | "menu.view.toggleFullScreen" : "Превключване на пълният екран", | ||
133 | "menu.view.toggleServiceDevTools" : "Превключване инструментите за разработка", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Приближаване", | ||
136 | "menu.view.zoomOut" : "Отдалечаване", | ||
137 | "menu.window" : "Прозорец", | ||
138 | "menu.window.close" : "Затвори", | ||
139 | "menu.window.minimize" : "Минимизирай", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "Всички услуги", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "Адрес на е-поща", | ||
146 | "password.headline" : "Пренастройване на паролата", | ||
147 | "password.link.login" : "Влизте в профила си", | ||
148 | "password.link.signup" : "Създаване на безплатен профил", | ||
149 | "password.noUser" : "Абонат с такава е-поща не бе намерен", | ||
150 | "password.submit.label" : "Изпращане", | ||
151 | "password.successInfo" : "Моля отбележете вашата е-поща", | ||
152 | "premiumFeature.button.upgradeAccount" : "Upgrade account", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "Презареждане {име}", | ||
191 | "service.crashHandler.autoReload" : "Опитва се да възтанови автоматично {name} след {seconds} секунди", | ||
192 | "service.crashHandler.headline" : "О не!", | ||
193 | "service.crashHandler.text" : "{name} създаде грешка.", | ||
194 | "service.disabledHandler.action" : "Активирай {name}", | ||
195 | "service.disabledHandler.headline" : "{name} е изключен", | ||
196 | "service.errorHandler.action" : "Презареждане {име}", | ||
197 | "service.errorHandler.editAction" : "Редактира {име}", | ||
198 | "service.errorHandler.headline" : "О не!", | ||
199 | "service.errorHandler.message" : "Грешка", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "Започване", | ||
208 | "services.welcome" : "Добре дошли във Франц", | ||
209 | "settings.account.account.editButton" : "Редактиране на профила", | ||
210 | "settings.account.accountType.basic" : "Профил за начинаещи", | ||
211 | "settings.account.accountType.premium" : "Профил за напреднали подръжници", | ||
212 | "settings.account.buttonSave" : "Обновление на профила", | ||
213 | "settings.account.deleteAccount" : "Изтриване на профила", | ||
214 | "settings.account.deleteEmailSent" : "Имате получено е-писмо с линк за потвърждаване на изтриването. Профилът и данните ви не могат дъдат възтановени. ", | ||
215 | "settings.account.deleteInfo" : "Ако профилът ви във Франц вече не ви е необходим, можете да го изтриете заедно с всичките данни към него тук. ", | ||
216 | "settings.account.headline" : "Профил", | ||
217 | "settings.account.headlineAccount" : "Информация на профила", | ||
218 | "settings.account.headlineDangerZone" : "Опасна зона", | ||
219 | "settings.account.headlineInvoices" : "Фактури", | ||
220 | "settings.account.headlinePassword" : "Смяна на парола", | ||
221 | "settings.account.headlineProfile" : "Обновление на профила", | ||
222 | "settings.account.headlineSubscription" : "Вашият абонамент", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Изтегляне", | ||
226 | "settings.account.manageSubscription.label" : "Управление на абонамена", | ||
227 | "settings.account.successInfo" : "Промените бяха запазени", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Опитайте отново", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Опитайте отново", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Не може да зареди информацията на абоната", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Изчистване на буфера", | ||
237 | "settings.app.buttonInstallUpdate" : "Рестартирай и инсталирай обновлението", | ||
238 | "settings.app.buttonSearchForUpdate" : "Проверка за обновления", | ||
239 | "settings.app.cacheInfo" : "Буферът на Франц в момента използва {size} от вашия диск.", | ||
240 | "settings.app.currentVersion" : "Текуща версия:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Отворено на заден план", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Отваряне на Франц при включване", | ||
243 | "settings.app.form.beta" : "Включване на бета версии", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Включи графичният ускорител", | ||
246 | "settings.app.form.enableSpellchecking" : "Включване на проверката на правописа", | ||
247 | "settings.app.form.enableSystemTray" : "Показване на мениджъра в системния панел", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Език", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Минимизиране на Франц в системния панел", | ||
252 | "settings.app.form.runInBackground" : "Дръж Франж влючен в задния план когато прозореца е затворен", | ||
253 | "settings.app.form.showDisabledServices" : "Покажи панели на изключени услуги", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Покажи непрочетени съобщения когато известията са изключени", | ||
255 | "settings.app.headline" : "Настройки", | ||
256 | "settings.app.headlineAdvanced" : "Допълнителни", | ||
257 | "settings.app.headlineAppearance" : "Изглед", | ||
258 | "settings.app.headlineGeneral" : "Общи", | ||
259 | "settings.app.headlineLanguage" : "Език", | ||
260 | "settings.app.headlineUpdates" : "Обновления", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Промените изискват резстартиране", | ||
263 | "settings.app.subheadlineCache" : "Буферна памет", | ||
264 | "settings.app.translationHelp" : "Помогнете ни да преведем Франц на вашия език.", | ||
265 | "settings.app.updateStatusAvailable" : "Налично обновление, изтеглпне...", | ||
266 | "settings.app.updateStatusSearching" : "Търсене на обновление", | ||
267 | "settings.app.updateStatusUpToDate" : "Използвате най-новата версия на Франц", | ||
268 | "settings.invite.headline" : "Поканете приятели", | ||
269 | "settings.navigation.account" : "Регистрация", | ||
270 | "settings.navigation.availableServices" : "Налични услуги", | ||
271 | "settings.navigation.inviteFriends" : "Поканете приятели", | ||
272 | "settings.navigation.logout" : "Изход", | ||
273 | "settings.navigation.settings" : "Настройки", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Вашите услуги", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "Всички услуги", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Налични услуги", | ||
286 | "settings.recipes.missingService" : "Липсващи услуги?", | ||
287 | "settings.recipes.mostPopular" : "Най-разпространените", | ||
288 | "settings.recipes.nothingFound" : "За съжаление няма услуги съвпадащи с вашето търсене.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Услугата беше прибавена успешно", | ||
290 | "settings.searchService" : "Търсене на услуга", | ||
291 | "settings.service.error.goBack" : "Обратно към услугите", | ||
292 | "settings.service.error.headline" : "Грешка", | ||
293 | "settings.service.error.message" : "Услугата не може да бъде заредена.", | ||
294 | "settings.service.form.addServiceHeadline" : "Прибави {name}", | ||
295 | "settings.service.form.availableServices" : "Налични услуги", | ||
296 | "settings.service.form.customUrl" : "Клиентски сървър", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "За да добавите услуги, разположени на ваш сървър, трябва да имате Franz Premium Supporter профил", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Надградете вашия профил", | ||
299 | "settings.service.form.customUrlValidationError" : "Не може да се валидира стандартния {name} сървър", | ||
300 | "settings.service.form.deleteButton" : "Изтрий услугата", | ||
301 | "settings.service.form.editServiceHeadline" : "Редактира {име}", | ||
302 | "settings.service.form.enableAudio" : "Включване на звука", | ||
303 | "settings.service.form.enableBadge" : "Покажи списък с непрочетените съобщения", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Включване на известяванията", | ||
307 | "settings.service.form.enableService" : "Разрешаване на услугата", | ||
308 | "settings.service.form.headlineBadges" : "Списък на непрочетените съобщения", | ||
309 | "settings.service.form.headlineGeneral" : "Общи", | ||
310 | "settings.service.form.headlineNotifications" : "Известия", | ||
311 | "settings.service.form.icon" : "Стандартна икона", | ||
312 | "settings.service.form.iconDelete" : "Изтрий", | ||
313 | "settings.service.form.iconUpload" : "Премести тук изображението или натисни тук", | ||
314 | "settings.service.form.indirectMessageInfo" : "Ще бъдете известени за всички нови съобщения в даден канале не само @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Покажи известие със списък на всички нови съобщения", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "Когато са дезактивирани, всички звукови известия и възпроизвеждане на аудио са заглушени", | ||
318 | "settings.service.form.name" : "Име", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Запази услугата", | ||
328 | "settings.service.form.tabHosted" : "Собствен", | ||
329 | "settings.service.form.tabOnPremise" : "Хостван самостоятелно", | ||
330 | "settings.service.form.team" : "Екип", | ||
331 | "settings.service.form.useHostedService" : "Използвай хостинг {name} услугата", | ||
332 | "settings.service.form.yourServices" : "Вашите услуги", | ||
333 | "settings.services.deletedInfo" : "Услугата е изтрита", | ||
334 | "settings.services.discoverServices" : "Намери услуги", | ||
335 | "settings.services.headline" : "Вашите услуги", | ||
336 | "settings.services.noServicesAdded" : "Не сте добавили услуги все още", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Услугата е дезактивирана", | ||
339 | "settings.services.tooltip.isMuted" : "Всички звуци са заглушени", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Известията са дезактивирани", | ||
341 | "settings.services.updatedInfo" : "Промените ви са запазени", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Екип", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Фирма", | ||
349 | "settings.user.form.accountType.individual" : "Индивидуално", | ||
350 | "settings.user.form.accountType.label" : "Вид регистрация", | ||
351 | "settings.user.form.accountType.non-profit" : "нестопански", | ||
352 | "settings.user.form.currentPassword" : "Текуща парола", | ||
353 | "settings.user.form.email" : "Електронна поща", | ||
354 | "settings.user.form.firstname" : "Собствено име", | ||
355 | "settings.user.form.lastname" : "Фамилно име", | ||
356 | "settings.user.form.newPassword" : "Нова парола", | ||
357 | "settings.workspace.add.form.name" : "Име", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "Име", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Опитайте отново", | ||
368 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Добавяне на услуга", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Дезактивирай известията и звуците", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Настройки", | ||
382 | "sidebar.unmuteApp" : "Активирай известията и звуците", | ||
383 | "signup.email.label" : "Адрес на ел. поща:", | ||
384 | "signup.emailDuplicate" : "Вече съществува потребител с този имейл адрес", | ||
385 | "signup.firstname.label" : "Име", | ||
386 | "signup.headline" : "Регистриране", | ||
387 | "signup.lastname.label" : "Фамилно име", | ||
388 | "signup.legal.info" : "Със регистрирането за профил във програмата Franz вие приемате", | ||
389 | "signup.legal.privacy" : "Декларация за поверителност", | ||
390 | "signup.legal.terms" : "Общи условия", | ||
391 | "signup.link.login" : "Вече сте регистриран, впишете се?", | ||
392 | "signup.password.label" : "Парола", | ||
393 | "signup.submit.label" : "Създаване на акаунт", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Отказ", | ||
406 | "subscriptionPopup.buttonDone" : "Готово", | ||
407 | "tabs.item.deleteService" : "Изтрий услугата", | ||
408 | "tabs.item.disableAudio" : "Изключване на звука", | ||
409 | "tabs.item.disableNotifications" : "Изключване на известията", | ||
410 | "tabs.item.disableService" : "Спиране на услугата", | ||
411 | "tabs.item.edit" : "Редакция", | ||
412 | "tabs.item.enableAudio" : "Включване на звука", | ||
413 | "tabs.item.enableNotification" : "Включване на известяванията", | ||
414 | "tabs.item.enableService" : "Разрешаване на услугата", | ||
415 | "tabs.item.reload" : "Презареди", | ||
416 | "validation.email" : "{field} не е валидно поле", | ||
417 | "validation.minLength" : "Полето {field} трябва да бъде дълго, поне {length} знака", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} е задължително", | ||
420 | "validation.url" : "{field} не е валиден адрес", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Презареди", | ||
426 | "welcome.loginButton" : "Впишете се в акаунта си", | ||
427 | "welcome.signupButton" : "Създай безплатен акаунт", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "Всички услуги", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/defaultMessages.json b/src/i18n/locales/defaultMessages.json index 4db3e5fd4..f6841dd0c 100644 --- a/src/i18n/locales/defaultMessages.json +++ b/src/i18n/locales/defaultMessages.json | |||
@@ -835,6 +835,159 @@ | |||
835 | { | 835 | { |
836 | "descriptors": [ | 836 | "descriptors": [ |
837 | { | 837 | { |
838 | "defaultMessage": "!!!Invite Friends", | ||
839 | "end": { | ||
840 | "column": 3, | ||
841 | "line": 19 | ||
842 | }, | ||
843 | "file": "src/components/auth/ServiceAssistant.js", | ||
844 | "id": "settings.invite.headline", | ||
845 | "start": { | ||
846 | "column": 20, | ||
847 | "line": 16 | ||
848 | } | ||
849 | }, | ||
850 | { | ||
851 | "defaultMessage": "!!!Invite 3 of your friends or colleagues", | ||
852 | "end": { | ||
853 | "column": 3, | ||
854 | "line": 23 | ||
855 | }, | ||
856 | "file": "src/components/auth/ServiceAssistant.js", | ||
857 | "id": "invite.headline.friends", | ||
858 | "start": { | ||
859 | "column": 12, | ||
860 | "line": 20 | ||
861 | } | ||
862 | }, | ||
863 | { | ||
864 | "defaultMessage": "!!!Name", | ||
865 | "end": { | ||
866 | "column": 3, | ||
867 | "line": 27 | ||
868 | }, | ||
869 | "file": "src/components/auth/ServiceAssistant.js", | ||
870 | "id": "invite.name.label", | ||
871 | "start": { | ||
872 | "column": 13, | ||
873 | "line": 24 | ||
874 | } | ||
875 | }, | ||
876 | { | ||
877 | "defaultMessage": "!!!Email address", | ||
878 | "end": { | ||
879 | "column": 3, | ||
880 | "line": 31 | ||
881 | }, | ||
882 | "file": "src/components/auth/ServiceAssistant.js", | ||
883 | "id": "invite.email.label", | ||
884 | "start": { | ||
885 | "column": 14, | ||
886 | "line": 28 | ||
887 | } | ||
888 | }, | ||
889 | { | ||
890 | "defaultMessage": "!!!Send invites", | ||
891 | "end": { | ||
892 | "column": 3, | ||
893 | "line": 35 | ||
894 | }, | ||
895 | "file": "src/components/auth/ServiceAssistant.js", | ||
896 | "id": "invite.submit.label", | ||
897 | "start": { | ||
898 | "column": 21, | ||
899 | "line": 32 | ||
900 | } | ||
901 | }, | ||
902 | { | ||
903 | "defaultMessage": "!!!I want to do this later", | ||
904 | "end": { | ||
905 | "column": 3, | ||
906 | "line": 39 | ||
907 | }, | ||
908 | "file": "src/components/auth/ServiceAssistant.js", | ||
909 | "id": "invite.skip.label", | ||
910 | "start": { | ||
911 | "column": 19, | ||
912 | "line": 36 | ||
913 | } | ||
914 | }, | ||
915 | { | ||
916 | "defaultMessage": "!!!Invitations sent successfully", | ||
917 | "end": { | ||
918 | "column": 3, | ||
919 | "line": 43 | ||
920 | }, | ||
921 | "file": "src/components/auth/ServiceAssistant.js", | ||
922 | "id": "invite.successInfo", | ||
923 | "start": { | ||
924 | "column": 21, | ||
925 | "line": 40 | ||
926 | } | ||
927 | } | ||
928 | ], | ||
929 | "path": "src/components/auth/ServiceAssistant.json" | ||
930 | }, | ||
931 | { | ||
932 | "descriptors": [ | ||
933 | { | ||
934 | "defaultMessage": "!!!Let's get started", | ||
935 | "end": { | ||
936 | "column": 3, | ||
937 | "line": 22 | ||
938 | }, | ||
939 | "file": "src/components/auth/SetupAssistant.js", | ||
940 | "id": "setupAssistant.headline", | ||
941 | "start": { | ||
942 | "column": 12, | ||
943 | "line": 19 | ||
944 | } | ||
945 | }, | ||
946 | { | ||
947 | "defaultMessage": "!!!Choose from our most used services and get back on top of your messaging now.", | ||
948 | "end": { | ||
949 | "column": 3, | ||
950 | "line": 26 | ||
951 | }, | ||
952 | "file": "src/components/auth/SetupAssistant.js", | ||
953 | "id": "setupAssistant.subheadline", | ||
954 | "start": { | ||
955 | "column": 15, | ||
956 | "line": 23 | ||
957 | } | ||
958 | }, | ||
959 | { | ||
960 | "defaultMessage": "!!!Let's go", | ||
961 | "end": { | ||
962 | "column": 3, | ||
963 | "line": 30 | ||
964 | }, | ||
965 | "file": "src/components/auth/SetupAssistant.js", | ||
966 | "id": "setupAssistant.submit.label", | ||
967 | "start": { | ||
968 | "column": 21, | ||
969 | "line": 27 | ||
970 | } | ||
971 | }, | ||
972 | { | ||
973 | "defaultMessage": "!!!Invitations sent successfully", | ||
974 | "end": { | ||
975 | "column": 3, | ||
976 | "line": 34 | ||
977 | }, | ||
978 | "file": "src/components/auth/SetupAssistant.js", | ||
979 | "id": "invite.successInfo", | ||
980 | "start": { | ||
981 | "column": 21, | ||
982 | "line": 31 | ||
983 | } | ||
984 | } | ||
985 | ], | ||
986 | "path": "src/components/auth/SetupAssistant.json" | ||
987 | }, | ||
988 | { | ||
989 | "descriptors": [ | ||
990 | { | ||
838 | "defaultMessage": "!!!Sign up", | 991 | "defaultMessage": "!!!Sign up", |
839 | "end": { | 992 | "end": { |
840 | "column": 3, | 993 | "column": 3, |
@@ -1590,65 +1743,65 @@ | |||
1590 | "defaultMessage": "!!!Welcome to Ferdi", | 1743 | "defaultMessage": "!!!Welcome to Ferdi", |
1591 | "end": { | 1744 | "end": { |
1592 | "column": 3, | 1745 | "column": 3, |
1593 | "line": 18 | 1746 | "line": 19 |
1594 | }, | 1747 | }, |
1595 | "file": "src/components/services/content/Services.js", | 1748 | "file": "src/components/services/content/Services.js", |
1596 | "id": "services.welcome", | 1749 | "id": "services.welcome", |
1597 | "start": { | 1750 | "start": { |
1598 | "column": 11, | 1751 | "column": 11, |
1599 | "line": 15 | 1752 | "line": 16 |
1600 | } | 1753 | } |
1601 | }, | 1754 | }, |
1602 | { | 1755 | { |
1603 | "defaultMessage": "!!!Get started", | 1756 | "defaultMessage": "!!!Get started", |
1604 | "end": { | 1757 | "end": { |
1605 | "column": 3, | 1758 | "column": 3, |
1606 | "line": 22 | 1759 | "line": 23 |
1607 | }, | 1760 | }, |
1608 | "file": "src/components/services/content/Services.js", | 1761 | "file": "src/components/services/content/Services.js", |
1609 | "id": "services.getStarted", | 1762 | "id": "services.getStarted", |
1610 | "start": { | 1763 | "start": { |
1611 | "column": 14, | 1764 | "column": 14, |
1612 | "line": 19 | 1765 | "line": 20 |
1613 | } | 1766 | } |
1614 | }, | 1767 | }, |
1615 | { | 1768 | { |
1616 | "defaultMessage": "!!!Please login to use Ferdi.", | 1769 | "defaultMessage": "!!!Please login to use Ferdi.", |
1617 | "end": { | 1770 | "end": { |
1618 | "column": 3, | 1771 | "column": 3, |
1619 | "line": 26 | 1772 | "line": 27 |
1620 | }, | 1773 | }, |
1621 | "file": "src/components/services/content/Services.js", | 1774 | "file": "src/components/services/content/Services.js", |
1622 | "id": "services.login", | 1775 | "id": "services.login", |
1623 | "start": { | 1776 | "start": { |
1624 | "column": 9, | 1777 | "column": 9, |
1625 | "line": 23 | 1778 | "line": 24 |
1626 | } | 1779 | } |
1627 | }, | 1780 | }, |
1628 | { | 1781 | { |
1629 | "defaultMessage": "!!!Use Ferdi without an Account", | 1782 | "defaultMessage": "!!!Use Ferdi without an Account", |
1630 | "end": { | 1783 | "end": { |
1631 | "column": 3, | 1784 | "column": 3, |
1632 | "line": 30 | 1785 | "line": 31 |
1633 | }, | 1786 | }, |
1634 | "file": "src/components/services/content/Services.js", | 1787 | "file": "src/components/services/content/Services.js", |
1635 | "id": "services.serverless", | 1788 | "id": "services.serverless", |
1636 | "start": { | 1789 | "start": { |
1637 | "column": 14, | 1790 | "column": 14, |
1638 | "line": 27 | 1791 | "line": 28 |
1639 | } | 1792 | } |
1640 | }, | 1793 | }, |
1641 | { | 1794 | { |
1642 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", | 1795 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", |
1643 | "end": { | 1796 | "end": { |
1644 | "column": 3, | 1797 | "column": 3, |
1645 | "line": 34 | 1798 | "line": 35 |
1646 | }, | 1799 | }, |
1647 | "file": "src/components/services/content/Services.js", | 1800 | "file": "src/components/services/content/Services.js", |
1648 | "id": "services.serverInfo", | 1801 | "id": "services.serverInfo", |
1649 | "start": { | 1802 | "start": { |
1650 | "column": 14, | 1803 | "column": 14, |
1651 | "line": 31 | 1804 | "line": 32 |
1652 | } | 1805 | } |
1653 | } | 1806 | } |
1654 | ], | 1807 | ], |
@@ -1787,117 +1940,117 @@ | |||
1787 | "defaultMessage": "!!!Reload", | 1940 | "defaultMessage": "!!!Reload", |
1788 | "end": { | 1941 | "end": { |
1789 | "column": 3, | 1942 | "column": 3, |
1790 | "line": 18 | 1943 | "line": 23 |
1791 | }, | 1944 | }, |
1792 | "file": "src/components/services/tabs/TabItem.js", | 1945 | "file": "src/components/services/tabs/TabItem.js", |
1793 | "id": "tabs.item.reload", | 1946 | "id": "tabs.item.reload", |
1794 | "start": { | 1947 | "start": { |
1795 | "column": 10, | 1948 | "column": 10, |
1796 | "line": 15 | 1949 | "line": 20 |
1797 | } | 1950 | } |
1798 | }, | 1951 | }, |
1799 | { | 1952 | { |
1800 | "defaultMessage": "!!!Edit", | 1953 | "defaultMessage": "!!!Edit", |
1801 | "end": { | 1954 | "end": { |
1802 | "column": 3, | 1955 | "column": 3, |
1803 | "line": 22 | 1956 | "line": 27 |
1804 | }, | 1957 | }, |
1805 | "file": "src/components/services/tabs/TabItem.js", | 1958 | "file": "src/components/services/tabs/TabItem.js", |
1806 | "id": "tabs.item.edit", | 1959 | "id": "tabs.item.edit", |
1807 | "start": { | 1960 | "start": { |
1808 | "column": 8, | 1961 | "column": 8, |
1809 | "line": 19 | 1962 | "line": 24 |
1810 | } | 1963 | } |
1811 | }, | 1964 | }, |
1812 | { | 1965 | { |
1813 | "defaultMessage": "!!!Disable notifications", | 1966 | "defaultMessage": "!!!Disable notifications", |
1814 | "end": { | 1967 | "end": { |
1815 | "column": 3, | 1968 | "column": 3, |
1816 | "line": 26 | 1969 | "line": 31 |
1817 | }, | 1970 | }, |
1818 | "file": "src/components/services/tabs/TabItem.js", | 1971 | "file": "src/components/services/tabs/TabItem.js", |
1819 | "id": "tabs.item.disableNotifications", | 1972 | "id": "tabs.item.disableNotifications", |
1820 | "start": { | 1973 | "start": { |
1821 | "column": 24, | 1974 | "column": 24, |
1822 | "line": 23 | 1975 | "line": 28 |
1823 | } | 1976 | } |
1824 | }, | 1977 | }, |
1825 | { | 1978 | { |
1826 | "defaultMessage": "!!!Enable notifications", | 1979 | "defaultMessage": "!!!Enable notifications", |
1827 | "end": { | 1980 | "end": { |
1828 | "column": 3, | 1981 | "column": 3, |
1829 | "line": 30 | 1982 | "line": 35 |
1830 | }, | 1983 | }, |
1831 | "file": "src/components/services/tabs/TabItem.js", | 1984 | "file": "src/components/services/tabs/TabItem.js", |
1832 | "id": "tabs.item.enableNotification", | 1985 | "id": "tabs.item.enableNotification", |
1833 | "start": { | 1986 | "start": { |
1834 | "column": 23, | 1987 | "column": 23, |
1835 | "line": 27 | 1988 | "line": 32 |
1836 | } | 1989 | } |
1837 | }, | 1990 | }, |
1838 | { | 1991 | { |
1839 | "defaultMessage": "!!!Disable audio", | 1992 | "defaultMessage": "!!!Disable audio", |
1840 | "end": { | 1993 | "end": { |
1841 | "column": 3, | 1994 | "column": 3, |
1842 | "line": 34 | 1995 | "line": 39 |
1843 | }, | 1996 | }, |
1844 | "file": "src/components/services/tabs/TabItem.js", | 1997 | "file": "src/components/services/tabs/TabItem.js", |
1845 | "id": "tabs.item.disableAudio", | 1998 | "id": "tabs.item.disableAudio", |
1846 | "start": { | 1999 | "start": { |
1847 | "column": 16, | 2000 | "column": 16, |
1848 | "line": 31 | 2001 | "line": 36 |
1849 | } | 2002 | } |
1850 | }, | 2003 | }, |
1851 | { | 2004 | { |
1852 | "defaultMessage": "!!!Enable audio", | 2005 | "defaultMessage": "!!!Enable audio", |
1853 | "end": { | 2006 | "end": { |
1854 | "column": 3, | 2007 | "column": 3, |
1855 | "line": 38 | 2008 | "line": 43 |
1856 | }, | 2009 | }, |
1857 | "file": "src/components/services/tabs/TabItem.js", | 2010 | "file": "src/components/services/tabs/TabItem.js", |
1858 | "id": "tabs.item.enableAudio", | 2011 | "id": "tabs.item.enableAudio", |
1859 | "start": { | 2012 | "start": { |
1860 | "column": 15, | 2013 | "column": 15, |
1861 | "line": 35 | 2014 | "line": 40 |
1862 | } | 2015 | } |
1863 | }, | 2016 | }, |
1864 | { | 2017 | { |
1865 | "defaultMessage": "!!!Disable Service", | 2018 | "defaultMessage": "!!!Disable Service", |
1866 | "end": { | 2019 | "end": { |
1867 | "column": 3, | 2020 | "column": 3, |
1868 | "line": 42 | 2021 | "line": 47 |
1869 | }, | 2022 | }, |
1870 | "file": "src/components/services/tabs/TabItem.js", | 2023 | "file": "src/components/services/tabs/TabItem.js", |
1871 | "id": "tabs.item.disableService", | 2024 | "id": "tabs.item.disableService", |
1872 | "start": { | 2025 | "start": { |
1873 | "column": 18, | 2026 | "column": 18, |
1874 | "line": 39 | 2027 | "line": 44 |
1875 | } | 2028 | } |
1876 | }, | 2029 | }, |
1877 | { | 2030 | { |
1878 | "defaultMessage": "!!!Enable Service", | 2031 | "defaultMessage": "!!!Enable Service", |
1879 | "end": { | 2032 | "end": { |
1880 | "column": 3, | 2033 | "column": 3, |
1881 | "line": 46 | 2034 | "line": 51 |
1882 | }, | 2035 | }, |
1883 | "file": "src/components/services/tabs/TabItem.js", | 2036 | "file": "src/components/services/tabs/TabItem.js", |
1884 | "id": "tabs.item.enableService", | 2037 | "id": "tabs.item.enableService", |
1885 | "start": { | 2038 | "start": { |
1886 | "column": 17, | 2039 | "column": 17, |
1887 | "line": 43 | 2040 | "line": 48 |
1888 | } | 2041 | } |
1889 | }, | 2042 | }, |
1890 | { | 2043 | { |
1891 | "defaultMessage": "!!!Delete Service", | 2044 | "defaultMessage": "!!!Delete Service", |
1892 | "end": { | 2045 | "end": { |
1893 | "column": 3, | 2046 | "column": 3, |
1894 | "line": 50 | 2047 | "line": 55 |
1895 | }, | 2048 | }, |
1896 | "file": "src/components/services/tabs/TabItem.js", | 2049 | "file": "src/components/services/tabs/TabItem.js", |
1897 | "id": "tabs.item.deleteService", | 2050 | "id": "tabs.item.deleteService", |
1898 | "start": { | 2051 | "start": { |
1899 | "column": 17, | 2052 | "column": 17, |
1900 | "line": 47 | 2053 | "line": 52 |
1901 | } | 2054 | } |
1902 | } | 2055 | } |
1903 | ], | 2056 | ], |
@@ -2483,364 +2636,364 @@ | |||
2483 | "defaultMessage": "!!!Save service", | 2636 | "defaultMessage": "!!!Save service", |
2484 | "end": { | 2637 | "end": { |
2485 | "column": 3, | 2638 | "column": 3, |
2486 | "line": 30 | 2639 | "line": 29 |
2487 | }, | 2640 | }, |
2488 | "file": "src/components/settings/services/EditServiceForm.js", | 2641 | "file": "src/components/settings/services/EditServiceForm.js", |
2489 | "id": "settings.service.form.saveButton", | 2642 | "id": "settings.service.form.saveButton", |
2490 | "start": { | 2643 | "start": { |
2491 | "column": 15, | 2644 | "column": 15, |
2492 | "line": 27 | 2645 | "line": 26 |
2493 | } | 2646 | } |
2494 | }, | 2647 | }, |
2495 | { | 2648 | { |
2496 | "defaultMessage": "!!!Delete Service", | 2649 | "defaultMessage": "!!!Delete Service", |
2497 | "end": { | 2650 | "end": { |
2498 | "column": 3, | 2651 | "column": 3, |
2499 | "line": 34 | 2652 | "line": 33 |
2500 | }, | 2653 | }, |
2501 | "file": "src/components/settings/services/EditServiceForm.js", | 2654 | "file": "src/components/settings/services/EditServiceForm.js", |
2502 | "id": "settings.service.form.deleteButton", | 2655 | "id": "settings.service.form.deleteButton", |
2503 | "start": { | 2656 | "start": { |
2504 | "column": 17, | 2657 | "column": 17, |
2505 | "line": 31 | 2658 | "line": 30 |
2506 | } | 2659 | } |
2507 | }, | 2660 | }, |
2508 | { | 2661 | { |
2509 | "defaultMessage": "!!!Open darkmode.css", | 2662 | "defaultMessage": "!!!Open darkmode.css", |
2510 | "end": { | 2663 | "end": { |
2511 | "column": 3, | 2664 | "column": 3, |
2512 | "line": 38 | 2665 | "line": 37 |
2513 | }, | 2666 | }, |
2514 | "file": "src/components/settings/services/EditServiceForm.js", | 2667 | "file": "src/components/settings/services/EditServiceForm.js", |
2515 | "id": "settings.service.form.openDarkmodeCss", | 2668 | "id": "settings.service.form.openDarkmodeCss", |
2516 | "start": { | 2669 | "start": { |
2517 | "column": 19, | 2670 | "column": 19, |
2518 | "line": 35 | 2671 | "line": 34 |
2519 | } | 2672 | } |
2520 | }, | 2673 | }, |
2521 | { | 2674 | { |
2522 | "defaultMessage": "!!!Open user.css", | 2675 | "defaultMessage": "!!!Open user.css", |
2523 | "end": { | 2676 | "end": { |
2524 | "column": 3, | 2677 | "column": 3, |
2525 | "line": 42 | 2678 | "line": 41 |
2526 | }, | 2679 | }, |
2527 | "file": "src/components/settings/services/EditServiceForm.js", | 2680 | "file": "src/components/settings/services/EditServiceForm.js", |
2528 | "id": "settings.service.form.openUserCss", | 2681 | "id": "settings.service.form.openUserCss", |
2529 | "start": { | 2682 | "start": { |
2530 | "column": 15, | 2683 | "column": 15, |
2531 | "line": 39 | 2684 | "line": 38 |
2532 | } | 2685 | } |
2533 | }, | 2686 | }, |
2534 | { | 2687 | { |
2535 | "defaultMessage": "!!!Open user.js", | 2688 | "defaultMessage": "!!!Open user.js", |
2536 | "end": { | 2689 | "end": { |
2537 | "column": 3, | 2690 | "column": 3, |
2538 | "line": 46 | 2691 | "line": 45 |
2539 | }, | 2692 | }, |
2540 | "file": "src/components/settings/services/EditServiceForm.js", | 2693 | "file": "src/components/settings/services/EditServiceForm.js", |
2541 | "id": "settings.service.form.openUserJs", | 2694 | "id": "settings.service.form.openUserJs", |
2542 | "start": { | 2695 | "start": { |
2543 | "column": 14, | 2696 | "column": 14, |
2544 | "line": 43 | 2697 | "line": 42 |
2545 | } | 2698 | } |
2546 | }, | 2699 | }, |
2547 | { | 2700 | { |
2548 | "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", | 2701 | "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", |
2549 | "end": { | 2702 | "end": { |
2550 | "column": 3, | 2703 | "column": 3, |
2551 | "line": 50 | 2704 | "line": 49 |
2552 | }, | 2705 | }, |
2553 | "file": "src/components/settings/services/EditServiceForm.js", | 2706 | "file": "src/components/settings/services/EditServiceForm.js", |
2554 | "id": "settings.service.form.recipeFileInfo", | 2707 | "id": "settings.service.form.recipeFileInfo", |
2555 | "start": { | 2708 | "start": { |
2556 | "column": 18, | 2709 | "column": 18, |
2557 | "line": 47 | 2710 | "line": 46 |
2558 | } | 2711 | } |
2559 | }, | 2712 | }, |
2560 | { | 2713 | { |
2561 | "defaultMessage": "!!!Available services", | 2714 | "defaultMessage": "!!!Available services", |
2562 | "end": { | 2715 | "end": { |
2563 | "column": 3, | 2716 | "column": 3, |
2564 | "line": 54 | 2717 | "line": 53 |
2565 | }, | 2718 | }, |
2566 | "file": "src/components/settings/services/EditServiceForm.js", | 2719 | "file": "src/components/settings/services/EditServiceForm.js", |
2567 | "id": "settings.service.form.availableServices", | 2720 | "id": "settings.service.form.availableServices", |
2568 | "start": { | 2721 | "start": { |
2569 | "column": 21, | 2722 | "column": 21, |
2570 | "line": 51 | 2723 | "line": 50 |
2571 | } | 2724 | } |
2572 | }, | 2725 | }, |
2573 | { | 2726 | { |
2574 | "defaultMessage": "!!!Your services", | 2727 | "defaultMessage": "!!!Your services", |
2575 | "end": { | 2728 | "end": { |
2576 | "column": 3, | 2729 | "column": 3, |
2577 | "line": 58 | 2730 | "line": 57 |
2578 | }, | 2731 | }, |
2579 | "file": "src/components/settings/services/EditServiceForm.js", | 2732 | "file": "src/components/settings/services/EditServiceForm.js", |
2580 | "id": "settings.service.form.yourServices", | 2733 | "id": "settings.service.form.yourServices", |
2581 | "start": { | 2734 | "start": { |
2582 | "column": 16, | 2735 | "column": 16, |
2583 | "line": 55 | 2736 | "line": 54 |
2584 | } | 2737 | } |
2585 | }, | 2738 | }, |
2586 | { | 2739 | { |
2587 | "defaultMessage": "!!!Add {name}", | 2740 | "defaultMessage": "!!!Add {name}", |
2588 | "end": { | 2741 | "end": { |
2589 | "column": 3, | 2742 | "column": 3, |
2590 | "line": 62 | 2743 | "line": 61 |
2591 | }, | 2744 | }, |
2592 | "file": "src/components/settings/services/EditServiceForm.js", | 2745 | "file": "src/components/settings/services/EditServiceForm.js", |
2593 | "id": "settings.service.form.addServiceHeadline", | 2746 | "id": "settings.service.form.addServiceHeadline", |
2594 | "start": { | 2747 | "start": { |
2595 | "column": 22, | 2748 | "column": 22, |
2596 | "line": 59 | 2749 | "line": 58 |
2597 | } | 2750 | } |
2598 | }, | 2751 | }, |
2599 | { | 2752 | { |
2600 | "defaultMessage": "!!!Edit {name}", | 2753 | "defaultMessage": "!!!Edit {name}", |
2601 | "end": { | 2754 | "end": { |
2602 | "column": 3, | 2755 | "column": 3, |
2603 | "line": 66 | 2756 | "line": 65 |
2604 | }, | 2757 | }, |
2605 | "file": "src/components/settings/services/EditServiceForm.js", | 2758 | "file": "src/components/settings/services/EditServiceForm.js", |
2606 | "id": "settings.service.form.editServiceHeadline", | 2759 | "id": "settings.service.form.editServiceHeadline", |
2607 | "start": { | 2760 | "start": { |
2608 | "column": 23, | 2761 | "column": 23, |
2609 | "line": 63 | 2762 | "line": 62 |
2610 | } | 2763 | } |
2611 | }, | 2764 | }, |
2612 | { | 2765 | { |
2613 | "defaultMessage": "!!!Hosted", | 2766 | "defaultMessage": "!!!Hosted", |
2614 | "end": { | 2767 | "end": { |
2615 | "column": 3, | 2768 | "column": 3, |
2616 | "line": 70 | 2769 | "line": 69 |
2617 | }, | 2770 | }, |
2618 | "file": "src/components/settings/services/EditServiceForm.js", | 2771 | "file": "src/components/settings/services/EditServiceForm.js", |
2619 | "id": "settings.service.form.tabHosted", | 2772 | "id": "settings.service.form.tabHosted", |
2620 | "start": { | 2773 | "start": { |
2621 | "column": 13, | 2774 | "column": 13, |
2622 | "line": 67 | 2775 | "line": 66 |
2623 | } | 2776 | } |
2624 | }, | 2777 | }, |
2625 | { | 2778 | { |
2626 | "defaultMessage": "!!!Self hosted ⭐️", | 2779 | "defaultMessage": "!!!Self hosted ⭐️", |
2627 | "end": { | 2780 | "end": { |
2628 | "column": 3, | 2781 | "column": 3, |
2629 | "line": 74 | 2782 | "line": 73 |
2630 | }, | 2783 | }, |
2631 | "file": "src/components/settings/services/EditServiceForm.js", | 2784 | "file": "src/components/settings/services/EditServiceForm.js", |
2632 | "id": "settings.service.form.tabOnPremise", | 2785 | "id": "settings.service.form.tabOnPremise", |
2633 | "start": { | 2786 | "start": { |
2634 | "column": 16, | 2787 | "column": 16, |
2635 | "line": 71 | 2788 | "line": 70 |
2636 | } | 2789 | } |
2637 | }, | 2790 | }, |
2638 | { | 2791 | { |
2639 | "defaultMessage": "!!!Use the hosted {name} service.", | 2792 | "defaultMessage": "!!!Use the hosted {name} service.", |
2640 | "end": { | 2793 | "end": { |
2641 | "column": 3, | 2794 | "column": 3, |
2642 | "line": 78 | 2795 | "line": 77 |
2643 | }, | 2796 | }, |
2644 | "file": "src/components/settings/services/EditServiceForm.js", | 2797 | "file": "src/components/settings/services/EditServiceForm.js", |
2645 | "id": "settings.service.form.useHostedService", | 2798 | "id": "settings.service.form.useHostedService", |
2646 | "start": { | 2799 | "start": { |
2647 | "column": 20, | 2800 | "column": 20, |
2648 | "line": 75 | 2801 | "line": 74 |
2649 | } | 2802 | } |
2650 | }, | 2803 | }, |
2651 | { | 2804 | { |
2652 | "defaultMessage": "!!!Could not validate custom {name} server.", | 2805 | "defaultMessage": "!!!Could not validate custom {name} server.", |
2653 | "end": { | 2806 | "end": { |
2654 | "column": 3, | 2807 | "column": 3, |
2655 | "line": 82 | 2808 | "line": 81 |
2656 | }, | 2809 | }, |
2657 | "file": "src/components/settings/services/EditServiceForm.js", | 2810 | "file": "src/components/settings/services/EditServiceForm.js", |
2658 | "id": "settings.service.form.customUrlValidationError", | 2811 | "id": "settings.service.form.customUrlValidationError", |
2659 | "start": { | 2812 | "start": { |
2660 | "column": 28, | 2813 | "column": 28, |
2661 | "line": 79 | 2814 | "line": 78 |
2662 | } | 2815 | } |
2663 | }, | 2816 | }, |
2664 | { | 2817 | { |
2665 | "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", | 2818 | "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", |
2666 | "end": { | 2819 | "end": { |
2667 | "column": 3, | 2820 | "column": 3, |
2668 | "line": 86 | 2821 | "line": 85 |
2669 | }, | 2822 | }, |
2670 | "file": "src/components/settings/services/EditServiceForm.js", | 2823 | "file": "src/components/settings/services/EditServiceForm.js", |
2671 | "id": "settings.service.form.customUrlPremiumInfo", | 2824 | "id": "settings.service.form.customUrlPremiumInfo", |
2672 | "start": { | 2825 | "start": { |
2673 | "column": 24, | 2826 | "column": 24, |
2674 | "line": 83 | 2827 | "line": 82 |
2675 | } | 2828 | } |
2676 | }, | 2829 | }, |
2677 | { | 2830 | { |
2678 | "defaultMessage": "!!!Upgrade your account", | 2831 | "defaultMessage": "!!!Upgrade your account", |
2679 | "end": { | 2832 | "end": { |
2680 | "column": 3, | 2833 | "column": 3, |
2681 | "line": 90 | 2834 | "line": 89 |
2682 | }, | 2835 | }, |
2683 | "file": "src/components/settings/services/EditServiceForm.js", | 2836 | "file": "src/components/settings/services/EditServiceForm.js", |
2684 | "id": "settings.service.form.customUrlUpgradeAccount", | 2837 | "id": "settings.service.form.customUrlUpgradeAccount", |
2685 | "start": { | 2838 | "start": { |
2686 | "column": 27, | 2839 | "column": 27, |
2687 | "line": 87 | 2840 | "line": 86 |
2688 | } | 2841 | } |
2689 | }, | 2842 | }, |
2690 | { | 2843 | { |
2691 | "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | 2844 | "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", |
2692 | "end": { | 2845 | "end": { |
2693 | "column": 3, | 2846 | "column": 3, |
2694 | "line": 94 | 2847 | "line": 93 |
2695 | }, | 2848 | }, |
2696 | "file": "src/components/settings/services/EditServiceForm.js", | 2849 | "file": "src/components/settings/services/EditServiceForm.js", |
2697 | "id": "settings.service.form.indirectMessageInfo", | 2850 | "id": "settings.service.form.indirectMessageInfo", |
2698 | "start": { | 2851 | "start": { |
2699 | "column": 23, | 2852 | "column": 23, |
2700 | "line": 91 | 2853 | "line": 90 |
2701 | } | 2854 | } |
2702 | }, | 2855 | }, |
2703 | { | 2856 | { |
2704 | "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", | 2857 | "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", |
2705 | "end": { | 2858 | "end": { |
2706 | "column": 3, | 2859 | "column": 3, |
2707 | "line": 98 | 2860 | "line": 97 |
2708 | }, | 2861 | }, |
2709 | "file": "src/components/settings/services/EditServiceForm.js", | 2862 | "file": "src/components/settings/services/EditServiceForm.js", |
2710 | "id": "settings.service.form.isMutedInfo", | 2863 | "id": "settings.service.form.isMutedInfo", |
2711 | "start": { | 2864 | "start": { |
2712 | "column": 15, | 2865 | "column": 15, |
2713 | "line": 95 | 2866 | "line": 94 |
2714 | } | 2867 | } |
2715 | }, | 2868 | }, |
2716 | { | 2869 | { |
2717 | "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", | 2870 | "defaultMessage": "!!!When enabled, a service will be shut down after a period of time to save system resources.", |
2718 | "end": { | 2871 | "end": { |
2719 | "column": 3, | 2872 | "column": 3, |
2720 | "line": 102 | 2873 | "line": 101 |
2721 | }, | 2874 | }, |
2722 | "file": "src/components/settings/services/EditServiceForm.js", | 2875 | "file": "src/components/settings/services/EditServiceForm.js", |
2723 | "id": "settings.service.form.disableHibernationInfo", | 2876 | "id": "settings.service.form.isHibernatedEnabledInfo", |
2724 | "start": { | 2877 | "start": { |
2725 | "column": 26, | 2878 | "column": 28, |
2726 | "line": 99 | 2879 | "line": 98 |
2727 | } | 2880 | } |
2728 | }, | 2881 | }, |
2729 | { | 2882 | { |
2730 | "defaultMessage": "!!!Notifications", | 2883 | "defaultMessage": "!!!Notifications", |
2731 | "end": { | 2884 | "end": { |
2732 | "column": 3, | 2885 | "column": 3, |
2733 | "line": 106 | 2886 | "line": 105 |
2734 | }, | 2887 | }, |
2735 | "file": "src/components/settings/services/EditServiceForm.js", | 2888 | "file": "src/components/settings/services/EditServiceForm.js", |
2736 | "id": "settings.service.form.headlineNotifications", | 2889 | "id": "settings.service.form.headlineNotifications", |
2737 | "start": { | 2890 | "start": { |
2738 | "column": 25, | 2891 | "column": 25, |
2739 | "line": 103 | 2892 | "line": 102 |
2740 | } | 2893 | } |
2741 | }, | 2894 | }, |
2742 | { | 2895 | { |
2743 | "defaultMessage": "!!!Unread message badges", | 2896 | "defaultMessage": "!!!Unread message badges", |
2744 | "end": { | 2897 | "end": { |
2745 | "column": 3, | 2898 | "column": 3, |
2746 | "line": 110 | 2899 | "line": 109 |
2747 | }, | 2900 | }, |
2748 | "file": "src/components/settings/services/EditServiceForm.js", | 2901 | "file": "src/components/settings/services/EditServiceForm.js", |
2749 | "id": "settings.service.form.headlineBadges", | 2902 | "id": "settings.service.form.headlineBadges", |
2750 | "start": { | 2903 | "start": { |
2751 | "column": 18, | 2904 | "column": 18, |
2752 | "line": 107 | 2905 | "line": 106 |
2753 | } | 2906 | } |
2754 | }, | 2907 | }, |
2755 | { | 2908 | { |
2756 | "defaultMessage": "!!!General", | 2909 | "defaultMessage": "!!!General", |
2757 | "end": { | 2910 | "end": { |
2758 | "column": 3, | 2911 | "column": 3, |
2759 | "line": 114 | 2912 | "line": 113 |
2760 | }, | 2913 | }, |
2761 | "file": "src/components/settings/services/EditServiceForm.js", | 2914 | "file": "src/components/settings/services/EditServiceForm.js", |
2762 | "id": "settings.service.form.headlineGeneral", | 2915 | "id": "settings.service.form.headlineGeneral", |
2763 | "start": { | 2916 | "start": { |
2764 | "column": 19, | 2917 | "column": 19, |
2765 | "line": 111 | 2918 | "line": 110 |
2766 | } | 2919 | } |
2767 | }, | 2920 | }, |
2768 | { | 2921 | { |
2769 | "defaultMessage": "!!!Dark Reader Settings", | 2922 | "defaultMessage": "!!!Dark Reader Settings", |
2770 | "end": { | 2923 | "end": { |
2771 | "column": 3, | 2924 | "column": 3, |
2772 | "line": 118 | 2925 | "line": 117 |
2773 | }, | 2926 | }, |
2774 | "file": "src/components/settings/services/EditServiceForm.js", | 2927 | "file": "src/components/settings/services/EditServiceForm.js", |
2775 | "id": "settings.service.form.headlineDarkReaderSettings", | 2928 | "id": "settings.service.form.headlineDarkReaderSettings", |
2776 | "start": { | 2929 | "start": { |
2777 | "column": 30, | 2930 | "column": 30, |
2778 | "line": 115 | 2931 | "line": 114 |
2779 | } | 2932 | } |
2780 | }, | 2933 | }, |
2781 | { | 2934 | { |
2782 | "defaultMessage": "!!!Delete", | 2935 | "defaultMessage": "!!!Delete", |
2783 | "end": { | 2936 | "end": { |
2784 | "column": 3, | 2937 | "column": 3, |
2785 | "line": 122 | 2938 | "line": 121 |
2786 | }, | 2939 | }, |
2787 | "file": "src/components/settings/services/EditServiceForm.js", | 2940 | "file": "src/components/settings/services/EditServiceForm.js", |
2788 | "id": "settings.service.form.iconDelete", | 2941 | "id": "settings.service.form.iconDelete", |
2789 | "start": { | 2942 | "start": { |
2790 | "column": 14, | 2943 | "column": 14, |
2791 | "line": 119 | 2944 | "line": 118 |
2792 | } | 2945 | } |
2793 | }, | 2946 | }, |
2794 | { | 2947 | { |
2795 | "defaultMessage": "!!!Drop your image, or click here", | 2948 | "defaultMessage": "!!!Drop your image, or click here", |
2796 | "end": { | 2949 | "end": { |
2797 | "column": 3, | 2950 | "column": 3, |
2798 | "line": 126 | 2951 | "line": 125 |
2799 | }, | 2952 | }, |
2800 | "file": "src/components/settings/services/EditServiceForm.js", | 2953 | "file": "src/components/settings/services/EditServiceForm.js", |
2801 | "id": "settings.service.form.iconUpload", | 2954 | "id": "settings.service.form.iconUpload", |
2802 | "start": { | 2955 | "start": { |
2803 | "column": 14, | 2956 | "column": 14, |
2804 | "line": 123 | 2957 | "line": 122 |
2805 | } | 2958 | } |
2806 | }, | 2959 | }, |
2807 | { | 2960 | { |
2808 | "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", | 2961 | "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", |
2809 | "end": { | 2962 | "end": { |
2810 | "column": 3, | 2963 | "column": 3, |
2811 | "line": 130 | 2964 | "line": 129 |
2812 | }, | 2965 | }, |
2813 | "file": "src/components/settings/services/EditServiceForm.js", | 2966 | "file": "src/components/settings/services/EditServiceForm.js", |
2814 | "id": "settings.service.form.proxy.headline", | 2967 | "id": "settings.service.form.proxy.headline", |
2815 | "start": { | 2968 | "start": { |
2816 | "column": 17, | 2969 | "column": 17, |
2817 | "line": 127 | 2970 | "line": 126 |
2818 | } | 2971 | } |
2819 | }, | 2972 | }, |
2820 | { | 2973 | { |
2821 | "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", | 2974 | "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", |
2822 | "end": { | 2975 | "end": { |
2823 | "column": 3, | 2976 | "column": 3, |
2824 | "line": 134 | 2977 | "line": 133 |
2825 | }, | 2978 | }, |
2826 | "file": "src/components/settings/services/EditServiceForm.js", | 2979 | "file": "src/components/settings/services/EditServiceForm.js", |
2827 | "id": "settings.service.form.proxy.restartInfo", | 2980 | "id": "settings.service.form.proxy.restartInfo", |
2828 | "start": { | 2981 | "start": { |
2829 | "column": 20, | 2982 | "column": 20, |
2830 | "line": 131 | 2983 | "line": 130 |
2831 | } | 2984 | } |
2832 | }, | 2985 | }, |
2833 | { | 2986 | { |
2834 | "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", | 2987 | "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", |
2835 | "end": { | 2988 | "end": { |
2836 | "column": 3, | 2989 | "column": 3, |
2837 | "line": 138 | 2990 | "line": 137 |
2838 | }, | 2991 | }, |
2839 | "file": "src/components/settings/services/EditServiceForm.js", | 2992 | "file": "src/components/settings/services/EditServiceForm.js", |
2840 | "id": "settings.service.form.proxy.info", | 2993 | "id": "settings.service.form.proxy.info", |
2841 | "start": { | 2994 | "start": { |
2842 | "column": 13, | 2995 | "column": 13, |
2843 | "line": 135 | 2996 | "line": 134 |
2844 | } | 2997 | } |
2845 | } | 2998 | } |
2846 | ], | 2999 | ], |
@@ -4494,15 +4647,15 @@ | |||
4494 | } | 4647 | } |
4495 | }, | 4648 | }, |
4496 | { | 4649 | { |
4497 | "defaultMessage": "!!!Disable hibernation", | 4650 | "defaultMessage": "!!!Enable hibernation", |
4498 | "end": { | 4651 | "end": { |
4499 | "column": 3, | 4652 | "column": 3, |
4500 | "line": 39 | 4653 | "line": 39 |
4501 | }, | 4654 | }, |
4502 | "file": "src/containers/settings/EditServiceScreen.js", | 4655 | "file": "src/containers/settings/EditServiceScreen.js", |
4503 | "id": "settings.service.form.disableHibernation", | 4656 | "id": "settings.service.form.enableHibernation", |
4504 | "start": { | 4657 | "start": { |
4505 | "column": 22, | 4658 | "column": 21, |
4506 | "line": 36 | 4659 | "line": 36 |
4507 | } | 4660 | } |
4508 | }, | 4661 | }, |
@@ -4723,520 +4876,546 @@ | |||
4723 | "defaultMessage": "!!!Launch Ferdi on start", | 4876 | "defaultMessage": "!!!Launch Ferdi on start", |
4724 | "end": { | 4877 | "end": { |
4725 | "column": 3, | 4878 | "column": 3, |
4726 | "line": 33 | 4879 | "line": 34 |
4727 | }, | 4880 | }, |
4728 | "file": "src/containers/settings/EditSettingsScreen.js", | 4881 | "file": "src/containers/settings/EditSettingsScreen.js", |
4729 | "id": "settings.app.form.autoLaunchOnStart", | 4882 | "id": "settings.app.form.autoLaunchOnStart", |
4730 | "start": { | 4883 | "start": { |
4731 | "column": 21, | 4884 | "column": 21, |
4732 | "line": 30 | 4885 | "line": 31 |
4733 | } | 4886 | } |
4734 | }, | 4887 | }, |
4735 | { | 4888 | { |
4736 | "defaultMessage": "!!!Open in background", | 4889 | "defaultMessage": "!!!Open in background", |
4737 | "end": { | 4890 | "end": { |
4738 | "column": 3, | 4891 | "column": 3, |
4739 | "line": 37 | 4892 | "line": 38 |
4740 | }, | 4893 | }, |
4741 | "file": "src/containers/settings/EditSettingsScreen.js", | 4894 | "file": "src/containers/settings/EditSettingsScreen.js", |
4742 | "id": "settings.app.form.autoLaunchInBackground", | 4895 | "id": "settings.app.form.autoLaunchInBackground", |
4743 | "start": { | 4896 | "start": { |
4744 | "column": 26, | 4897 | "column": 26, |
4745 | "line": 34 | 4898 | "line": 35 |
4746 | } | 4899 | } |
4747 | }, | 4900 | }, |
4748 | { | 4901 | { |
4749 | "defaultMessage": "!!!Keep Ferdi in background when closing the window", | 4902 | "defaultMessage": "!!!Keep Ferdi in background when closing the window", |
4750 | "end": { | 4903 | "end": { |
4751 | "column": 3, | 4904 | "column": 3, |
4752 | "line": 41 | 4905 | "line": 42 |
4753 | }, | 4906 | }, |
4754 | "file": "src/containers/settings/EditSettingsScreen.js", | 4907 | "file": "src/containers/settings/EditSettingsScreen.js", |
4755 | "id": "settings.app.form.runInBackground", | 4908 | "id": "settings.app.form.runInBackground", |
4756 | "start": { | 4909 | "start": { |
4757 | "column": 19, | 4910 | "column": 19, |
4758 | "line": 38 | 4911 | "line": 39 |
4759 | } | 4912 | } |
4760 | }, | 4913 | }, |
4761 | { | 4914 | { |
4762 | "defaultMessage": "!!!Start minimized", | 4915 | "defaultMessage": "!!!Start minimized", |
4763 | "end": { | 4916 | "end": { |
4764 | "column": 3, | 4917 | "column": 3, |
4765 | "line": 45 | 4918 | "line": 46 |
4766 | }, | 4919 | }, |
4767 | "file": "src/containers/settings/EditSettingsScreen.js", | 4920 | "file": "src/containers/settings/EditSettingsScreen.js", |
4768 | "id": "settings.app.form.startMinimized", | 4921 | "id": "settings.app.form.startMinimized", |
4769 | "start": { | 4922 | "start": { |
4770 | "column": 18, | 4923 | "column": 18, |
4771 | "line": 42 | 4924 | "line": 43 |
4772 | } | 4925 | } |
4773 | }, | 4926 | }, |
4774 | { | 4927 | { |
4775 | "defaultMessage": "!!!Always show Ferdi in system tray", | 4928 | "defaultMessage": "!!!Always show Ferdi in system tray", |
4776 | "end": { | 4929 | "end": { |
4777 | "column": 3, | 4930 | "column": 3, |
4778 | "line": 49 | 4931 | "line": 50 |
4779 | }, | 4932 | }, |
4780 | "file": "src/containers/settings/EditSettingsScreen.js", | 4933 | "file": "src/containers/settings/EditSettingsScreen.js", |
4781 | "id": "settings.app.form.enableSystemTray", | 4934 | "id": "settings.app.form.enableSystemTray", |
4782 | "start": { | 4935 | "start": { |
4783 | "column": 20, | 4936 | "column": 20, |
4784 | "line": 46 | 4937 | "line": 47 |
4785 | } | 4938 | } |
4786 | }, | 4939 | }, |
4787 | { | 4940 | { |
4788 | "defaultMessage": "!!!Reload Ferdi after system resume", | 4941 | "defaultMessage": "!!!Reload Ferdi after system resume", |
4789 | "end": { | 4942 | "end": { |
4790 | "column": 3, | 4943 | "column": 3, |
4791 | "line": 53 | 4944 | "line": 54 |
4792 | }, | 4945 | }, |
4793 | "file": "src/containers/settings/EditSettingsScreen.js", | 4946 | "file": "src/containers/settings/EditSettingsScreen.js", |
4794 | "id": "settings.app.form.reloadAfterResume", | 4947 | "id": "settings.app.form.reloadAfterResume", |
4795 | "start": { | 4948 | "start": { |
4796 | "column": 21, | 4949 | "column": 21, |
4797 | "line": 50 | 4950 | "line": 51 |
4798 | } | 4951 | } |
4799 | }, | 4952 | }, |
4800 | { | 4953 | { |
4801 | "defaultMessage": "!!!Minimize Ferdi to system tray", | 4954 | "defaultMessage": "!!!Minimize Ferdi to system tray", |
4802 | "end": { | 4955 | "end": { |
4803 | "column": 3, | 4956 | "column": 3, |
4804 | "line": 57 | 4957 | "line": 58 |
4805 | }, | 4958 | }, |
4806 | "file": "src/containers/settings/EditSettingsScreen.js", | 4959 | "file": "src/containers/settings/EditSettingsScreen.js", |
4807 | "id": "settings.app.form.minimizeToSystemTray", | 4960 | "id": "settings.app.form.minimizeToSystemTray", |
4808 | "start": { | 4961 | "start": { |
4809 | "column": 24, | 4962 | "column": 24, |
4810 | "line": 54 | 4963 | "line": 55 |
4964 | } | ||
4965 | }, | ||
4966 | { | ||
4967 | "defaultMessage": "!!!Close Ferdi to system tray", | ||
4968 | "end": { | ||
4969 | "column": 3, | ||
4970 | "line": 62 | ||
4971 | }, | ||
4972 | "file": "src/containers/settings/EditSettingsScreen.js", | ||
4973 | "id": "settings.app.form.closeToSystemTray", | ||
4974 | "start": { | ||
4975 | "column": 21, | ||
4976 | "line": 59 | ||
4811 | } | 4977 | } |
4812 | }, | 4978 | }, |
4813 | { | 4979 | { |
4814 | "defaultMessage": "!!!Don't show message content in notifications", | 4980 | "defaultMessage": "!!!Don't show message content in notifications", |
4815 | "end": { | 4981 | "end": { |
4816 | "column": 3, | 4982 | "column": 3, |
4817 | "line": 61 | 4983 | "line": 66 |
4818 | }, | 4984 | }, |
4819 | "file": "src/containers/settings/EditSettingsScreen.js", | 4985 | "file": "src/containers/settings/EditSettingsScreen.js", |
4820 | "id": "settings.app.form.privateNotifications", | 4986 | "id": "settings.app.form.privateNotifications", |
4821 | "start": { | 4987 | "start": { |
4822 | "column": 24, | 4988 | "column": 24, |
4823 | "line": 58 | 4989 | "line": 63 |
4990 | } | ||
4991 | }, | ||
4992 | { | ||
4993 | "defaultMessage": "!!!Notify TaskBar/Dock on new message", | ||
4994 | "end": { | ||
4995 | "column": 3, | ||
4996 | "line": 70 | ||
4997 | }, | ||
4998 | "file": "src/containers/settings/EditSettingsScreen.js", | ||
4999 | "id": "settings.app.form.notifyTaskBarOnMessage", | ||
5000 | "start": { | ||
5001 | "column": 26, | ||
5002 | "line": 67 | ||
4824 | } | 5003 | } |
4825 | }, | 5004 | }, |
4826 | { | 5005 | { |
4827 | "defaultMessage": "!!!Navigation bar behaviour", | 5006 | "defaultMessage": "!!!Navigation bar behaviour", |
4828 | "end": { | 5007 | "end": { |
4829 | "column": 3, | 5008 | "column": 3, |
4830 | "line": 65 | 5009 | "line": 74 |
4831 | }, | 5010 | }, |
4832 | "file": "src/containers/settings/EditSettingsScreen.js", | 5011 | "file": "src/containers/settings/EditSettingsScreen.js", |
4833 | "id": "settings.app.form.navigationBarBehaviour", | 5012 | "id": "settings.app.form.navigationBarBehaviour", |
4834 | "start": { | 5013 | "start": { |
4835 | "column": 26, | 5014 | "column": 26, |
4836 | "line": 62 | 5015 | "line": 71 |
4837 | } | 5016 | } |
4838 | }, | 5017 | }, |
4839 | { | 5018 | { |
4840 | "defaultMessage": "!!!Send telemetry data", | 5019 | "defaultMessage": "!!!Send telemetry data", |
4841 | "end": { | 5020 | "end": { |
4842 | "column": 3, | 5021 | "column": 3, |
4843 | "line": 69 | 5022 | "line": 78 |
4844 | }, | 5023 | }, |
4845 | "file": "src/containers/settings/EditSettingsScreen.js", | 5024 | "file": "src/containers/settings/EditSettingsScreen.js", |
4846 | "id": "settings.app.form.sentry", | 5025 | "id": "settings.app.form.sentry", |
4847 | "start": { | 5026 | "start": { |
4848 | "column": 10, | 5027 | "column": 10, |
4849 | "line": 66 | 5028 | "line": 75 |
4850 | } | 5029 | } |
4851 | }, | 5030 | }, |
4852 | { | 5031 | { |
4853 | "defaultMessage": "!!!Enable service hibernation", | 5032 | "defaultMessage": "!!!Enable service hibernation", |
4854 | "end": { | 5033 | "end": { |
4855 | "column": 3, | 5034 | "column": 3, |
4856 | "line": 73 | 5035 | "line": 82 |
4857 | }, | 5036 | }, |
4858 | "file": "src/containers/settings/EditSettingsScreen.js", | 5037 | "file": "src/containers/settings/EditSettingsScreen.js", |
4859 | "id": "settings.app.form.hibernate", | 5038 | "id": "settings.app.form.hibernate", |
4860 | "start": { | 5039 | "start": { |
4861 | "column": 13, | 5040 | "column": 13, |
4862 | "line": 70 | 5041 | "line": 79 |
4863 | } | 5042 | } |
4864 | }, | 5043 | }, |
4865 | { | 5044 | { |
4866 | "defaultMessage": "!!!Keep services in hibernation on startup", | 5045 | "defaultMessage": "!!!Keep services in hibernation on startup", |
4867 | "end": { | 5046 | "end": { |
4868 | "column": 3, | 5047 | "column": 3, |
4869 | "line": 77 | 5048 | "line": 86 |
4870 | }, | 5049 | }, |
4871 | "file": "src/containers/settings/EditSettingsScreen.js", | 5050 | "file": "src/containers/settings/EditSettingsScreen.js", |
4872 | "id": "settings.app.form.hibernateOnStartup", | 5051 | "id": "settings.app.form.hibernateOnStartup", |
4873 | "start": { | 5052 | "start": { |
4874 | "column": 22, | 5053 | "column": 22, |
4875 | "line": 74 | 5054 | "line": 83 |
4876 | } | 5055 | } |
4877 | }, | 5056 | }, |
4878 | { | 5057 | { |
4879 | "defaultMessage": "!!!Hibernation strategy", | 5058 | "defaultMessage": "!!!Hibernation strategy", |
4880 | "end": { | 5059 | "end": { |
4881 | "column": 3, | 5060 | "column": 3, |
4882 | "line": 81 | 5061 | "line": 90 |
4883 | }, | 5062 | }, |
4884 | "file": "src/containers/settings/EditSettingsScreen.js", | 5063 | "file": "src/containers/settings/EditSettingsScreen.js", |
4885 | "id": "settings.app.form.hibernationStrategy", | 5064 | "id": "settings.app.form.hibernationStrategy", |
4886 | "start": { | 5065 | "start": { |
4887 | "column": 23, | 5066 | "column": 23, |
4888 | "line": 78 | 5067 | "line": 87 |
4889 | } | 5068 | } |
4890 | }, | 5069 | }, |
4891 | { | 5070 | { |
4892 | "defaultMessage": "!!!Todo Server", | 5071 | "defaultMessage": "!!!Todo Server", |
4893 | "end": { | 5072 | "end": { |
4894 | "column": 3, | 5073 | "column": 3, |
4895 | "line": 85 | 5074 | "line": 94 |
4896 | }, | 5075 | }, |
4897 | "file": "src/containers/settings/EditSettingsScreen.js", | 5076 | "file": "src/containers/settings/EditSettingsScreen.js", |
4898 | "id": "settings.app.form.predefinedTodoServer", | 5077 | "id": "settings.app.form.predefinedTodoServer", |
4899 | "start": { | 5078 | "start": { |
4900 | "column": 24, | 5079 | "column": 24, |
4901 | "line": 82 | 5080 | "line": 91 |
4902 | } | 5081 | } |
4903 | }, | 5082 | }, |
4904 | { | 5083 | { |
4905 | "defaultMessage": "!!!Custom TodoServer", | 5084 | "defaultMessage": "!!!Custom TodoServer", |
4906 | "end": { | 5085 | "end": { |
4907 | "column": 3, | 5086 | "column": 3, |
4908 | "line": 89 | 5087 | "line": 98 |
4909 | }, | 5088 | }, |
4910 | "file": "src/containers/settings/EditSettingsScreen.js", | 5089 | "file": "src/containers/settings/EditSettingsScreen.js", |
4911 | "id": "settings.app.form.customTodoServer", | 5090 | "id": "settings.app.form.customTodoServer", |
4912 | "start": { | 5091 | "start": { |
4913 | "column": 20, | 5092 | "column": 20, |
4914 | "line": 86 | 5093 | "line": 95 |
4915 | } | 5094 | } |
4916 | }, | 5095 | }, |
4917 | { | 5096 | { |
4918 | "defaultMessage": "!!!Enable Password Lock", | 5097 | "defaultMessage": "!!!Enable Password Lock", |
4919 | "end": { | 5098 | "end": { |
4920 | "column": 3, | 5099 | "column": 3, |
4921 | "line": 93 | 5100 | "line": 102 |
4922 | }, | 5101 | }, |
4923 | "file": "src/containers/settings/EditSettingsScreen.js", | 5102 | "file": "src/containers/settings/EditSettingsScreen.js", |
4924 | "id": "settings.app.form.enableLock", | 5103 | "id": "settings.app.form.enableLock", |
4925 | "start": { | 5104 | "start": { |
4926 | "column": 14, | 5105 | "column": 14, |
4927 | "line": 90 | 5106 | "line": 99 |
4928 | } | 5107 | } |
4929 | }, | 5108 | }, |
4930 | { | 5109 | { |
4931 | "defaultMessage": "!!!Password", | 5110 | "defaultMessage": "!!!Password", |
4932 | "end": { | 5111 | "end": { |
4933 | "column": 3, | 5112 | "column": 3, |
4934 | "line": 97 | 5113 | "line": 106 |
4935 | }, | 5114 | }, |
4936 | "file": "src/containers/settings/EditSettingsScreen.js", | 5115 | "file": "src/containers/settings/EditSettingsScreen.js", |
4937 | "id": "settings.app.form.lockPassword", | 5116 | "id": "settings.app.form.lockPassword", |
4938 | "start": { | 5117 | "start": { |
4939 | "column": 16, | 5118 | "column": 16, |
4940 | "line": 94 | 5119 | "line": 103 |
4941 | } | 5120 | } |
4942 | }, | 5121 | }, |
4943 | { | 5122 | { |
4944 | "defaultMessage": "!!!Allow using Touch ID to unlock", | 5123 | "defaultMessage": "!!!Allow using Touch ID to unlock", |
4945 | "end": { | 5124 | "end": { |
4946 | "column": 3, | 5125 | "column": 3, |
4947 | "line": 101 | 5126 | "line": 110 |
4948 | }, | 5127 | }, |
4949 | "file": "src/containers/settings/EditSettingsScreen.js", | 5128 | "file": "src/containers/settings/EditSettingsScreen.js", |
4950 | "id": "settings.app.form.useTouchIdToUnlock", | 5129 | "id": "settings.app.form.useTouchIdToUnlock", |
4951 | "start": { | 5130 | "start": { |
4952 | "column": 22, | 5131 | "column": 22, |
4953 | "line": 98 | 5132 | "line": 107 |
4954 | } | 5133 | } |
4955 | }, | 5134 | }, |
4956 | { | 5135 | { |
4957 | "defaultMessage": "!!!Lock after inactivity", | 5136 | "defaultMessage": "!!!Lock after inactivity", |
4958 | "end": { | 5137 | "end": { |
4959 | "column": 3, | 5138 | "column": 3, |
4960 | "line": 105 | 5139 | "line": 114 |
4961 | }, | 5140 | }, |
4962 | "file": "src/containers/settings/EditSettingsScreen.js", | 5141 | "file": "src/containers/settings/EditSettingsScreen.js", |
4963 | "id": "settings.app.form.inactivityLock", | 5142 | "id": "settings.app.form.inactivityLock", |
4964 | "start": { | 5143 | "start": { |
4965 | "column": 18, | 5144 | "column": 18, |
4966 | "line": 102 | 5145 | "line": 111 |
4967 | } | 5146 | } |
4968 | }, | 5147 | }, |
4969 | { | 5148 | { |
4970 | "defaultMessage": "!!!Enable scheduled Do-not-Disturb", | 5149 | "defaultMessage": "!!!Enable scheduled Do-not-Disturb", |
4971 | "end": { | 5150 | "end": { |
4972 | "column": 3, | 5151 | "column": 3, |
4973 | "line": 109 | 5152 | "line": 118 |
4974 | }, | 5153 | }, |
4975 | "file": "src/containers/settings/EditSettingsScreen.js", | 5154 | "file": "src/containers/settings/EditSettingsScreen.js", |
4976 | "id": "settings.app.form.scheduledDNDEnabled", | 5155 | "id": "settings.app.form.scheduledDNDEnabled", |
4977 | "start": { | 5156 | "start": { |
4978 | "column": 23, | 5157 | "column": 23, |
4979 | "line": 106 | 5158 | "line": 115 |
4980 | } | 5159 | } |
4981 | }, | 5160 | }, |
4982 | { | 5161 | { |
4983 | "defaultMessage": "!!!From", | 5162 | "defaultMessage": "!!!From", |
4984 | "end": { | 5163 | "end": { |
4985 | "column": 3, | 5164 | "column": 3, |
4986 | "line": 113 | 5165 | "line": 122 |
4987 | }, | 5166 | }, |
4988 | "file": "src/containers/settings/EditSettingsScreen.js", | 5167 | "file": "src/containers/settings/EditSettingsScreen.js", |
4989 | "id": "settings.app.form.scheduledDNDStart", | 5168 | "id": "settings.app.form.scheduledDNDStart", |
4990 | "start": { | 5169 | "start": { |
4991 | "column": 21, | 5170 | "column": 21, |
4992 | "line": 110 | 5171 | "line": 119 |
4993 | } | 5172 | } |
4994 | }, | 5173 | }, |
4995 | { | 5174 | { |
4996 | "defaultMessage": "!!!To", | 5175 | "defaultMessage": "!!!To", |
4997 | "end": { | 5176 | "end": { |
4998 | "column": 3, | 5177 | "column": 3, |
4999 | "line": 117 | 5178 | "line": 126 |
5000 | }, | 5179 | }, |
5001 | "file": "src/containers/settings/EditSettingsScreen.js", | 5180 | "file": "src/containers/settings/EditSettingsScreen.js", |
5002 | "id": "settings.app.form.scheduledDNDEnd", | 5181 | "id": "settings.app.form.scheduledDNDEnd", |
5003 | "start": { | 5182 | "start": { |
5004 | "column": 19, | 5183 | "column": 19, |
5005 | "line": 114 | 5184 | "line": 123 |
5006 | } | 5185 | } |
5007 | }, | 5186 | }, |
5008 | { | 5187 | { |
5009 | "defaultMessage": "!!!Language", | 5188 | "defaultMessage": "!!!Language", |
5010 | "end": { | 5189 | "end": { |
5011 | "column": 3, | 5190 | "column": 3, |
5012 | "line": 121 | 5191 | "line": 130 |
5013 | }, | 5192 | }, |
5014 | "file": "src/containers/settings/EditSettingsScreen.js", | 5193 | "file": "src/containers/settings/EditSettingsScreen.js", |
5015 | "id": "settings.app.form.language", | 5194 | "id": "settings.app.form.language", |
5016 | "start": { | 5195 | "start": { |
5017 | "column": 12, | 5196 | "column": 12, |
5018 | "line": 118 | 5197 | "line": 127 |
5019 | } | 5198 | } |
5020 | }, | 5199 | }, |
5021 | { | 5200 | { |
5022 | "defaultMessage": "!!!Dark Mode", | 5201 | "defaultMessage": "!!!Dark Mode", |
5023 | "end": { | 5202 | "end": { |
5024 | "column": 3, | 5203 | "column": 3, |
5025 | "line": 125 | 5204 | "line": 134 |
5026 | }, | 5205 | }, |
5027 | "file": "src/containers/settings/EditSettingsScreen.js", | 5206 | "file": "src/containers/settings/EditSettingsScreen.js", |
5028 | "id": "settings.app.form.darkMode", | 5207 | "id": "settings.app.form.darkMode", |
5029 | "start": { | 5208 | "start": { |
5030 | "column": 12, | 5209 | "column": 12, |
5031 | "line": 122 | 5210 | "line": 131 |
5032 | } | 5211 | } |
5033 | }, | 5212 | }, |
5034 | { | 5213 | { |
5035 | "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", | 5214 | "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", |
5036 | "end": { | 5215 | "end": { |
5037 | "column": 3, | 5216 | "column": 3, |
5038 | "line": 129 | 5217 | "line": 138 |
5039 | }, | 5218 | }, |
5040 | "file": "src/containers/settings/EditSettingsScreen.js", | 5219 | "file": "src/containers/settings/EditSettingsScreen.js", |
5041 | "id": "settings.app.form.adaptableDarkMode", | 5220 | "id": "settings.app.form.adaptableDarkMode", |
5042 | "start": { | 5221 | "start": { |
5043 | "column": 21, | 5222 | "column": 21, |
5044 | "line": 126 | 5223 | "line": 135 |
5045 | } | 5224 | } |
5046 | }, | 5225 | }, |
5047 | { | 5226 | { |
5048 | "defaultMessage": "!!!Enable universal Dark Mode", | 5227 | "defaultMessage": "!!!Enable universal Dark Mode", |
5049 | "end": { | 5228 | "end": { |
5050 | "column": 3, | 5229 | "column": 3, |
5051 | "line": 133 | 5230 | "line": 142 |
5052 | }, | 5231 | }, |
5053 | "file": "src/containers/settings/EditSettingsScreen.js", | 5232 | "file": "src/containers/settings/EditSettingsScreen.js", |
5054 | "id": "settings.app.form.universalDarkMode", | 5233 | "id": "settings.app.form.universalDarkMode", |
5055 | "start": { | 5234 | "start": { |
5056 | "column": 21, | 5235 | "column": 21, |
5057 | "line": 130 | 5236 | "line": 139 |
5058 | } | 5237 | } |
5059 | }, | 5238 | }, |
5060 | { | 5239 | { |
5061 | "defaultMessage": "!!!Sidebar width", | 5240 | "defaultMessage": "!!!Sidebar width", |
5062 | "end": { | 5241 | "end": { |
5063 | "column": 3, | 5242 | "column": 3, |
5064 | "line": 137 | 5243 | "line": 146 |
5065 | }, | 5244 | }, |
5066 | "file": "src/containers/settings/EditSettingsScreen.js", | 5245 | "file": "src/containers/settings/EditSettingsScreen.js", |
5067 | "id": "settings.app.form.serviceRibbonWidth", | 5246 | "id": "settings.app.form.serviceRibbonWidth", |
5068 | "start": { | 5247 | "start": { |
5069 | "column": 22, | 5248 | "column": 22, |
5070 | "line": 134 | 5249 | "line": 143 |
5071 | } | 5250 | } |
5072 | }, | 5251 | }, |
5073 | { | 5252 | { |
5074 | "defaultMessage": "!!!Service icon size", | 5253 | "defaultMessage": "!!!Service icon size", |
5075 | "end": { | 5254 | "end": { |
5076 | "column": 3, | 5255 | "column": 3, |
5077 | "line": 141 | 5256 | "line": 150 |
5078 | }, | 5257 | }, |
5079 | "file": "src/containers/settings/EditSettingsScreen.js", | 5258 | "file": "src/containers/settings/EditSettingsScreen.js", |
5080 | "id": "settings.app.form.iconSize", | 5259 | "id": "settings.app.form.iconSize", |
5081 | "start": { | 5260 | "start": { |
5082 | "column": 12, | 5261 | "column": 12, |
5083 | "line": 138 | 5262 | "line": 147 |
5084 | } | 5263 | } |
5085 | }, | 5264 | }, |
5086 | { | 5265 | { |
5087 | "defaultMessage": "!!!Use vertical style", | 5266 | "defaultMessage": "!!!Use vertical style", |
5088 | "end": { | 5267 | "end": { |
5089 | "column": 3, | 5268 | "column": 3, |
5090 | "line": 145 | 5269 | "line": 154 |
5091 | }, | 5270 | }, |
5092 | "file": "src/containers/settings/EditSettingsScreen.js", | 5271 | "file": "src/containers/settings/EditSettingsScreen.js", |
5093 | "id": "settings.app.form.useVerticalStyle", | 5272 | "id": "settings.app.form.useVerticalStyle", |
5094 | "start": { | 5273 | "start": { |
5095 | "column": 20, | 5274 | "column": 20, |
5096 | "line": 142 | 5275 | "line": 151 |
5097 | } | 5276 | } |
5098 | }, | 5277 | }, |
5099 | { | 5278 | { |
5100 | "defaultMessage": "!!!Always show workspace drawer", | 5279 | "defaultMessage": "!!!Always show workspace drawer", |
5101 | "end": { | 5280 | "end": { |
5102 | "column": 3, | 5281 | "column": 3, |
5103 | "line": 149 | 5282 | "line": 158 |
5104 | }, | 5283 | }, |
5105 | "file": "src/containers/settings/EditSettingsScreen.js", | 5284 | "file": "src/containers/settings/EditSettingsScreen.js", |
5106 | "id": "settings.app.form.alwaysShowWorkspaces", | 5285 | "id": "settings.app.form.alwaysShowWorkspaces", |
5107 | "start": { | 5286 | "start": { |
5108 | "column": 24, | 5287 | "column": 24, |
5109 | "line": 146 | 5288 | "line": 155 |
5110 | } | 5289 | } |
5111 | }, | 5290 | }, |
5112 | { | 5291 | { |
5113 | "defaultMessage": "!!!Accent color", | 5292 | "defaultMessage": "!!!Accent color", |
5114 | "end": { | 5293 | "end": { |
5115 | "column": 3, | 5294 | "column": 3, |
5116 | "line": 153 | 5295 | "line": 162 |
5117 | }, | 5296 | }, |
5118 | "file": "src/containers/settings/EditSettingsScreen.js", | 5297 | "file": "src/containers/settings/EditSettingsScreen.js", |
5119 | "id": "settings.app.form.accentColor", | 5298 | "id": "settings.app.form.accentColor", |
5120 | "start": { | 5299 | "start": { |
5121 | "column": 15, | 5300 | "column": 15, |
5122 | "line": 150 | 5301 | "line": 159 |
5123 | } | 5302 | } |
5124 | }, | 5303 | }, |
5125 | { | 5304 | { |
5126 | "defaultMessage": "!!!Display disabled services tabs", | 5305 | "defaultMessage": "!!!Display disabled services tabs", |
5127 | "end": { | 5306 | "end": { |
5128 | "column": 3, | 5307 | "column": 3, |
5129 | "line": 157 | 5308 | "line": 166 |
5130 | }, | 5309 | }, |
5131 | "file": "src/containers/settings/EditSettingsScreen.js", | 5310 | "file": "src/containers/settings/EditSettingsScreen.js", |
5132 | "id": "settings.app.form.showDisabledServices", | 5311 | "id": "settings.app.form.showDisabledServices", |
5133 | "start": { | 5312 | "start": { |
5134 | "column": 24, | 5313 | "column": 24, |
5135 | "line": 154 | 5314 | "line": 163 |
5136 | } | 5315 | } |
5137 | }, | 5316 | }, |
5138 | { | 5317 | { |
5139 | "defaultMessage": "!!!Show unread message badge when notifications are disabled", | 5318 | "defaultMessage": "!!!Show unread message badge when notifications are disabled", |
5140 | "end": { | 5319 | "end": { |
5141 | "column": 3, | 5320 | "column": 3, |
5142 | "line": 161 | 5321 | "line": 170 |
5143 | }, | 5322 | }, |
5144 | "file": "src/containers/settings/EditSettingsScreen.js", | 5323 | "file": "src/containers/settings/EditSettingsScreen.js", |
5145 | "id": "settings.app.form.showMessagesBadgesWhenMuted", | 5324 | "id": "settings.app.form.showMessagesBadgesWhenMuted", |
5146 | "start": { | 5325 | "start": { |
5147 | "column": 29, | 5326 | "column": 29, |
5148 | "line": 158 | 5327 | "line": 167 |
5149 | } | 5328 | } |
5150 | }, | 5329 | }, |
5151 | { | 5330 | { |
5152 | "defaultMessage": "!!!Show draggable area on window", | 5331 | "defaultMessage": "!!!Show draggable area on window", |
5153 | "end": { | 5332 | "end": { |
5154 | "column": 3, | 5333 | "column": 3, |
5155 | "line": 165 | 5334 | "line": 174 |
5156 | }, | 5335 | }, |
5157 | "file": "src/containers/settings/EditSettingsScreen.js", | 5336 | "file": "src/containers/settings/EditSettingsScreen.js", |
5158 | "id": "settings.app.form.showDragArea", | 5337 | "id": "settings.app.form.showDragArea", |
5159 | "start": { | 5338 | "start": { |
5160 | "column": 16, | 5339 | "column": 16, |
5161 | "line": 162 | 5340 | "line": 171 |
5162 | } | 5341 | } |
5163 | }, | 5342 | }, |
5164 | { | 5343 | { |
5165 | "defaultMessage": "!!!Enable spell checking", | 5344 | "defaultMessage": "!!!Enable spell checking", |
5166 | "end": { | 5345 | "end": { |
5167 | "column": 3, | 5346 | "column": 3, |
5168 | "line": 169 | 5347 | "line": 178 |
5169 | }, | 5348 | }, |
5170 | "file": "src/containers/settings/EditSettingsScreen.js", | 5349 | "file": "src/containers/settings/EditSettingsScreen.js", |
5171 | "id": "settings.app.form.enableSpellchecking", | 5350 | "id": "settings.app.form.enableSpellchecking", |
5172 | "start": { | 5351 | "start": { |
5173 | "column": 23, | 5352 | "column": 23, |
5174 | "line": 166 | 5353 | "line": 175 |
5175 | } | 5354 | } |
5176 | }, | 5355 | }, |
5177 | { | 5356 | { |
5178 | "defaultMessage": "!!!Enable GPU Acceleration", | 5357 | "defaultMessage": "!!!Enable GPU Acceleration", |
5179 | "end": { | 5358 | "end": { |
5180 | "column": 3, | 5359 | "column": 3, |
5181 | "line": 173 | 5360 | "line": 182 |
5182 | }, | 5361 | }, |
5183 | "file": "src/containers/settings/EditSettingsScreen.js", | 5362 | "file": "src/containers/settings/EditSettingsScreen.js", |
5184 | "id": "settings.app.form.enableGPUAcceleration", | 5363 | "id": "settings.app.form.enableGPUAcceleration", |
5185 | "start": { | 5364 | "start": { |
5186 | "column": 25, | 5365 | "column": 25, |
5187 | "line": 170 | 5366 | "line": 179 |
5188 | } | 5367 | } |
5189 | }, | 5368 | }, |
5190 | { | 5369 | { |
5191 | "defaultMessage": "!!!Include beta versions", | 5370 | "defaultMessage": "!!!Include beta versions", |
5192 | "end": { | 5371 | "end": { |
5193 | "column": 3, | 5372 | "column": 3, |
5194 | "line": 177 | 5373 | "line": 186 |
5195 | }, | 5374 | }, |
5196 | "file": "src/containers/settings/EditSettingsScreen.js", | 5375 | "file": "src/containers/settings/EditSettingsScreen.js", |
5197 | "id": "settings.app.form.beta", | 5376 | "id": "settings.app.form.beta", |
5198 | "start": { | 5377 | "start": { |
5199 | "column": 8, | 5378 | "column": 8, |
5200 | "line": 174 | 5379 | "line": 183 |
5201 | } | 5380 | } |
5202 | }, | 5381 | }, |
5203 | { | 5382 | { |
5204 | "defaultMessage": "!!!Enable updates", | 5383 | "defaultMessage": "!!!Enable updates", |
5205 | "end": { | 5384 | "end": { |
5206 | "column": 3, | 5385 | "column": 3, |
5207 | "line": 181 | 5386 | "line": 190 |
5208 | }, | 5387 | }, |
5209 | "file": "src/containers/settings/EditSettingsScreen.js", | 5388 | "file": "src/containers/settings/EditSettingsScreen.js", |
5210 | "id": "settings.app.form.automaticUpdates", | 5389 | "id": "settings.app.form.automaticUpdates", |
5211 | "start": { | 5390 | "start": { |
5212 | "column": 20, | 5391 | "column": 20, |
5213 | "line": 178 | 5392 | "line": 187 |
5214 | } | 5393 | } |
5215 | }, | 5394 | }, |
5216 | { | 5395 | { |
5217 | "defaultMessage": "!!!Enable Franz Todos", | 5396 | "defaultMessage": "!!!Enable Franz Todos", |
5218 | "end": { | 5397 | "end": { |
5219 | "column": 3, | 5398 | "column": 3, |
5220 | "line": 185 | 5399 | "line": 194 |
5221 | }, | 5400 | }, |
5222 | "file": "src/containers/settings/EditSettingsScreen.js", | 5401 | "file": "src/containers/settings/EditSettingsScreen.js", |
5223 | "id": "settings.app.form.enableTodos", | 5402 | "id": "settings.app.form.enableTodos", |
5224 | "start": { | 5403 | "start": { |
5225 | "column": 15, | 5404 | "column": 15, |
5226 | "line": 182 | 5405 | "line": 191 |
5227 | } | 5406 | } |
5228 | }, | 5407 | }, |
5229 | { | 5408 | { |
5230 | "defaultMessage": "!!!Keep all workspaces loaded", | 5409 | "defaultMessage": "!!!Keep all workspaces loaded", |
5231 | "end": { | 5410 | "end": { |
5232 | "column": 3, | 5411 | "column": 3, |
5233 | "line": 189 | 5412 | "line": 198 |
5234 | }, | 5413 | }, |
5235 | "file": "src/containers/settings/EditSettingsScreen.js", | 5414 | "file": "src/containers/settings/EditSettingsScreen.js", |
5236 | "id": "settings.app.form.keepAllWorkspacesLoaded", | 5415 | "id": "settings.app.form.keepAllWorkspacesLoaded", |
5237 | "start": { | 5416 | "start": { |
5238 | "column": 27, | 5417 | "column": 27, |
5239 | "line": 186 | 5418 | "line": 195 |
5240 | } | 5419 | } |
5241 | } | 5420 | } |
5242 | ], | 5421 | ], |
@@ -6181,39 +6360,39 @@ | |||
6181 | "defaultMessage": "!!!Franz Todos are available to premium users now!", | 6360 | "defaultMessage": "!!!Franz Todos are available to premium users now!", |
6182 | "end": { | 6361 | "end": { |
6183 | "column": 3, | 6362 | "column": 3, |
6184 | "line": 34 | 6363 | "line": 36 |
6185 | }, | 6364 | }, |
6186 | "file": "src/features/todos/components/TodosWebview.js", | 6365 | "file": "src/features/todos/components/TodosWebview.js", |
6187 | "id": "feature.todos.premium.info", | 6366 | "id": "feature.todos.premium.info", |
6188 | "start": { | 6367 | "start": { |
6189 | "column": 15, | 6368 | "column": 15, |
6190 | "line": 31 | 6369 | "line": 33 |
6191 | } | 6370 | } |
6192 | }, | 6371 | }, |
6193 | { | 6372 | { |
6194 | "defaultMessage": "!!!Upgrade Account", | 6373 | "defaultMessage": "!!!Upgrade Account", |
6195 | "end": { | 6374 | "end": { |
6196 | "column": 3, | 6375 | "column": 3, |
6197 | "line": 38 | 6376 | "line": 40 |
6198 | }, | 6377 | }, |
6199 | "file": "src/features/todos/components/TodosWebview.js", | 6378 | "file": "src/features/todos/components/TodosWebview.js", |
6200 | "id": "feature.todos.premium.upgrade", | 6379 | "id": "feature.todos.premium.upgrade", |
6201 | "start": { | 6380 | "start": { |
6202 | "column": 14, | 6381 | "column": 14, |
6203 | "line": 35 | 6382 | "line": 37 |
6204 | } | 6383 | } |
6205 | }, | 6384 | }, |
6206 | { | 6385 | { |
6207 | "defaultMessage": "!!!Everyone else will have to wait a little longer.", | 6386 | "defaultMessage": "!!!Everyone else will have to wait a little longer.", |
6208 | "end": { | 6387 | "end": { |
6209 | "column": 3, | 6388 | "column": 3, |
6210 | "line": 42 | 6389 | "line": 44 |
6211 | }, | 6390 | }, |
6212 | "file": "src/features/todos/components/TodosWebview.js", | 6391 | "file": "src/features/todos/components/TodosWebview.js", |
6213 | "id": "feature.todos.premium.rollout", | 6392 | "id": "feature.todos.premium.rollout", |
6214 | "start": { | 6393 | "start": { |
6215 | "column": 15, | 6394 | "column": 15, |
6216 | "line": 39 | 6395 | "line": 41 |
6217 | } | 6396 | } |
6218 | } | 6397 | } |
6219 | ], | 6398 | ], |
@@ -7522,549 +7701,562 @@ | |||
7522 | } | 7701 | } |
7523 | }, | 7702 | }, |
7524 | { | 7703 | { |
7525 | "defaultMessage": "!!!Minimize", | 7704 | "defaultMessage": "!!!Reload ToDos", |
7526 | "end": { | 7705 | "end": { |
7527 | "column": 3, | 7706 | "column": 3, |
7528 | "line": 145 | 7707 | "line": 145 |
7529 | }, | 7708 | }, |
7530 | "file": "src/lib/Menu.js", | 7709 | "file": "src/lib/Menu.js", |
7710 | "id": "menu.view.reloadTodos", | ||
7711 | "start": { | ||
7712 | "column": 15, | ||
7713 | "line": 142 | ||
7714 | } | ||
7715 | }, | ||
7716 | { | ||
7717 | "defaultMessage": "!!!Minimize", | ||
7718 | "end": { | ||
7719 | "column": 3, | ||
7720 | "line": 149 | ||
7721 | }, | ||
7722 | "file": "src/lib/Menu.js", | ||
7531 | "id": "menu.window.minimize", | 7723 | "id": "menu.window.minimize", |
7532 | "start": { | 7724 | "start": { |
7533 | "column": 12, | 7725 | "column": 12, |
7534 | "line": 142 | 7726 | "line": 146 |
7535 | } | 7727 | } |
7536 | }, | 7728 | }, |
7537 | { | 7729 | { |
7538 | "defaultMessage": "!!!Close", | 7730 | "defaultMessage": "!!!Close", |
7539 | "end": { | 7731 | "end": { |
7540 | "column": 3, | 7732 | "column": 3, |
7541 | "line": 149 | 7733 | "line": 153 |
7542 | }, | 7734 | }, |
7543 | "file": "src/lib/Menu.js", | 7735 | "file": "src/lib/Menu.js", |
7544 | "id": "menu.window.close", | 7736 | "id": "menu.window.close", |
7545 | "start": { | 7737 | "start": { |
7546 | "column": 9, | 7738 | "column": 9, |
7547 | "line": 146 | 7739 | "line": 150 |
7548 | } | 7740 | } |
7549 | }, | 7741 | }, |
7550 | { | 7742 | { |
7551 | "defaultMessage": "!!!Learn More", | 7743 | "defaultMessage": "!!!Learn More", |
7552 | "end": { | 7744 | "end": { |
7553 | "column": 3, | 7745 | "column": 3, |
7554 | "line": 153 | 7746 | "line": 157 |
7555 | }, | 7747 | }, |
7556 | "file": "src/lib/Menu.js", | 7748 | "file": "src/lib/Menu.js", |
7557 | "id": "menu.help.learnMore", | 7749 | "id": "menu.help.learnMore", |
7558 | "start": { | 7750 | "start": { |
7559 | "column": 13, | 7751 | "column": 13, |
7560 | "line": 150 | 7752 | "line": 154 |
7561 | } | 7753 | } |
7562 | }, | 7754 | }, |
7563 | { | 7755 | { |
7564 | "defaultMessage": "!!!Changelog", | 7756 | "defaultMessage": "!!!Changelog", |
7565 | "end": { | 7757 | "end": { |
7566 | "column": 3, | 7758 | "column": 3, |
7567 | "line": 157 | 7759 | "line": 161 |
7568 | }, | 7760 | }, |
7569 | "file": "src/lib/Menu.js", | 7761 | "file": "src/lib/Menu.js", |
7570 | "id": "menu.help.changelog", | 7762 | "id": "menu.help.changelog", |
7571 | "start": { | 7763 | "start": { |
7572 | "column": 13, | 7764 | "column": 13, |
7573 | "line": 154 | 7765 | "line": 158 |
7574 | } | 7766 | } |
7575 | }, | 7767 | }, |
7576 | { | 7768 | { |
7577 | "defaultMessage": "!!!Support", | 7769 | "defaultMessage": "!!!Support", |
7578 | "end": { | 7770 | "end": { |
7579 | "column": 3, | 7771 | "column": 3, |
7580 | "line": 161 | 7772 | "line": 165 |
7581 | }, | 7773 | }, |
7582 | "file": "src/lib/Menu.js", | 7774 | "file": "src/lib/Menu.js", |
7583 | "id": "menu.help.support", | 7775 | "id": "menu.help.support", |
7584 | "start": { | 7776 | "start": { |
7585 | "column": 11, | 7777 | "column": 11, |
7586 | "line": 158 | 7778 | "line": 162 |
7587 | } | 7779 | } |
7588 | }, | 7780 | }, |
7589 | { | 7781 | { |
7590 | "defaultMessage": "!!!Copy Debug Information", | 7782 | "defaultMessage": "!!!Copy Debug Information", |
7591 | "end": { | 7783 | "end": { |
7592 | "column": 3, | 7784 | "column": 3, |
7593 | "line": 165 | 7785 | "line": 169 |
7594 | }, | 7786 | }, |
7595 | "file": "src/lib/Menu.js", | 7787 | "file": "src/lib/Menu.js", |
7596 | "id": "menu.help.debugInfo", | 7788 | "id": "menu.help.debugInfo", |
7597 | "start": { | 7789 | "start": { |
7598 | "column": 13, | 7790 | "column": 13, |
7599 | "line": 162 | 7791 | "line": 166 |
7600 | } | 7792 | } |
7601 | }, | 7793 | }, |
7602 | { | 7794 | { |
7603 | "defaultMessage": "!!!Publish Debug Information", | 7795 | "defaultMessage": "!!!Publish Debug Information", |
7604 | "end": { | 7796 | "end": { |
7605 | "column": 3, | 7797 | "column": 3, |
7606 | "line": 169 | 7798 | "line": 173 |
7607 | }, | 7799 | }, |
7608 | "file": "src/lib/Menu.js", | 7800 | "file": "src/lib/Menu.js", |
7609 | "id": "menu.help.publishDebugInfo", | 7801 | "id": "menu.help.publishDebugInfo", |
7610 | "start": { | 7802 | "start": { |
7611 | "column": 20, | 7803 | "column": 20, |
7612 | "line": 166 | 7804 | "line": 170 |
7613 | } | 7805 | } |
7614 | }, | 7806 | }, |
7615 | { | 7807 | { |
7616 | "defaultMessage": "!!!Ferdi Debug Information", | 7808 | "defaultMessage": "!!!Ferdi Debug Information", |
7617 | "end": { | 7809 | "end": { |
7618 | "column": 3, | 7810 | "column": 3, |
7619 | "line": 173 | 7811 | "line": 177 |
7620 | }, | 7812 | }, |
7621 | "file": "src/lib/Menu.js", | 7813 | "file": "src/lib/Menu.js", |
7622 | "id": "menu.help.debugInfoCopiedHeadline", | 7814 | "id": "menu.help.debugInfoCopiedHeadline", |
7623 | "start": { | 7815 | "start": { |
7624 | "column": 27, | 7816 | "column": 27, |
7625 | "line": 170 | 7817 | "line": 174 |
7626 | } | 7818 | } |
7627 | }, | 7819 | }, |
7628 | { | 7820 | { |
7629 | "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", | 7821 | "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", |
7630 | "end": { | 7822 | "end": { |
7631 | "column": 3, | 7823 | "column": 3, |
7632 | "line": 177 | 7824 | "line": 181 |
7633 | }, | 7825 | }, |
7634 | "file": "src/lib/Menu.js", | 7826 | "file": "src/lib/Menu.js", |
7635 | "id": "menu.help.debugInfoCopiedBody", | 7827 | "id": "menu.help.debugInfoCopiedBody", |
7636 | "start": { | 7828 | "start": { |
7637 | "column": 23, | 7829 | "column": 23, |
7638 | "line": 174 | 7830 | "line": 178 |
7639 | } | 7831 | } |
7640 | }, | 7832 | }, |
7641 | { | 7833 | { |
7642 | "defaultMessage": "!!!Unlock with Touch ID", | 7834 | "defaultMessage": "!!!Unlock with Touch ID", |
7643 | "end": { | 7835 | "end": { |
7644 | "column": 3, | 7836 | "column": 3, |
7645 | "line": 181 | 7837 | "line": 185 |
7646 | }, | 7838 | }, |
7647 | "file": "src/lib/Menu.js", | 7839 | "file": "src/lib/Menu.js", |
7648 | "id": "locked.touchId", | 7840 | "id": "locked.touchId", |
7649 | "start": { | 7841 | "start": { |
7650 | "column": 11, | 7842 | "column": 11, |
7651 | "line": 178 | 7843 | "line": 182 |
7652 | } | 7844 | } |
7653 | }, | 7845 | }, |
7654 | { | 7846 | { |
7655 | "defaultMessage": "!!!unlock via Touch ID", | 7847 | "defaultMessage": "!!!unlock via Touch ID", |
7656 | "end": { | 7848 | "end": { |
7657 | "column": 3, | 7849 | "column": 3, |
7658 | "line": 185 | 7850 | "line": 189 |
7659 | }, | 7851 | }, |
7660 | "file": "src/lib/Menu.js", | 7852 | "file": "src/lib/Menu.js", |
7661 | "id": "locked.touchIdPrompt", | 7853 | "id": "locked.touchIdPrompt", |
7662 | "start": { | 7854 | "start": { |
7663 | "column": 17, | 7855 | "column": 17, |
7664 | "line": 182 | 7856 | "line": 186 |
7665 | } | 7857 | } |
7666 | }, | 7858 | }, |
7667 | { | 7859 | { |
7668 | "defaultMessage": "!!!Terms of Service", | 7860 | "defaultMessage": "!!!Terms of Service", |
7669 | "end": { | 7861 | "end": { |
7670 | "column": 3, | 7862 | "column": 3, |
7671 | "line": 189 | 7863 | "line": 193 |
7672 | }, | 7864 | }, |
7673 | "file": "src/lib/Menu.js", | 7865 | "file": "src/lib/Menu.js", |
7674 | "id": "menu.help.tos", | 7866 | "id": "menu.help.tos", |
7675 | "start": { | 7867 | "start": { |
7676 | "column": 7, | 7868 | "column": 7, |
7677 | "line": 186 | 7869 | "line": 190 |
7678 | } | 7870 | } |
7679 | }, | 7871 | }, |
7680 | { | 7872 | { |
7681 | "defaultMessage": "!!!Privacy Statement", | 7873 | "defaultMessage": "!!!Privacy Statement", |
7682 | "end": { | 7874 | "end": { |
7683 | "column": 3, | 7875 | "column": 3, |
7684 | "line": 193 | 7876 | "line": 197 |
7685 | }, | 7877 | }, |
7686 | "file": "src/lib/Menu.js", | 7878 | "file": "src/lib/Menu.js", |
7687 | "id": "menu.help.privacy", | 7879 | "id": "menu.help.privacy", |
7688 | "start": { | 7880 | "start": { |
7689 | "column": 11, | 7881 | "column": 11, |
7690 | "line": 190 | 7882 | "line": 194 |
7691 | } | 7883 | } |
7692 | }, | 7884 | }, |
7693 | { | 7885 | { |
7694 | "defaultMessage": "!!!File", | 7886 | "defaultMessage": "!!!File", |
7695 | "end": { | 7887 | "end": { |
7696 | "column": 3, | 7888 | "column": 3, |
7697 | "line": 197 | 7889 | "line": 201 |
7698 | }, | 7890 | }, |
7699 | "file": "src/lib/Menu.js", | 7891 | "file": "src/lib/Menu.js", |
7700 | "id": "menu.file", | 7892 | "id": "menu.file", |
7701 | "start": { | 7893 | "start": { |
7702 | "column": 8, | 7894 | "column": 8, |
7703 | "line": 194 | 7895 | "line": 198 |
7704 | } | 7896 | } |
7705 | }, | 7897 | }, |
7706 | { | 7898 | { |
7707 | "defaultMessage": "!!!View", | 7899 | "defaultMessage": "!!!View", |
7708 | "end": { | 7900 | "end": { |
7709 | "column": 3, | 7901 | "column": 3, |
7710 | "line": 201 | 7902 | "line": 205 |
7711 | }, | 7903 | }, |
7712 | "file": "src/lib/Menu.js", | 7904 | "file": "src/lib/Menu.js", |
7713 | "id": "menu.view", | 7905 | "id": "menu.view", |
7714 | "start": { | 7906 | "start": { |
7715 | "column": 8, | 7907 | "column": 8, |
7716 | "line": 198 | 7908 | "line": 202 |
7717 | } | 7909 | } |
7718 | }, | 7910 | }, |
7719 | { | 7911 | { |
7720 | "defaultMessage": "!!!Services", | 7912 | "defaultMessage": "!!!Services", |
7721 | "end": { | 7913 | "end": { |
7722 | "column": 3, | 7914 | "column": 3, |
7723 | "line": 205 | 7915 | "line": 209 |
7724 | }, | 7916 | }, |
7725 | "file": "src/lib/Menu.js", | 7917 | "file": "src/lib/Menu.js", |
7726 | "id": "menu.services", | 7918 | "id": "menu.services", |
7727 | "start": { | 7919 | "start": { |
7728 | "column": 12, | 7920 | "column": 12, |
7729 | "line": 202 | 7921 | "line": 206 |
7730 | } | 7922 | } |
7731 | }, | 7923 | }, |
7732 | { | 7924 | { |
7733 | "defaultMessage": "!!!Window", | 7925 | "defaultMessage": "!!!Window", |
7734 | "end": { | 7926 | "end": { |
7735 | "column": 3, | 7927 | "column": 3, |
7736 | "line": 209 | 7928 | "line": 213 |
7737 | }, | 7929 | }, |
7738 | "file": "src/lib/Menu.js", | 7930 | "file": "src/lib/Menu.js", |
7739 | "id": "menu.window", | 7931 | "id": "menu.window", |
7740 | "start": { | 7932 | "start": { |
7741 | "column": 10, | 7933 | "column": 10, |
7742 | "line": 206 | 7934 | "line": 210 |
7743 | } | 7935 | } |
7744 | }, | 7936 | }, |
7745 | { | 7937 | { |
7746 | "defaultMessage": "!!!Help", | 7938 | "defaultMessage": "!!!Help", |
7747 | "end": { | 7939 | "end": { |
7748 | "column": 3, | 7940 | "column": 3, |
7749 | "line": 213 | 7941 | "line": 217 |
7750 | }, | 7942 | }, |
7751 | "file": "src/lib/Menu.js", | 7943 | "file": "src/lib/Menu.js", |
7752 | "id": "menu.help", | 7944 | "id": "menu.help", |
7753 | "start": { | 7945 | "start": { |
7754 | "column": 8, | 7946 | "column": 8, |
7755 | "line": 210 | 7947 | "line": 214 |
7756 | } | 7948 | } |
7757 | }, | 7949 | }, |
7758 | { | 7950 | { |
7759 | "defaultMessage": "!!!About Ferdi", | 7951 | "defaultMessage": "!!!About Ferdi", |
7760 | "end": { | 7952 | "end": { |
7761 | "column": 3, | 7953 | "column": 3, |
7762 | "line": 217 | 7954 | "line": 221 |
7763 | }, | 7955 | }, |
7764 | "file": "src/lib/Menu.js", | 7956 | "file": "src/lib/Menu.js", |
7765 | "id": "menu.app.about", | 7957 | "id": "menu.app.about", |
7766 | "start": { | 7958 | "start": { |
7767 | "column": 9, | 7959 | "column": 9, |
7768 | "line": 214 | 7960 | "line": 218 |
7769 | } | 7961 | } |
7770 | }, | 7962 | }, |
7771 | { | 7963 | { |
7772 | "defaultMessage": "!!!What's new?", | 7964 | "defaultMessage": "!!!What's new?", |
7773 | "end": { | 7965 | "end": { |
7774 | "column": 3, | 7966 | "column": 3, |
7775 | "line": 221 | 7967 | "line": 225 |
7776 | }, | 7968 | }, |
7777 | "file": "src/lib/Menu.js", | 7969 | "file": "src/lib/Menu.js", |
7778 | "id": "menu.app.announcement", | 7970 | "id": "menu.app.announcement", |
7779 | "start": { | 7971 | "start": { |
7780 | "column": 16, | 7972 | "column": 16, |
7781 | "line": 218 | 7973 | "line": 222 |
7782 | } | 7974 | } |
7783 | }, | 7975 | }, |
7784 | { | 7976 | { |
7785 | "defaultMessage": "!!!Settings", | 7977 | "defaultMessage": "!!!Settings", |
7786 | "end": { | 7978 | "end": { |
7787 | "column": 3, | 7979 | "column": 3, |
7788 | "line": 225 | 7980 | "line": 229 |
7789 | }, | 7981 | }, |
7790 | "file": "src/lib/Menu.js", | 7982 | "file": "src/lib/Menu.js", |
7791 | "id": "menu.app.settings", | 7983 | "id": "menu.app.settings", |
7792 | "start": { | 7984 | "start": { |
7793 | "column": 12, | 7985 | "column": 12, |
7794 | "line": 222 | 7986 | "line": 226 |
7795 | } | 7987 | } |
7796 | }, | 7988 | }, |
7797 | { | 7989 | { |
7798 | "defaultMessage": "!!!Check for updates", | 7990 | "defaultMessage": "!!!Check for updates", |
7799 | "end": { | 7991 | "end": { |
7800 | "column": 3, | 7992 | "column": 3, |
7801 | "line": 229 | 7993 | "line": 233 |
7802 | }, | 7994 | }, |
7803 | "file": "src/lib/Menu.js", | 7995 | "file": "src/lib/Menu.js", |
7804 | "id": "menu.app.checkForUpdates", | 7996 | "id": "menu.app.checkForUpdates", |
7805 | "start": { | 7997 | "start": { |
7806 | "column": 19, | 7998 | "column": 19, |
7807 | "line": 226 | 7999 | "line": 230 |
7808 | } | 8000 | } |
7809 | }, | 8001 | }, |
7810 | { | 8002 | { |
7811 | "defaultMessage": "!!!Hide", | 8003 | "defaultMessage": "!!!Hide", |
7812 | "end": { | 8004 | "end": { |
7813 | "column": 3, | 8005 | "column": 3, |
7814 | "line": 233 | 8006 | "line": 237 |
7815 | }, | 8007 | }, |
7816 | "file": "src/lib/Menu.js", | 8008 | "file": "src/lib/Menu.js", |
7817 | "id": "menu.app.hide", | 8009 | "id": "menu.app.hide", |
7818 | "start": { | 8010 | "start": { |
7819 | "column": 8, | 8011 | "column": 8, |
7820 | "line": 230 | 8012 | "line": 234 |
7821 | } | 8013 | } |
7822 | }, | 8014 | }, |
7823 | { | 8015 | { |
7824 | "defaultMessage": "!!!Hide Others", | 8016 | "defaultMessage": "!!!Hide Others", |
7825 | "end": { | 8017 | "end": { |
7826 | "column": 3, | 8018 | "column": 3, |
7827 | "line": 237 | 8019 | "line": 241 |
7828 | }, | 8020 | }, |
7829 | "file": "src/lib/Menu.js", | 8021 | "file": "src/lib/Menu.js", |
7830 | "id": "menu.app.hideOthers", | 8022 | "id": "menu.app.hideOthers", |
7831 | "start": { | 8023 | "start": { |
7832 | "column": 14, | 8024 | "column": 14, |
7833 | "line": 234 | 8025 | "line": 238 |
7834 | } | 8026 | } |
7835 | }, | 8027 | }, |
7836 | { | 8028 | { |
7837 | "defaultMessage": "!!!Unhide", | 8029 | "defaultMessage": "!!!Unhide", |
7838 | "end": { | 8030 | "end": { |
7839 | "column": 3, | 8031 | "column": 3, |
7840 | "line": 241 | 8032 | "line": 245 |
7841 | }, | 8033 | }, |
7842 | "file": "src/lib/Menu.js", | 8034 | "file": "src/lib/Menu.js", |
7843 | "id": "menu.app.unhide", | 8035 | "id": "menu.app.unhide", |
7844 | "start": { | 8036 | "start": { |
7845 | "column": 10, | 8037 | "column": 10, |
7846 | "line": 238 | 8038 | "line": 242 |
7847 | } | 8039 | } |
7848 | }, | 8040 | }, |
7849 | { | 8041 | { |
7850 | "defaultMessage": "!!!Auto-hide menu bar", | 8042 | "defaultMessage": "!!!Auto-hide menu bar", |
7851 | "end": { | 8043 | "end": { |
7852 | "column": 3, | 8044 | "column": 3, |
7853 | "line": 245 | 8045 | "line": 249 |
7854 | }, | 8046 | }, |
7855 | "file": "src/lib/Menu.js", | 8047 | "file": "src/lib/Menu.js", |
7856 | "id": "menu.app.autohideMenuBar", | 8048 | "id": "menu.app.autohideMenuBar", |
7857 | "start": { | 8049 | "start": { |
7858 | "column": 19, | 8050 | "column": 19, |
7859 | "line": 242 | 8051 | "line": 246 |
7860 | } | 8052 | } |
7861 | }, | 8053 | }, |
7862 | { | 8054 | { |
7863 | "defaultMessage": "!!!Quit", | 8055 | "defaultMessage": "!!!Quit", |
7864 | "end": { | 8056 | "end": { |
7865 | "column": 3, | 8057 | "column": 3, |
7866 | "line": 249 | 8058 | "line": 253 |
7867 | }, | 8059 | }, |
7868 | "file": "src/lib/Menu.js", | 8060 | "file": "src/lib/Menu.js", |
7869 | "id": "menu.app.quit", | 8061 | "id": "menu.app.quit", |
7870 | "start": { | 8062 | "start": { |
7871 | "column": 8, | 8063 | "column": 8, |
7872 | "line": 246 | 8064 | "line": 250 |
7873 | } | 8065 | } |
7874 | }, | 8066 | }, |
7875 | { | 8067 | { |
7876 | "defaultMessage": "!!!Add New Service...", | 8068 | "defaultMessage": "!!!Add New Service...", |
7877 | "end": { | 8069 | "end": { |
7878 | "column": 3, | 8070 | "column": 3, |
7879 | "line": 253 | 8071 | "line": 257 |
7880 | }, | 8072 | }, |
7881 | "file": "src/lib/Menu.js", | 8073 | "file": "src/lib/Menu.js", |
7882 | "id": "menu.services.addNewService", | 8074 | "id": "menu.services.addNewService", |
7883 | "start": { | 8075 | "start": { |
7884 | "column": 17, | 8076 | "column": 17, |
7885 | "line": 250 | 8077 | "line": 254 |
7886 | } | 8078 | } |
7887 | }, | 8079 | }, |
7888 | { | 8080 | { |
7889 | "defaultMessage": "!!!Add New Workspace...", | 8081 | "defaultMessage": "!!!Add New Workspace...", |
7890 | "end": { | 8082 | "end": { |
7891 | "column": 3, | 8083 | "column": 3, |
7892 | "line": 257 | 8084 | "line": 261 |
7893 | }, | 8085 | }, |
7894 | "file": "src/lib/Menu.js", | 8086 | "file": "src/lib/Menu.js", |
7895 | "id": "menu.workspaces.addNewWorkspace", | 8087 | "id": "menu.workspaces.addNewWorkspace", |
7896 | "start": { | 8088 | "start": { |
7897 | "column": 19, | 8089 | "column": 19, |
7898 | "line": 254 | 8090 | "line": 258 |
7899 | } | 8091 | } |
7900 | }, | 8092 | }, |
7901 | { | 8093 | { |
7902 | "defaultMessage": "!!!Open workspace drawer", | 8094 | "defaultMessage": "!!!Open workspace drawer", |
7903 | "end": { | 8095 | "end": { |
7904 | "column": 3, | 8096 | "column": 3, |
7905 | "line": 261 | 8097 | "line": 265 |
7906 | }, | 8098 | }, |
7907 | "file": "src/lib/Menu.js", | 8099 | "file": "src/lib/Menu.js", |
7908 | "id": "menu.workspaces.openWorkspaceDrawer", | 8100 | "id": "menu.workspaces.openWorkspaceDrawer", |
7909 | "start": { | 8101 | "start": { |
7910 | "column": 23, | 8102 | "column": 23, |
7911 | "line": 258 | 8103 | "line": 262 |
7912 | } | 8104 | } |
7913 | }, | 8105 | }, |
7914 | { | 8106 | { |
7915 | "defaultMessage": "!!!Close workspace drawer", | 8107 | "defaultMessage": "!!!Close workspace drawer", |
7916 | "end": { | 8108 | "end": { |
7917 | "column": 3, | 8109 | "column": 3, |
7918 | "line": 265 | 8110 | "line": 269 |
7919 | }, | 8111 | }, |
7920 | "file": "src/lib/Menu.js", | 8112 | "file": "src/lib/Menu.js", |
7921 | "id": "menu.workspaces.closeWorkspaceDrawer", | 8113 | "id": "menu.workspaces.closeWorkspaceDrawer", |
7922 | "start": { | 8114 | "start": { |
7923 | "column": 24, | 8115 | "column": 24, |
7924 | "line": 262 | 8116 | "line": 266 |
7925 | } | 8117 | } |
7926 | }, | 8118 | }, |
7927 | { | 8119 | { |
7928 | "defaultMessage": "!!!Activate next service...", | 8120 | "defaultMessage": "!!!Activate next service...", |
7929 | "end": { | 8121 | "end": { |
7930 | "column": 3, | 8122 | "column": 3, |
7931 | "line": 269 | 8123 | "line": 273 |
7932 | }, | 8124 | }, |
7933 | "file": "src/lib/Menu.js", | 8125 | "file": "src/lib/Menu.js", |
7934 | "id": "menu.services.setNextServiceActive", | 8126 | "id": "menu.services.setNextServiceActive", |
7935 | "start": { | 8127 | "start": { |
7936 | "column": 23, | 8128 | "column": 23, |
7937 | "line": 266 | 8129 | "line": 270 |
7938 | } | 8130 | } |
7939 | }, | 8131 | }, |
7940 | { | 8132 | { |
7941 | "defaultMessage": "!!!Activate previous service...", | 8133 | "defaultMessage": "!!!Activate previous service...", |
7942 | "end": { | 8134 | "end": { |
7943 | "column": 3, | 8135 | "column": 3, |
7944 | "line": 273 | 8136 | "line": 277 |
7945 | }, | 8137 | }, |
7946 | "file": "src/lib/Menu.js", | 8138 | "file": "src/lib/Menu.js", |
7947 | "id": "menu.services.activatePreviousService", | 8139 | "id": "menu.services.activatePreviousService", |
7948 | "start": { | 8140 | "start": { |
7949 | "column": 27, | 8141 | "column": 27, |
7950 | "line": 270 | 8142 | "line": 274 |
7951 | } | 8143 | } |
7952 | }, | 8144 | }, |
7953 | { | 8145 | { |
7954 | "defaultMessage": "!!!Disable notifications & audio", | 8146 | "defaultMessage": "!!!Disable notifications & audio", |
7955 | "end": { | 8147 | "end": { |
7956 | "column": 3, | 8148 | "column": 3, |
7957 | "line": 277 | 8149 | "line": 281 |
7958 | }, | 8150 | }, |
7959 | "file": "src/lib/Menu.js", | 8151 | "file": "src/lib/Menu.js", |
7960 | "id": "sidebar.muteApp", | 8152 | "id": "sidebar.muteApp", |
7961 | "start": { | 8153 | "start": { |
7962 | "column": 11, | 8154 | "column": 11, |
7963 | "line": 274 | 8155 | "line": 278 |
7964 | } | 8156 | } |
7965 | }, | 8157 | }, |
7966 | { | 8158 | { |
7967 | "defaultMessage": "!!!Enable notifications & audio", | 8159 | "defaultMessage": "!!!Enable notifications & audio", |
7968 | "end": { | 8160 | "end": { |
7969 | "column": 3, | 8161 | "column": 3, |
7970 | "line": 281 | 8162 | "line": 285 |
7971 | }, | 8163 | }, |
7972 | "file": "src/lib/Menu.js", | 8164 | "file": "src/lib/Menu.js", |
7973 | "id": "sidebar.unmuteApp", | 8165 | "id": "sidebar.unmuteApp", |
7974 | "start": { | 8166 | "start": { |
7975 | "column": 13, | 8167 | "column": 13, |
7976 | "line": 278 | 8168 | "line": 282 |
7977 | } | 8169 | } |
7978 | }, | 8170 | }, |
7979 | { | 8171 | { |
7980 | "defaultMessage": "!!!Workspaces", | 8172 | "defaultMessage": "!!!Workspaces", |
7981 | "end": { | 8173 | "end": { |
7982 | "column": 3, | 8174 | "column": 3, |
7983 | "line": 285 | 8175 | "line": 289 |
7984 | }, | 8176 | }, |
7985 | "file": "src/lib/Menu.js", | 8177 | "file": "src/lib/Menu.js", |
7986 | "id": "menu.workspaces", | 8178 | "id": "menu.workspaces", |
7987 | "start": { | 8179 | "start": { |
7988 | "column": 14, | 8180 | "column": 14, |
7989 | "line": 282 | 8181 | "line": 286 |
7990 | } | 8182 | } |
7991 | }, | 8183 | }, |
7992 | { | 8184 | { |
7993 | "defaultMessage": "!!!Default", | 8185 | "defaultMessage": "!!!Default", |
7994 | "end": { | 8186 | "end": { |
7995 | "column": 3, | 8187 | "column": 3, |
7996 | "line": 289 | 8188 | "line": 293 |
7997 | }, | 8189 | }, |
7998 | "file": "src/lib/Menu.js", | 8190 | "file": "src/lib/Menu.js", |
7999 | "id": "menu.workspaces.defaultWorkspace", | 8191 | "id": "menu.workspaces.defaultWorkspace", |
8000 | "start": { | 8192 | "start": { |
8001 | "column": 20, | 8193 | "column": 20, |
8002 | "line": 286 | 8194 | "line": 290 |
8003 | } | 8195 | } |
8004 | }, | 8196 | }, |
8005 | { | 8197 | { |
8006 | "defaultMessage": "!!!Todos", | 8198 | "defaultMessage": "!!!Todos", |
8007 | "end": { | 8199 | "end": { |
8008 | "column": 3, | 8200 | "column": 3, |
8009 | "line": 293 | 8201 | "line": 297 |
8010 | }, | 8202 | }, |
8011 | "file": "src/lib/Menu.js", | 8203 | "file": "src/lib/Menu.js", |
8012 | "id": "menu.todos", | 8204 | "id": "menu.todos", |
8013 | "start": { | 8205 | "start": { |
8014 | "column": 9, | 8206 | "column": 9, |
8015 | "line": 290 | 8207 | "line": 294 |
8016 | } | 8208 | } |
8017 | }, | 8209 | }, |
8018 | { | 8210 | { |
8019 | "defaultMessage": "!!!Open Todos drawer", | 8211 | "defaultMessage": "!!!Open Todos drawer", |
8020 | "end": { | 8212 | "end": { |
8021 | "column": 3, | 8213 | "column": 3, |
8022 | "line": 297 | 8214 | "line": 301 |
8023 | }, | 8215 | }, |
8024 | "file": "src/lib/Menu.js", | 8216 | "file": "src/lib/Menu.js", |
8025 | "id": "menu.Todoss.openTodosDrawer", | 8217 | "id": "menu.Todoss.openTodosDrawer", |
8026 | "start": { | 8218 | "start": { |
8027 | "column": 19, | 8219 | "column": 19, |
8028 | "line": 294 | 8220 | "line": 298 |
8029 | } | 8221 | } |
8030 | }, | 8222 | }, |
8031 | { | 8223 | { |
8032 | "defaultMessage": "!!!Close Todos drawer", | 8224 | "defaultMessage": "!!!Close Todos drawer", |
8033 | "end": { | 8225 | "end": { |
8034 | "column": 3, | 8226 | "column": 3, |
8035 | "line": 301 | 8227 | "line": 305 |
8036 | }, | 8228 | }, |
8037 | "file": "src/lib/Menu.js", | 8229 | "file": "src/lib/Menu.js", |
8038 | "id": "menu.Todoss.closeTodosDrawer", | 8230 | "id": "menu.Todoss.closeTodosDrawer", |
8039 | "start": { | 8231 | "start": { |
8040 | "column": 20, | 8232 | "column": 20, |
8041 | "line": 298 | 8233 | "line": 302 |
8042 | } | 8234 | } |
8043 | }, | 8235 | }, |
8044 | { | 8236 | { |
8045 | "defaultMessage": "!!!Enable Todos", | 8237 | "defaultMessage": "!!!Enable Todos", |
8046 | "end": { | 8238 | "end": { |
8047 | "column": 3, | 8239 | "column": 3, |
8048 | "line": 305 | 8240 | "line": 309 |
8049 | }, | 8241 | }, |
8050 | "file": "src/lib/Menu.js", | 8242 | "file": "src/lib/Menu.js", |
8051 | "id": "menu.todos.enableTodos", | 8243 | "id": "menu.todos.enableTodos", |
8052 | "start": { | 8244 | "start": { |
8053 | "column": 15, | 8245 | "column": 15, |
8054 | "line": 302 | 8246 | "line": 306 |
8055 | } | 8247 | } |
8056 | }, | 8248 | }, |
8057 | { | 8249 | { |
8058 | "defaultMessage": "!!!Home", | 8250 | "defaultMessage": "!!!Home", |
8059 | "end": { | 8251 | "end": { |
8060 | "column": 3, | 8252 | "column": 3, |
8061 | "line": 309 | 8253 | "line": 313 |
8062 | }, | 8254 | }, |
8063 | "file": "src/lib/Menu.js", | 8255 | "file": "src/lib/Menu.js", |
8064 | "id": "menu.services.goHome", | 8256 | "id": "menu.services.goHome", |
8065 | "start": { | 8257 | "start": { |
8066 | "column": 17, | 8258 | "column": 17, |
8067 | "line": 306 | 8259 | "line": 310 |
8068 | } | 8260 | } |
8069 | } | 8261 | } |
8070 | ], | 8262 | ], |
diff --git a/src/i18n/locales/en-US.json b/src/i18n/locales/en-US.json index 9e1d8f86e..a2ed91b79 100644 --- a/src/i18n/locales/en-US.json +++ b/src/i18n/locales/en-US.json | |||
@@ -152,7 +152,7 @@ | |||
152 | "menu.help.tos": "Terms of Service", | 152 | "menu.help.tos": "Terms of Service", |
153 | "menu.services": "Services", | 153 | "menu.services": "Services", |
154 | "menu.services.activatePreviousService": "Activate previous service", | 154 | "menu.services.activatePreviousService": "Activate previous service", |
155 | "menu.services.addNewService": "Add New Service...", | 155 | "menu.services.addNewService": "Add New Service", |
156 | "menu.services.goHome": "Home", | 156 | "menu.services.goHome": "Home", |
157 | "menu.services.setNextServiceActive": "Activate next service", | 157 | "menu.services.setNextServiceActive": "Activate next service", |
158 | "menu.todos": "Todos", | 158 | "menu.todos": "Todos", |
@@ -166,6 +166,7 @@ | |||
166 | "menu.view.openQuickSwitch": "Open Quick Switch", | 166 | "menu.view.openQuickSwitch": "Open Quick Switch", |
167 | "menu.view.reloadFranz": "Reload Ferdi", | 167 | "menu.view.reloadFranz": "Reload Ferdi", |
168 | "menu.view.reloadService": "Reload Service", | 168 | "menu.view.reloadService": "Reload Service", |
169 | "menu.view.reloadTodos": "Reload ToDos", | ||
169 | "menu.view.resetZoom": "Actual Size", | 170 | "menu.view.resetZoom": "Actual Size", |
170 | "menu.view.toggleDarkMode": "Toggle Dark Mode", | 171 | "menu.view.toggleDarkMode": "Toggle Dark Mode", |
171 | "menu.view.toggleDevTools": "Toggle Developer Tools", | 172 | "menu.view.toggleDevTools": "Toggle Developer Tools", |
@@ -292,6 +293,7 @@ | |||
292 | "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", | 293 | "settings.app.form.autoLaunchOnStart": "Launch Ferdi on start", |
293 | "settings.app.form.automaticUpdates": "Enable updates", | 294 | "settings.app.form.automaticUpdates": "Enable updates", |
294 | "settings.app.form.beta": "Include beta versions", | 295 | "settings.app.form.beta": "Include beta versions", |
296 | "settings.app.form.closeToSystemTray": "Close Ferdi to system tray", | ||
295 | "settings.app.form.customTodoServer": "Custom Todo Server", | 297 | "settings.app.form.customTodoServer": "Custom Todo Server", |
296 | "settings.app.form.darkMode": "Enable dark mode", | 298 | "settings.app.form.darkMode": "Enable dark mode", |
297 | "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", | 299 | "settings.app.form.enableGPUAcceleration": "Enable GPU Acceleration", |
@@ -308,11 +310,10 @@ | |||
308 | "settings.app.form.language": "Language", | 310 | "settings.app.form.language": "Language", |
309 | "settings.app.form.lockPassword": "Password", | 311 | "settings.app.form.lockPassword": "Password", |
310 | "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", | 312 | "settings.app.form.minimizeToSystemTray": "Minimize Ferdi to system tray", |
311 | "settings.app.form.closeToSystemTray": "Close Ferdi to system tray", | ||
312 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", | 313 | "settings.app.form.navigationBarBehaviour": "Navigation bar behaviour", |
314 | "settings.app.form.notifyTaskBarOnMessage": "Notify TaskBar/Dock on new message", | ||
313 | "settings.app.form.predefinedTodoServer": "Todo Server", | 315 | "settings.app.form.predefinedTodoServer": "Todo Server", |
314 | "settings.app.form.privateNotifications": "Don't show message content in notifications", | 316 | "settings.app.form.privateNotifications": "Don't show message content in notifications", |
315 | "settings.app.form.notifyTaskBarOnMessage": "Notify TaskBar/Dock on new message", | ||
316 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", | 317 | "settings.app.form.reloadAfterResume": "Reload Ferdi after system resume", |
317 | "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", | 318 | "settings.app.form.runInBackground": "Keep Ferdi in background when closing the window", |
318 | "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", | 319 | "settings.app.form.scheduledDNDEnabled": "Enable scheduled Do-not-Disturb", |
@@ -387,12 +388,11 @@ | |||
387 | "settings.service.form.darkReaderContrast": "Dark Reader Contrast", | 388 | "settings.service.form.darkReaderContrast": "Dark Reader Contrast", |
388 | "settings.service.form.darkReaderSepia": "Dark Reader Sepia", | 389 | "settings.service.form.darkReaderSepia": "Dark Reader Sepia", |
389 | "settings.service.form.deleteButton": "Delete service", | 390 | "settings.service.form.deleteButton": "Delete service", |
390 | "settings.service.form.disableHibernation": "Disable hibernation", | ||
391 | "settings.service.form.disableHibernationInfo": "You currently have hibernation enabled but you can disable hibernation for individual services using this option.", | ||
392 | "settings.service.form.editServiceHeadline": "Edit {name}", | 391 | "settings.service.form.editServiceHeadline": "Edit {name}", |
393 | "settings.service.form.enableAudio": "Enable audio", | 392 | "settings.service.form.enableAudio": "Enable audio", |
394 | "settings.service.form.enableBadge": "Show unread message badges", | 393 | "settings.service.form.enableBadge": "Show unread message badges", |
395 | "settings.service.form.enableDarkMode": "Enable Dark Mode", | 394 | "settings.service.form.enableDarkMode": "Enable Dark Mode", |
395 | "settings.service.form.enableHibernation": "Enable hibernation", | ||
396 | "settings.service.form.enableNotification": "Enable notifications", | 396 | "settings.service.form.enableNotification": "Enable notifications", |
397 | "settings.service.form.enableService": "Enable service", | 397 | "settings.service.form.enableService": "Enable service", |
398 | "settings.service.form.headlineBadges": "Unread message badges", | 398 | "settings.service.form.headlineBadges": "Unread message badges", |
@@ -404,6 +404,7 @@ | |||
404 | "settings.service.form.iconUpload": "Drop your image, or click here", | 404 | "settings.service.form.iconUpload": "Drop your image, or click here", |
405 | "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | 405 | "settings.service.form.indirectMessageInfo": "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", |
406 | "settings.service.form.indirectMessages": "Show message badge for all new messages", | 406 | "settings.service.form.indirectMessages": "Show message badge for all new messages", |
407 | "settings.service.form.isHibernatedEnabledInfo": "When enabled, a service will be shut down after a period of time to save system resources.", | ||
407 | "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", | 408 | "settings.service.form.isMutedInfo": "When disabled, all notification sounds and audio playback are muted", |
408 | "settings.service.form.name": "Name", | 409 | "settings.service.form.name": "Name", |
409 | "settings.service.form.openDarkmodeCss": "Open darkmode.css", | 410 | "settings.service.form.openDarkmodeCss": "Open darkmode.css", |
@@ -482,6 +483,9 @@ | |||
482 | "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", | 483 | "settings.workspaces.workspaceFeatureHeadline": "Less is More: Introducing Ferdi Workspaces", |
483 | "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", | 484 | "settings.workspaces.workspaceFeatureInfo": "Ferdi Workspaces let you focus on what’s important right now. Set up different sets of services and easily switch between them at any time. You decide which services you need when and where, so we can help you stay on top of your game - or easily switch off from work whenever you want.", |
484 | "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", | 485 | "settings.workspaces.workspacesRequestFailed": "Could not load your workspaces", |
486 | "setupAssistant.headline": "Let's get started", | ||
487 | "setupAssistant.subheadline": "Choose from our most used services and get back on top of your messaging now.", | ||
488 | "setupAssistant.submit.label": "Let's go", | ||
485 | "sidebar.addNewService": "Add new service", | 489 | "sidebar.addNewService": "Add new service", |
486 | "sidebar.closeTodosDrawer": "Close Ferdi Todos", | 490 | "sidebar.closeTodosDrawer": "Close Ferdi Todos", |
487 | "sidebar.closeWorkspaceDrawer": "Close workspace drawer", | 491 | "sidebar.closeWorkspaceDrawer": "Close workspace drawer", |
diff --git a/src/i18n/locales/et.json b/src/i18n/locales/et.json new file mode 100644 index 000000000..e80bb9ff3 --- /dev/null +++ b/src/i18n/locales/et.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Laadi uuesti", | ||
3 | "app.errorHandler.headline" : "Ups! Midagi läks nihu.", | ||
4 | "connectionLostBanner.cta" : "Laadi teenus uuesti", | ||
5 | "connectionLostBanner.informationLink" : "Mis juhtus?", | ||
6 | "connectionLostBanner.message" : "Oh ei! Franz kaotas ühenduse {name} teenusega.", | ||
7 | "feature.announcements.changelog.headline" : "Franz {versiooni} uuendused", | ||
8 | "feature.delayApp.headline" : "Uuendage oma Franz'i tellimust, et ootamine vahele jätta", | ||
9 | "feature.delayApp.text" : "Franz jätkab {seconds} sekundi pärast.", | ||
10 | "feature.delayApp.trial.action" : "Jah, ma tahan Franz Professionali tasuta 14-päevast proovitellimust", | ||
11 | "feature.delayApp.trial.actionShort" : "Aktiveerige tasuta Franz Professionali proovitellimus", | ||
12 | "feature.delayApp.trial.headline" : "Hankige tasuta Franz Professionali 14-päevane proovitellimus ja saate ootamise vahele jätta", | ||
13 | "feature.delayApp.upgrade.action" : "Uuendage Franz'it", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Uuendage oma kontot", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Minge tagasi tasuta tellimusele", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Jää tasuta tellimuse juurde", | ||
17 | "feature.planSelection.cta.trial" : "Alustage minu tasuta 14-päevast proovitellimust", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Valige Personal tellimus", | ||
19 | "feature.planSelection.cta.upgradePro" : "Valige Professional tellimus", | ||
20 | "feature.planSelection.free.text" : "Põhifunktsionaalsus", | ||
21 | "feature.planSelection.fullFeatureList" : "Kõigi tellimuste täielik võrdlus", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Minge tagasi tasuta tellimusele", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Valige Personal tellimus", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "Olete hakanud meie tasuta tellimusele tagasi minema. Olete ikka kindel? Selle asemel klõpsake siin, et saada rohkem teenuseid ja funktsioone vaid {currency} {price} eest kuus.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Minge tagasi oma Franz'i tellimusele", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "On aeg teha valik. Franz töötab kõige paremini meie Personal ja Professional tellimustega. Vaadake palun ja valige endale sobiv.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "{name}, kas olete valmis valima?", | ||
28 | "feature.planSelection.personal.text" : "Rohkem teenuseid, ilma ootamiseta - ideaalne isiklikuks kasutamiseks.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "Kõik hinnad põhinevad aastamaksel", | ||
30 | "feature.planSelection.pro.text" : "Piiramatu teenus ja täiustatud funktsioonid teile ja teie meeskonnale.", | ||
31 | "feature.serviceLimit.limitReached" : "Olete lisanud {amount} teenust, saadaolevast {limit} teenusest, mis on lubatud tellimuses. Teenuste lisamiseks täiendage oma kontot.", | ||
32 | "feature.shareFranz.action.email" : "Saadke e-kirjana", | ||
33 | "feature.shareFranz.action.facebook" : "Jagage Facebookis", | ||
34 | "feature.shareFranz.action.twitter" : "Jagage Twitteris", | ||
35 | "feature.shareFranz.headline" : "Franz on koostöös parem!", | ||
36 | "feature.shareFranz.shareText.email" : "Olen lisanud Franz'i {count} teenust! Hankige tasuta rakendus WhatsApp'ile, Messenger'ile, Slack'ile, Skype'ile ja muule veebiaadressilt www.meetfranz.com", | ||
37 | "feature.shareFranz.shareText.twitter" : "Olen lisanud Franz'i {count} teenust! Hankige tasuta rakendus WhatsApp'ile, Messenger'ile, Slack'ile, Skype'ile ja muule veebiaadressilt www.meetfranz.com \/cc @FranzMessenger", | ||
38 | "feature.shareFranz.text" : "Rääkige oma sõpradele ja kolleegidele, kui vinge Franz on, ja aidake meil seda sõna levitada.", | ||
39 | "feature.todos.premium.info" : "Franz'i ülesanded on nüüd saadaval tasulise tellimusega kasutajatele!", | ||
40 | "feature.todos.premium.rollout" : "Kõigil teistel tuleb veidi kauem oodata.", | ||
41 | "feature.todos.premium.upgrade" : "Uuendage oma kontot", | ||
42 | "feature.trialStatusBar.cta" : "Uuendage nüüd", | ||
43 | "feature.trialStatusBar.expired" : "Teie tasuta Franzi {plan} proovitellimus on lõppenud, uuendage oma kontot.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Minge tagasi tasuta tellimusele", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Valige Personal tellimus", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "Olete hakanud meie tasuta tellimusele tagasi minema. Olete ikka kindel? Selle asemel klõpsake siin, et saada rohkem teenuseid ja funktsioone vaid {currency} {price} eest kuus.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Minge tagasi oma Franz'i tellimusele", | ||
48 | "feature.trialStatusBar.restTime" : "Teie tasuta Franz'i {plan} proovtellimus lõpeb {time} pärast.", | ||
49 | "global.api.unhealthy" : "Ups! Franz'i võrguteenustega ei saa ühendust luua", | ||
50 | "global.franzProRequired" : "Vajalik Franz Professional tellimus", | ||
51 | "global.notConnectedToTheInternet" : "Teil pole Interneti-ühendust.", | ||
52 | "global.spellchecker.useDefault" : "Kasuta süsteemi vaikeväärtust ({default})", | ||
53 | "global.spellchecking.autodetect" : "Tuvastage keel automaatselt", | ||
54 | "global.spellchecking.autodetect.short" : "Automaatne", | ||
55 | "global.spellchecking.language" : "Õigekirja kontrollimise keel", | ||
56 | "global.upgradeButton.upgradeToPro" : "Täiendage Franz Professional tellimusele", | ||
57 | "import.headline" : "Importige oma Franz 4 teenused", | ||
58 | "import.notSupportedHeadline" : "Teenused, mida Franz 5 veel ei toeta", | ||
59 | "import.skip.label" : "Soovin teenuseid käsitsi lisada", | ||
60 | "import.submit.label" : "Teenuste importimine", | ||
61 | "infobar.buttonChangelog" : "Mis on uut?", | ||
62 | "infobar.buttonInstallUpdate" : "Taaskäivita ja paigalda värskendus", | ||
63 | "infobar.buttonReloadServices" : "Laadi teenused uuesti", | ||
64 | "infobar.requiredRequestsFailed" : "Teenuseid ja kasutajainfot ei õnnestunud laadida", | ||
65 | "infobar.servicesUpdated" : "Teie teenuseid on uuendatud.", | ||
66 | "infobar.trialActivated" : "Teie proovitellimus oli edukalt aktiveeritud. Head sõnumineerimist!", | ||
67 | "infobar.updateAvailable" : "Franz'i jaoks on saadaval uus värskendus.", | ||
68 | "invite.email.label" : "E-posti aadress", | ||
69 | "invite.headline.friends" : "Kutsu oma 3 sõpra või kolleegi liituma", | ||
70 | "invite.name.label" : "Nimi", | ||
71 | "invite.skip.label" : "Ma soovin seda teha hiljem", | ||
72 | "invite.submit.label" : "Saada kutseid", | ||
73 | "invite.successInfo" : "Kutsed on edukalt saadetud", | ||
74 | "login.email.label" : "E-posti aadress", | ||
75 | "login.headline" : "Logi sisse", | ||
76 | "login.invalidCredentials" : "E-posti aadress või salasõna ei sobi", | ||
77 | "login.link.password" : "Lähtesta salasõna", | ||
78 | "login.link.signup" : "Looge tasuta konto", | ||
79 | "login.password.label" : "Salasõna", | ||
80 | "login.serverLogout" : "Teie seanss on aegunud, logige uuesti sisse.", | ||
81 | "login.submit.label" : "Logi sisse", | ||
82 | "login.tokenExpired" : "Teie seanss on aegunud, logige uuesti sisse.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Sulge ülesannete sahtel", | ||
84 | "menu.Todoss.openTodosDrawer" : "Ava ülesannete sahtel", | ||
85 | "menu.app.about" : "Franz rakendusest", | ||
86 | "menu.app.announcement" : "Mis on uut?", | ||
87 | "menu.app.checkForUpdates" : "Kontrolli kas värskendused on saadaval", | ||
88 | "menu.app.hide" : "Peida", | ||
89 | "menu.app.hideOthers" : "Peida teised", | ||
90 | "menu.app.quit" : "Sulge", | ||
91 | "menu.app.settings" : "Sätted", | ||
92 | "menu.app.unhide" : "Näita", | ||
93 | "menu.edit" : "Muuda", | ||
94 | "menu.edit.copy" : "Kopeeri", | ||
95 | "menu.edit.cut" : "Lõika", | ||
96 | "menu.edit.delete" : "Kustuta", | ||
97 | "menu.edit.emojiSymbols" : "Emotikonid ja sümbolid", | ||
98 | "menu.edit.paste" : "Kleebi", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Kleebi ja sobita stiil", | ||
100 | "menu.edit.redo" : "Tee uuesti", | ||
101 | "menu.edit.selectAll" : "Vali kõik", | ||
102 | "menu.edit.speech" : "Kõne", | ||
103 | "menu.edit.startDictation" : "Alusta dikteerimist", | ||
104 | "menu.edit.startSpeaking" : "Alusta ettelugemist", | ||
105 | "menu.edit.stopSpeaking" : "Lõpeta ettelugemine", | ||
106 | "menu.edit.undo" : "Võta tagasi", | ||
107 | "menu.file" : "Fail", | ||
108 | "menu.help" : "Abiinfo", | ||
109 | "menu.help.changelog" : "Muutuste logi", | ||
110 | "menu.help.debugInfo" : "Kopeeri silumisteave", | ||
111 | "menu.help.debugInfoCopiedBody" : "Teie silumisteave on kopeeritud arvuti lõikelauale.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz'i silumisteave", | ||
113 | "menu.help.learnMore" : "Lisateave", | ||
114 | "menu.help.privacy" : "Privaatsusavaldus", | ||
115 | "menu.help.support" : "Kasutajatugi", | ||
116 | "menu.help.tos" : "Kasutustingimused", | ||
117 | "menu.services" : "Teenused", | ||
118 | "menu.services.activatePreviousService" : "Aktiveeri eelmine teenus", | ||
119 | "menu.services.addNewService" : "Lisa uus teenus", | ||
120 | "menu.services.goHome" : "Pealeht", | ||
121 | "menu.services.setNextServiceActive" : "Aktiveeri järgmine teenus", | ||
122 | "menu.todos" : "Ülesanded", | ||
123 | "menu.todos.enableTodos" : "Luba ülesanded", | ||
124 | "menu.view" : "Vaade", | ||
125 | "menu.view.enterFullScreen" : "Kuva täisekraanil", | ||
126 | "menu.view.exitFullScreen" : "Välju täisekraanilt", | ||
127 | "menu.view.reloadFranz" : "Laadi Franz uuesti", | ||
128 | "menu.view.reloadService" : "Laadi teenus uuesti", | ||
129 | "menu.view.reloadTodos" : "Laadi ülesanded uuesti", | ||
130 | "menu.view.resetZoom" : "Tegelik suurus", | ||
131 | "menu.view.toggleDevTools" : "Kuva arendaja tööriistad", | ||
132 | "menu.view.toggleFullScreen" : "Kuva täisekraanil", | ||
133 | "menu.view.toggleServiceDevTools" : "Kuva teenuse arendaja tööriistad", | ||
134 | "menu.view.toggleTodosDevTools" : "Kuva ülesannete arendaja tööriistad", | ||
135 | "menu.view.zoomIn" : "Suurenda", | ||
136 | "menu.view.zoomOut" : "Vähenda", | ||
137 | "menu.window" : "Aken", | ||
138 | "menu.window.close" : "Sulge", | ||
139 | "menu.window.minimize" : "Minimeeri", | ||
140 | "menu.workspaces" : "Tööruumid", | ||
141 | "menu.workspaces.addNewWorkspace" : "Lisa uus tööruum...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Sulge tööruumide sahtel", | ||
143 | "menu.workspaces.defaultWorkspace" : "Kõik teenused", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Ava tööruumide sahtel", | ||
145 | "password.email.label" : "E-posti aadress", | ||
146 | "password.headline" : "Lähtesta salasõna", | ||
147 | "password.link.login" : "Logige sisse oma kontole", | ||
148 | "password.link.signup" : "Loo tasuta konto", | ||
149 | "password.noUser" : "Ühtegi selle e-posti aadressiga kasutajat ei leitud", | ||
150 | "password.submit.label" : "Saada", | ||
151 | "password.successInfo" : "Palun kontrollige oma e-posti aadressi", | ||
152 | "premiumFeature.button.upgradeAccount" : "Konto täiendamine", | ||
153 | "pricing.features.accountSync" : "Konto sünkroonimine", | ||
154 | "pricing.features.adFree" : "Igavesti reklaamivaba", | ||
155 | "pricing.features.appDelays" : "Ootavaid ekraane pole", | ||
156 | "pricing.features.appDelaysEnabled" : "Aeg-ajalt ootavad ekraanid", | ||
157 | "pricing.features.customWebsites" : "Lisa kohandatud veebisaidid", | ||
158 | "pricing.features.desktopNotifications" : "Töölaua teated", | ||
159 | "pricing.features.onPremise" : "Kohalikud ja muud majutatud teenused", | ||
160 | "pricing.features.recipes" : "Valige enam kui 70 teenuse hulgast", | ||
161 | "pricing.features.serviceProxies" : "Teenuse puhverserverid", | ||
162 | "pricing.features.spellchecker" : "Õigekirjakontrolli tugi", | ||
163 | "pricing.features.teamManagement" : "Meeskonna haldamine", | ||
164 | "pricing.features.thirdPartyServices" : "Paigalda 3'nda osapoole teenused", | ||
165 | "pricing.features.unlimitedServices" : "Lisa piiramatud teenused", | ||
166 | "pricing.features.upToSixServices" : "Lisa kuni 6 teenust", | ||
167 | "pricing.features.upToThreeServices" : "Lisa kuni 3 teenust", | ||
168 | "pricing.features.workspaces" : "Tööruumid", | ||
169 | "pricing.plan.free" : "Tasuta", | ||
170 | "pricing.plan.legacy" : "Täiendatud", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal kuumakse põhine", | ||
173 | "pricing.plan.personal-yearly" : "Personal aastamakse põhine", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional kuumakse põhine", | ||
176 | "pricing.plan.pro-yearly" : "Professional aastamakse põhine", | ||
177 | "pricing.trial.cta.accept" : "Alusta minu 14-päevast Franz'i proovitellimust", | ||
178 | "pricing.trial.cta.skip" : "Edasi Franz'ini", | ||
179 | "pricing.trial.cta.start" : "Alusta Franz'i kasutamist", | ||
180 | "pricing.trial.error" : "Vabandust, me ei saanud teie proovitellimust aktiveerida!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional sisaldab:", | ||
182 | "pricing.trial.headline.pro" : "Hei {name}, tere tulemast Franz'i", | ||
183 | "pricing.trial.intro.happyMessaging" : "Head sõnumineerimist.", | ||
184 | "pricing.trial.intro.specialTreat" : "Meil on teile spetsiaalne maiuspala.", | ||
185 | "pricing.trial.intro.tryPro" : "Nautige täielikku Franz Professional'i kogemust 14 päeva jooksul täiesti tasuta.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Teie tasuta proovitellimus lõpeb automaatselt 14 päeva pärast", | ||
187 | "pricing.trial.terms.headline" : "Stringe pole lisatud", | ||
188 | "pricing.trial.terms.noCreditCard" : "Krediitkaarti pole vaja", | ||
189 | "pricing.trial.terms.trialWorth" : "Tasuta proovitellimus (tavaliselt {currency}{price} kuus)", | ||
190 | "service.crashHandler.action" : "Laadi {name} uuesti", | ||
191 | "service.crashHandler.autoReload" : "Püütakse {name} automaatselt taastada {seconds} sekundi jooksul", | ||
192 | "service.crashHandler.headline" : "Oh ei!", | ||
193 | "service.crashHandler.text" : "{name} on põhjustanud vea.", | ||
194 | "service.disabledHandler.action" : "Luba {name}", | ||
195 | "service.disabledHandler.headline" : "{name} on keelatud", | ||
196 | "service.errorHandler.action" : "Laadi {name} uuesti", | ||
197 | "service.errorHandler.editAction" : "Muuda {name}", | ||
198 | "service.errorHandler.headline" : "Oh ei!", | ||
199 | "service.errorHandler.message" : "Tõrge", | ||
200 | "service.errorHandler.text" : "{name} laadimine nurjus.", | ||
201 | "service.restrictedHandler.action" : "Uuendage oma kontot", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional tellimus on nõutav", | ||
203 | "service.restrictedHandler.customUrl.text" : "Kohandatud URL-ide ja ise hostitud teenuste kasutamiseks minge üle Franz Professional'i tellimusele.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "Olete jõudnud oma maksimaalselt lubatud teenusete arvuni.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Palun täiendage oma kontot, et kasutada rohkem, kui {count} teenust.", | ||
206 | "service.webviewLoader.loading" : "Laadimine", | ||
207 | "services.getStarted" : "Alusta", | ||
208 | "services.welcome" : "Tere tulemast Franz'i", | ||
209 | "settings.account.account.editButton" : "Konto muutmine", | ||
210 | "settings.account.accountType.basic" : "Tavakasutaja konto", | ||
211 | "settings.account.accountType.premium" : "Edasijõudnud kasutaja konto", | ||
212 | "settings.account.buttonSave" : "Uuenda profiili", | ||
213 | "settings.account.deleteAccount" : "Kustuta konto", | ||
214 | "settings.account.deleteEmailSent" : "Teile saadeti konto kustutamise kinnitamiseks e-kiri koos lingiga. Teie kontot ja andmeid ei saa taastada!", | ||
215 | "settings.account.deleteInfo" : "Kui te ei vaja enam oma Franzi kontot, saate siin oma konto ja kõik sellega seotud andmed kustutada.", | ||
216 | "settings.account.headline" : "Konto", | ||
217 | "settings.account.headlineAccount" : "Konto teave", | ||
218 | "settings.account.headlineDangerZone" : "Ohutsoon", | ||
219 | "settings.account.headlineInvoices" : "Arved", | ||
220 | "settings.account.headlinePassword" : "Muuda salasõna", | ||
221 | "settings.account.headlineProfile" : "Profiili uuendamine", | ||
222 | "settings.account.headlineSubscription" : "Teie tellimus", | ||
223 | "settings.account.headlineTrialUpgrade" : "Hankige tasuta 14-päevane Franz'i proovitellimus", | ||
224 | "settings.account.headlineUpgradeAccount" : "Täiendage oma kontot ja saate täieliku Franz'i kasutuskogemuse", | ||
225 | "settings.account.invoiceDownload" : "Laadi alla", | ||
226 | "settings.account.manageSubscription.label" : "Halda oma tellimust", | ||
227 | "settings.account.successInfo" : "Teie muudatused on salvestatud", | ||
228 | "settings.account.trial" : "Tasuta proovitellimus", | ||
229 | "settings.account.trialEndsIn" : "Teie tasuta prooviperiood lõpeb {duration} pärast.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Palun uuendage oma arveldusteavet, et jätkata teenuse {license} kasutamist ka pärast prooviperioodi.", | ||
231 | "settings.account.tryReloadServices" : "Proovi uuesti", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Proovi uuesti", | ||
233 | "settings.account.upgradeToPro.label" : "Täiendage Franz Professional tellimusele", | ||
234 | "settings.account.userInfoRequestFailed" : "Kasutaja teabe laadimine nurjus", | ||
235 | "settings.account.yourLicense" : "Teie Franz'i litsents", | ||
236 | "settings.app.buttonClearAllCache" : "Tühjenda vahemälu", | ||
237 | "settings.app.buttonInstallUpdate" : "Taaskäivita ja paigalda värskendus", | ||
238 | "settings.app.buttonSearchForUpdate" : "Värskenduste saadavuse kontrollimine", | ||
239 | "settings.app.cacheInfo" : "Franz'i vahemälu kasutab praegu {size} kettaruumi.", | ||
240 | "settings.app.currentVersion" : "Käesolev versioon:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Ava taustal", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Käivita Franz arvuti käivitumisel", | ||
243 | "settings.app.form.beta" : "Kaasaarvatud beetaversioonid", | ||
244 | "settings.app.form.darkMode" : "Liitu Pimedaga (tume teema)", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Luba videoprotsessori (GPU) kiirendus", | ||
246 | "settings.app.form.enableSpellchecking" : "Luba õigekirjakontroll", | ||
247 | "settings.app.form.enableSystemTray" : "Kuva Franz süsteemisalves", | ||
248 | "settings.app.form.enableTodos" : "Luba Franz ülesanded (Todos)", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Hoia kõik tööruumid laadituna", | ||
250 | "settings.app.form.language" : "Keel", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimeeri Franz süsteemisalve", | ||
252 | "settings.app.form.runInBackground" : "Hoia akna sulgemisel Franz taustal töös", | ||
253 | "settings.app.form.showDisabledServices" : "Kuva keelatud teenuste vahelehed", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Kuva lugemata sõnumimärk, kui teated on keelatud", | ||
255 | "settings.app.headline" : "Sätted", | ||
256 | "settings.app.headlineAdvanced" : "Täpsemalt", | ||
257 | "settings.app.headlineAppearance" : "Välimus", | ||
258 | "settings.app.headlineGeneral" : "Üldine", | ||
259 | "settings.app.headlineLanguage" : "Keel", | ||
260 | "settings.app.headlineUpdates" : "Värskendused", | ||
261 | "settings.app.languageDisclaimer" : "Ametlikud tõlked on inglise ja saksa keeles. Kõik muud keeled on kogukonnapõhised tõlked.", | ||
262 | "settings.app.restartRequired" : "Muudatused vajavad Franz'i taaskäivitamist", | ||
263 | "settings.app.subheadlineCache" : "Vahemälu", | ||
264 | "settings.app.translationHelp" : "Aidake meil Franz'i teie keelde tõlkida.", | ||
265 | "settings.app.updateStatusAvailable" : "Värskendus on saadaval, toimub allalaadimine...", | ||
266 | "settings.app.updateStatusSearching" : "Otsib värskendusi", | ||
267 | "settings.app.updateStatusUpToDate" : "Kasutate Franz'i uusimat versiooni", | ||
268 | "settings.invite.headline" : "Kutsu sõpru", | ||
269 | "settings.navigation.account" : "Konto", | ||
270 | "settings.navigation.availableServices" : "Saadaolevad teenused", | ||
271 | "settings.navigation.inviteFriends" : "Kutsu sõpru", | ||
272 | "settings.navigation.logout" : "Logi välja", | ||
273 | "settings.navigation.settings" : "Sätted", | ||
274 | "settings.navigation.team" : "Halda meeskonda", | ||
275 | "settings.navigation.yourServices" : "Teie teenused", | ||
276 | "settings.navigation.yourWorkspaces" : "Teie tööruumid", | ||
277 | "settings.recipes.all" : "Kõik teenused", | ||
278 | "settings.recipes.custom" : "Kohandatud teenused", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Kogukonna 3'nda osapoole retseptid", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Kohandatud 3'nda osapoole retseptid", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Teie arendusteenuse retseptid", | ||
282 | "settings.recipes.customService.intro" : "Kohandatud teenuse lisamiseks kopeerige teenuse retsept kausta:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Arendaja dokumentatsioon", | ||
284 | "settings.recipes.customService.openFolder" : "Ava kaust", | ||
285 | "settings.recipes.headline" : "Saadaolevad teenused", | ||
286 | "settings.recipes.missingService" : "Teenus puudub?", | ||
287 | "settings.recipes.mostPopular" : "Populaarseimad teenused", | ||
288 | "settings.recipes.nothingFound" : "Vabandust, kuid ükski teenus ei vastanud teie otsinguterminile.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Teenus lisati edukalt", | ||
290 | "settings.searchService" : "Otsi teenust", | ||
291 | "settings.service.error.goBack" : "Tagasi teenuste juurde", | ||
292 | "settings.service.error.headline" : "Tõrge", | ||
293 | "settings.service.error.message" : "Teenuse retsepti ei saanud laadida.", | ||
294 | "settings.service.form.addServiceHeadline" : "Lisa {name}", | ||
295 | "settings.service.form.availableServices" : "Saadaolevad teenused", | ||
296 | "settings.service.form.customUrl" : "Kohandatud server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "Isemajutatavate teenuste lisamiseks vajate Franz Premium'i tellimust.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Uuendage oma kontot", | ||
299 | "settings.service.form.customUrlValidationError" : "Kohandatud {name} serverit ei saanud kinnitada.", | ||
300 | "settings.service.form.deleteButton" : "Kustuta teenus", | ||
301 | "settings.service.form.editServiceHeadline" : "Muuda {name}", | ||
302 | "settings.service.form.enableAudio" : "Luba heli", | ||
303 | "settings.service.form.enableBadge" : "Kuva lugemata sõnumimärgid", | ||
304 | "settings.service.form.enableDarkMode" : "Luba tume režiim", | ||
305 | "settings.service.form.enableHibernation" : "Luba talveunerežiim", | ||
306 | "settings.service.form.enableNotification" : "Luba teated", | ||
307 | "settings.service.form.enableService" : "Luba teenus", | ||
308 | "settings.service.form.headlineBadges" : "Lugemata sõnumimärgid", | ||
309 | "settings.service.form.headlineGeneral" : "Üldine", | ||
310 | "settings.service.form.headlineNotifications" : "Teated", | ||
311 | "settings.service.form.icon" : "Kohandatud pisipilt", | ||
312 | "settings.service.form.iconDelete" : "Kustuta", | ||
313 | "settings.service.form.iconUpload" : "Lohistage oma pilt siia või klõpsake siin", | ||
314 | "settings.service.form.indirectMessageInfo" : "Teid teavitatakse kõigist kanali uutest sõnumitest, mitte ainult @kasutajanimi, @kanal, @siin, ...", | ||
315 | "settings.service.form.indirectMessages" : "Kuva kõigi uute sõnumite puhul sõnumimärk", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "Kui see säte on lubatud, suletakse antud teenus ressursside säästmiseks teatud aja möödudes.", | ||
317 | "settings.service.form.isMutedInfo" : "Kui see säte on keelatud, vaigistatakse kõik teadete helid ja heli taasesitus", | ||
318 | "settings.service.form.name" : "Nimi", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS puhverserveri sätted", | ||
320 | "settings.service.form.proxy.host" : "Puhverserveri host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Puhverserveri sätteid ei sünkroonita Franz'i serveritega.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Kasuta puhverserverit", | ||
323 | "settings.service.form.proxy.password" : "Salasõna (mittekohustuslik)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Pärast puhverserveri sätete muutmist palun taaskäivitage Franz.", | ||
326 | "settings.service.form.proxy.user" : "Kasutajanimi (mittekohustuslik)", | ||
327 | "settings.service.form.saveButton" : "Salvesta teenus", | ||
328 | "settings.service.form.tabHosted" : "Isemajutatud server", | ||
329 | "settings.service.form.tabOnPremise" : "Isemajutatud teenus ⭐️", | ||
330 | "settings.service.form.team" : "Meeskond", | ||
331 | "settings.service.form.useHostedService" : "Kasuta välise majutaja {name} teenust.", | ||
332 | "settings.service.form.yourServices" : "Teie teenused", | ||
333 | "settings.services.deletedInfo" : "Teenus on edukalt kustutatud", | ||
334 | "settings.services.discoverServices" : "Avasta teenuseid", | ||
335 | "settings.services.headline" : "Teie teenused", | ||
336 | "settings.services.noServicesAdded" : "Te pole veel ühtegi teenust lisanud.", | ||
337 | "settings.services.servicesRequestFailed" : "Teie teenuseid ei õnnestunud laadida", | ||
338 | "settings.services.tooltip.isDisabled" : "Teenus on keelatud", | ||
339 | "settings.services.tooltip.isMuted" : "Kõik helid on vaigistatud", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Kõik teated on keelatud", | ||
341 | "settings.services.updatedInfo" : "Teie muudatused on salvestatud", | ||
342 | "settings.team.contentHeadline" : "Franz meeskondadele", | ||
343 | "settings.team.copy" : "Franz meeskondadele funktsioon annab teile võimaluse kutsuda kaastöötajaid oma meeskonda, saates neile e-posti teel kutsed ja hallates nende tellimusi oma konto sätetes. Ärge raisake aega tellimuste seadistamisele iga meeskonnaliikme jaoks eraldi, unustage mitu arvet ja erinevaid arveldustsükleid - üks meeskond haldab neid kõiki!", | ||
344 | "settings.team.headline" : "Meeskond", | ||
345 | "settings.team.intro" : "Kas teie ja teie meeskond kasutavad Franz'i? Nüüd saate hallata täiustatud konto tellimusi nii paljudele kolleegidele, sõpradele kui ka pereliikmetele, kui soovite teha kõike ühe konto kaudu.", | ||
346 | "settings.team.manageAction" : "Hallake oma meeskonda veebilehel 'meetfranz.com'", | ||
347 | "settings.team.upgradeAction" : "Uuendage oma kontot", | ||
348 | "settings.user.form.accountType.company" : "Ettevõte", | ||
349 | "settings.user.form.accountType.individual" : "Üksikisik", | ||
350 | "settings.user.form.accountType.label" : "Konto tüüp", | ||
351 | "settings.user.form.accountType.non-profit" : "Mittetulundusühing", | ||
352 | "settings.user.form.currentPassword" : "Praegune salasõna", | ||
353 | "settings.user.form.email" : "E-posti aadress", | ||
354 | "settings.user.form.firstname" : "Eesnimi", | ||
355 | "settings.user.form.lastname" : "Perekonnanimi", | ||
356 | "settings.user.form.newPassword" : "Uus salasõna", | ||
357 | "settings.workspace.add.form.name" : "Nimi", | ||
358 | "settings.workspace.add.form.submitButton" : "Loo uus tööruum", | ||
359 | "settings.workspace.form.buttonDelete" : "Kustuta tööruum", | ||
360 | "settings.workspace.form.buttonSave" : "Salvesta tööruum", | ||
361 | "settings.workspace.form.name" : "Nimi", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Teenused selles tööruumis", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Teie tööruumid", | ||
364 | "settings.workspaces.deletedInfo" : "Tööruum on edukalt kustutatud", | ||
365 | "settings.workspaces.headline" : "Teie tööruumid", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "Te pole veel ühtegi tööruumi lisanud.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Proovige uuesti", | ||
368 | "settings.workspaces.updatedInfo" : "Teie muudatused on salvestatud", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Vähem on rohkem: Franz'i tööruumide tutvustus", | ||
370 | "settings.workspaces.workspaceFeatureInfo" : "Franz'i tööruumid võimaldavad teil keskenduda sellele, mis on hetkel oluline. Seadistage erinevaid teenusekomplekte ja saate neid igal ajal hõlpsasti vahetada. Teie otsustate, milliseid teenuseid millal ja kus, et saaksime aidata teil oma mängu tipus püsida - või siis lihtsalt töölt välja lülitada, kui soovite.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Teie tööruume ei saanud laadida", | ||
372 | "setupAssistant.headline" : "Alustame", | ||
373 | "setupAssistant.subheadline" : "Valige meie kõige sagedamini kasutatavate teenuste hulgast ja saate kohe oma sõnumite üle valitseda.", | ||
374 | "setupAssistant.submit.label" : "Lähme", | ||
375 | "sidebar.addNewService" : "Lisa uus teenus", | ||
376 | "sidebar.closeTodosDrawer" : "Sulge Franz ülesanded", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Sulge tööruumide sahtel", | ||
378 | "sidebar.muteApp" : "Keela teated ja heli", | ||
379 | "sidebar.openTodosDrawer" : "Ava Franz ülesanded", | ||
380 | "sidebar.openWorkspaceDrawer" : "Ava tööruumide sahtel", | ||
381 | "sidebar.settings" : "Sätted", | ||
382 | "sidebar.unmuteApp" : "Luba teated ja heli", | ||
383 | "signup.email.label" : "E-posti aadress", | ||
384 | "signup.emailDuplicate" : "Selle e-posti aadressiga kasutaja on juba olemas", | ||
385 | "signup.firstname.label" : "Eesnimi", | ||
386 | "signup.headline" : "Registreeri", | ||
387 | "signup.lastname.label" : "Perekonnanimi", | ||
388 | "signup.legal.info" : "Franzi konto loomisega nõustute", | ||
389 | "signup.legal.privacy" : "Privaatsusavaldus", | ||
390 | "signup.legal.terms" : "Kasutustingimused", | ||
391 | "signup.link.login" : "Kas teil on juba konto, logi sisse?", | ||
392 | "signup.password.label" : "Salasõna", | ||
393 | "signup.submit.label" : "Loo konto", | ||
394 | "subscription.bestValue" : "Parim hind", | ||
395 | "subscription.cta.activateTrial" : "Jah, alusta tasuta Franz Professional'i proovitellimust", | ||
396 | "subscription.cta.allOptions" : "Vaata kõiki võimalusi", | ||
397 | "subscription.cta.choosePlan" : "Valige oma tellimus", | ||
398 | "subscription.includedProFeatures" : "Franz'i Professional tellimus sisaldab:", | ||
399 | "subscription.interval.per" : "{interval} kohta", | ||
400 | "subscription.interval.perMonth" : "kuus", | ||
401 | "subscription.interval.perMonthPerUser" : "kuus kasutaja kohta", | ||
402 | "subscription.planItem.upgradeAccount" : "Uuendage oma kontot", | ||
403 | "subscription.teaser.includedFeatures" : "Tasuliste Franz'i tellimuste hulka kuuluvad:", | ||
404 | "subscription.teaser.intro" : "Franz 5 sisaldab laia valikut uusi funktsioone, et teie igapäevast suhtlemist veelgi paremaks muuta - patareid kaasaarvatud. Tutvuge meie uute tellimusvariantidega ja saate teada, milline neist sobib teile kõige paremini!", | ||
405 | "subscriptionPopup.buttonCancel" : "Loobu", | ||
406 | "subscriptionPopup.buttonDone" : "Valmis", | ||
407 | "tabs.item.deleteService" : "Kustuta teenus", | ||
408 | "tabs.item.disableAudio" : "Keela heli", | ||
409 | "tabs.item.disableNotifications" : "Keela teated", | ||
410 | "tabs.item.disableService" : "Keela teenus", | ||
411 | "tabs.item.edit" : "Muuda", | ||
412 | "tabs.item.enableAudio" : "Luba heli", | ||
413 | "tabs.item.enableNotification" : "Luba teated", | ||
414 | "tabs.item.enableService" : "Luba teenus", | ||
415 | "tabs.item.reload" : "Laadi uuesti", | ||
416 | "validation.email" : "{field} ei sobi", | ||
417 | "validation.minLength" : "{field} peaks olema vähemalt {length} tähemärki pikk", | ||
418 | "validation.oneRequired" : "Vaja on vähemalt ühte", | ||
419 | "validation.required" : "{väli} on kohustuslik", | ||
420 | "validation.url" : "{field} ei ole kehtiv URL", | ||
421 | "webControls.back" : "Tagasi", | ||
422 | "webControls.forward" : "Edasi", | ||
423 | "webControls.goHome" : "Pealeht", | ||
424 | "webControls.openInBrowser" : "Ava brauseris", | ||
425 | "webControls.reload" : "Laadi uuesti", | ||
426 | "welcome.loginButton" : "Logige sisse oma kontole", | ||
427 | "welcome.signupButton" : "Loo tasuta konto", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Lisa uus tööruum", | ||
429 | "workspaceDrawer.allServices" : "Kõik teenused", | ||
430 | "workspaceDrawer.headline" : "Tööruumid", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "muutmine", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "Ühtegi teenust pole veel lisatud", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Loo oma esimene tööruum", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Täiustatud funktsioon", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Aktiveerige täiustatud konto uuesti", | ||
436 | "workspaceDrawer.workspaceFeatureInfo" : "<p> Franz'i tööruumid võimaldavad teil keskenduda sellele, mis on hetkel oluline. Seadistage erinevaid teenusekomplekte ja saate neid igal ajal hõlpsasti vahetada. <\/p> <p> Teie otsustate milliseid teenuseid millal ja kus vajate, et saaksime aidata teil oma mängu tipus püsida - või hõlpsalt töölt välja lülitada. millal soovite. <\/p>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Muuda tööruumide sätteid", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Lülitumine" | ||
439 | } | ||
diff --git a/src/i18n/locales/fa.json b/src/i18n/locales/fa.json new file mode 100644 index 000000000..11c95c126 --- /dev/null +++ b/src/i18n/locales/fa.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "بارگذاری مجدد", | ||
3 | "app.errorHandler.headline" : "اشتباهی رخ داده", | ||
4 | "connectionLostBanner.cta" : "بارگذاری مجدد سرور", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "تغییرات فرَنز {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "فرَنز بعد از {seconds} ثانیه ادامه میده.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "ارتقای حساب", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "ارسال به صورت ایمیل", | ||
33 | "feature.shareFranz.action.facebook" : "اشتراکگذاری در فیس بوک", | ||
34 | "feature.shareFranz.action.twitter" : "اشتراکگذاری در توییتر", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "feature.shareFranz.shareText.email" : "من {count} تا سرویس تو فرَنز اضافه کردم! برنامه رایگان برای واتسآپ، اسکایپ، مسنجر، اسلک رو از سایت www.meetfranz.com دانلود کن.", | ||
37 | "feature.shareFranz.shareText.twitter" : "من {count} تا سرویس تو فرَنز اضافه کردم! برنامه رایگان برای واتسآپ، اسکایپ، مسنجر، اسلک رو از سایت www.meetfranz.com دانلود کن \/cc @FranzMessenger", | ||
38 | "feature.shareFranz.text" : "به دوستات بگو فرَنز چقدر باحاله و بهمون کمک کن گسترش پیدا کنیم.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "به سرویس های آنلاین فرَنز متصل نشدی", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "اینترنت وصل نیست", | ||
52 | "global.spellchecker.useDefault" : "استفاده از پیشفرض سیستم ({default})", | ||
53 | "global.spellchecking.autodetect" : "تشخیص خودکار زبان", | ||
54 | "global.spellchecking.autodetect.short" : "خودکار", | ||
55 | "global.spellchecking.language" : "زبان غلط یاب املایی", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "جانشانی سرویس های فرانز 4", | ||
58 | "import.notSupportedHeadline" : "این سرویس ها در Franz ۵ پشتیبانی نمیشوند.", | ||
59 | "import.skip.label" : "میخواهم سرویس ها را به صورت دستی اضافه کنم.", | ||
60 | "import.submit.label" : "جانشانی سرویس ها", | ||
61 | "infobar.buttonChangelog" : "چه خبر ؟", | ||
62 | "infobar.buttonInstallUpdate" : "باز کردن مجدد و نصب به روز رسانی", | ||
63 | "infobar.buttonReloadServices" : "بارگذاری مجدد سرویس ها", | ||
64 | "infobar.requiredRequestsFailed" : "بارگذاری سرویس ها و اطلاعات کاربر ممکن نیست", | ||
65 | "infobar.servicesUpdated" : "سرویس های شما به روز رسانی شدند.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "یک به روز رسانی جدید برای Franz آماده است.", | ||
68 | "invite.email.label" : "نشانی ایمیل", | ||
69 | "invite.headline.friends" : "دعوت ۳ نفر از دوستان یا همکارانتان.", | ||
70 | "invite.name.label" : "نام ", | ||
71 | "invite.skip.label" : "بعدا انجام میدم ", | ||
72 | "invite.submit.label" : "فرستادن دعوت نامه ها ", | ||
73 | "invite.successInfo" : "دعوتنامه ها با موفقیت ارسال شدند .", | ||
74 | "login.email.label" : "نشانی ایمیل", | ||
75 | "login.headline" : "ورود ", | ||
76 | "login.invalidCredentials" : "ایمیل یا رمز عبور معتبر نیست ", | ||
77 | "login.link.password" : "تنظیم مجدد رمز عبور ", | ||
78 | "login.link.signup" : "ساختن یک حساب رایگان ", | ||
79 | "login.password.label" : "رمز عبور ", | ||
80 | "login.serverLogout" : "این ارتباط منقضی شده است، لطفا دوباره وارد شوید.", | ||
81 | "login.submit.label" : "ورود ", | ||
82 | "login.tokenExpired" : "ارتباط شما منقضی شده، لطفا دوباره وارد شوید.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "درباره فرانز", | ||
86 | "menu.app.announcement" : "چه خبر؟", | ||
87 | "menu.app.checkForUpdates" : "بررسی وجود نسخه جدید ", | ||
88 | "menu.app.hide" : "مخفیکردن ", | ||
89 | "menu.app.hideOthers" : "مخفی کردن بقیه ", | ||
90 | "menu.app.quit" : "خروج ", | ||
91 | "menu.app.settings" : "تنظیمات ", | ||
92 | "menu.app.unhide" : "آشکارسازی", | ||
93 | "menu.edit" : "ویرایش ", | ||
94 | "menu.edit.copy" : "کپی", | ||
95 | "menu.edit.cut" : "برش ", | ||
96 | "menu.edit.delete" : "حذف ", | ||
97 | "menu.edit.emojiSymbols" : "شکلک و نماد ها", | ||
98 | "menu.edit.paste" : "چسباندن ", | ||
99 | "menu.edit.pasteAndMatchStyle" : "بچسبان و با استایل هماهنگ کن.", | ||
100 | "menu.edit.redo" : "انجام دوباره ", | ||
101 | "menu.edit.selectAll" : "انتخاب همه ", | ||
102 | "menu.edit.speech" : "سخنرانی", | ||
103 | "menu.edit.startDictation" : "شروع به دیکته کردن", | ||
104 | "menu.edit.startSpeaking" : "شروع به حرف زدن", | ||
105 | "menu.edit.stopSpeaking" : "متوقف سازی حرف زدن", | ||
106 | "menu.edit.undo" : "برگشت", | ||
107 | "menu.file" : "فایل", | ||
108 | "menu.help" : "راهنما", | ||
109 | "menu.help.changelog" : "تغییرات", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "بیشتر بدانید ", | ||
114 | "menu.help.privacy" : "قوانین شخصی سازی", | ||
115 | "menu.help.support" : "پشتیبانی", | ||
116 | "menu.help.tos" : "شرایط ارائهٔ خدمات ", | ||
117 | "menu.services" : "سرویسها ", | ||
118 | "menu.services.activatePreviousService" : "فعالسازی سرویس قبلی", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "فعالسازی سرویس بعدی", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "نمایش", | ||
125 | "menu.view.enterFullScreen" : "نمای تمام صفحه", | ||
126 | "menu.view.exitFullScreen" : "خروج از تمامصفحه ", | ||
127 | "menu.view.reloadFranz" : "بارگذاری مجدد فرَنز", | ||
128 | "menu.view.reloadService" : "بارگذاری مجدد سرور", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "اندازه واقعی ", | ||
131 | "menu.view.toggleDevTools" : "ابزارهای گسترش دهنده", | ||
132 | "menu.view.toggleFullScreen" : "تغییر وضعیت تمام صفحه", | ||
133 | "menu.view.toggleServiceDevTools" : "تغییر سرویس ابزارهای توسعه", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "بزرگنمایی", | ||
136 | "menu.view.zoomOut" : "کوچکنمایی", | ||
137 | "menu.window" : "پنجره ", | ||
138 | "menu.window.close" : "بستن ", | ||
139 | "menu.window.minimize" : "به زیر بردن", | ||
140 | "menu.workspaces" : "فضای کاری", | ||
141 | "menu.workspaces.addNewWorkspace" : "افزودن فضای کاری جدید...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "بستن کشوی فضای کاری", | ||
143 | "menu.workspaces.defaultWorkspace" : "تمامی سرویس ها", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "بازکردن کشوی فضای کاری", | ||
145 | "password.email.label" : "نشانی ایمیل", | ||
146 | "password.headline" : "تنظیم مجدد رمز عبور ", | ||
147 | "password.link.login" : "وارد شدن به اکانت خود", | ||
148 | "password.link.signup" : "ساخت یک حساب کاربری", | ||
149 | "password.noUser" : "هیچ کاربری با این نشانی ایمیل یافت نشد ", | ||
150 | "password.submit.label" : "ارسال ", | ||
151 | "password.successInfo" : "لطفا ایمیل خود را چک کنید", | ||
152 | "premiumFeature.button.upgradeAccount" : "ارتقای حساب", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "بارگذاری مجدد {name}", | ||
191 | "service.crashHandler.autoReload" : "در حال بازیابی{نام} در{ثانیه} ثانیه به طور خودکار", | ||
192 | "service.crashHandler.headline" : "وای نه! ", | ||
193 | "service.crashHandler.text" : "{نام} با مشکل مواجه شد", | ||
194 | "service.disabledHandler.action" : "{نام} فعال کن", | ||
195 | "service.disabledHandler.headline" : "{نام} غیرفعال است", | ||
196 | "service.errorHandler.action" : "بارگذاری مجدد {name}", | ||
197 | "service.errorHandler.editAction" : "ویرایش {نام}", | ||
198 | "service.errorHandler.headline" : "وای نه! ", | ||
199 | "service.errorHandler.message" : "خطا ", | ||
200 | "service.errorHandler.text" : "{name} بارگذاری نشد.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "در حال بارگذاری", | ||
207 | "services.getStarted" : "شروع ", | ||
208 | "services.welcome" : "به فرانز خوش آمدید", | ||
209 | "settings.account.account.editButton" : "ویرایش حساب کاربری", | ||
210 | "settings.account.accountType.basic" : "اکانت ساده", | ||
211 | "settings.account.accountType.premium" : "پشتیبانی پیشرفته اکانت", | ||
212 | "settings.account.buttonSave" : "بروز رسانی پروفایل", | ||
213 | "settings.account.deleteAccount" : "حذف حساب", | ||
214 | "settings.account.deleteEmailSent" : "شما یک ایمیل حاوی لینک غیر فعال سازی اکانت خود را دریافت کرده اید. اکانت شما به هیچ وجه بازیابی نخواهد شد !", | ||
215 | "settings.account.deleteInfo" : "چنانچه دیگر به به اکانت فرانز خود نیاز ندارید ، میتوانید اکانت خود و تمامی اطلاعات خود در اینجا را حذف کنید.", | ||
216 | "settings.account.headline" : "حساب ", | ||
217 | "settings.account.headlineAccount" : "اطلاعات حساب ", | ||
218 | "settings.account.headlineDangerZone" : "منطقه خطرناک", | ||
219 | "settings.account.headlineInvoices" : "فاکتورها", | ||
220 | "settings.account.headlinePassword" : "تغییر کلمه عبور", | ||
221 | "settings.account.headlineProfile" : "بروزرسانی پروفایل", | ||
222 | "settings.account.headlineSubscription" : "اشتراک شما", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "دانلود", | ||
226 | "settings.account.manageSubscription.label" : "اشتراک خود را مدیریت کنید", | ||
227 | "settings.account.successInfo" : "تغییرات شما ذخیره شد!", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "تلاش مجدد ", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "تلاش مجدد ", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "نمیتوان اطلاعات کاربر را بارگذاری کرد.", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "پاک کردن حافظه پنهان", | ||
237 | "settings.app.buttonInstallUpdate" : "باز کردن مجدد و نصب به روز رسانی ", | ||
238 | "settings.app.buttonSearchForUpdate" : "بررسی بروزرسانی", | ||
239 | "settings.app.cacheInfo" : "حافظه ی پنهانی فرانز هم اکنون {سایز} از فضای شما استفاده میکند .", | ||
240 | "settings.app.currentVersion" : "نسخهٔ فعلی", | ||
241 | "settings.app.form.autoLaunchInBackground" : "باز کردن در پس زمینه", | ||
242 | "settings.app.form.autoLaunchOnStart" : "باز شدن فرانز در استارت ", | ||
243 | "settings.app.form.beta" : "شامل نسخه های بتا ", | ||
244 | "settings.app.form.darkMode" : "فعالسازی حالت شب", | ||
245 | "settings.app.form.enableGPUAcceleration" : "فعال سازی شتاب GPU", | ||
246 | "settings.app.form.enableSpellchecking" : "فعالسازی غلطیابی املایی", | ||
247 | "settings.app.form.enableSystemTray" : "فرانز را در system tray نشان بده", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "زبان", | ||
251 | "settings.app.form.minimizeToSystemTray" : "فرانز را در system tray بخوابان", | ||
252 | "settings.app.form.runInBackground" : "فرانز را در پشت زمینه نگه دار زمانی که پنجره آن بسته میشود", | ||
253 | "settings.app.form.showDisabledServices" : "سرویس های غیرفعال را نشان بده ", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "نماد پیام خوانده نشده را زمانی که نوتیفیکیشن ها غیرفعالند نشان بده", | ||
255 | "settings.app.headline" : "تنظیمات ", | ||
256 | "settings.app.headlineAdvanced" : "پیشرفته ", | ||
257 | "settings.app.headlineAppearance" : "ظاهر ", | ||
258 | "settings.app.headlineGeneral" : "عمومی ", | ||
259 | "settings.app.headlineLanguage" : "زبان ", | ||
260 | "settings.app.headlineUpdates" : "بهروزرسانیها ", | ||
261 | "settings.app.languageDisclaimer" : "ترجمه های رسمی به زبان انگلیسی و آلمانی هستند. ترجمه های بقیه زبانها مردم پایه هستند.", | ||
262 | "settings.app.restartRequired" : "تغییر ملزومات ریستارت", | ||
263 | "settings.app.subheadlineCache" : "حافظهی نهان", | ||
264 | "settings.app.translationHelp" : "به ما کمک کنید فرانز را به زبان شما ترجمه کنیم.", | ||
265 | "settings.app.updateStatusAvailable" : "بروزرسانی موجود است ، در حال دانلود...", | ||
266 | "settings.app.updateStatusSearching" : "در حال جستجو برای بروزرسانی", | ||
267 | "settings.app.updateStatusUpToDate" : "شما از آخرین نسخه فرانز استفاده میکنید", | ||
268 | "settings.invite.headline" : "دعوت دوستان", | ||
269 | "settings.navigation.account" : "حساب ", | ||
270 | "settings.navigation.availableServices" : "سرویس های موجود", | ||
271 | "settings.navigation.inviteFriends" : "دعوت دوستان", | ||
272 | "settings.navigation.logout" : "خروج از سیستم ", | ||
273 | "settings.navigation.settings" : "تنظیمات ", | ||
274 | "settings.navigation.team" : "مدیریت گروه", | ||
275 | "settings.navigation.yourServices" : "سرویس های شما", | ||
276 | "settings.navigation.yourWorkspaces" : "فضای کاری شما", | ||
277 | "settings.recipes.all" : "همه سرویس ها", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "سرویس های موجود", | ||
286 | "settings.recipes.missingService" : "سرویسی را نیاز دارید ؟", | ||
287 | "settings.recipes.mostPopular" : "مشهورترین ها", | ||
288 | "settings.recipes.nothingFound" : "متاسفیم ، اما هیچ سرویسی با آنچه که جستجو کردید مطابقت نداشت .", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "سرویس با موفقیت اضافه شد", | ||
290 | "settings.searchService" : "جستجوی سرویس ها", | ||
291 | "settings.service.error.goBack" : "بازگشت به سرویس ها", | ||
292 | "settings.service.error.headline" : "خطا ", | ||
293 | "settings.service.error.message" : "دستورالعمل سرویس بارگذاری نشد.", | ||
294 | "settings.service.form.addServiceHeadline" : "اضافه کردن {نام}", | ||
295 | "settings.service.form.availableServices" : "سرویس های موجود", | ||
296 | "settings.service.form.customUrl" : "سرور سفارشی", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "برای اضافه کردن سرویس هایی که خود دارید ، نیاز به پشتیبانی پیشرفته فرانز را دارید", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "اکانت خود را ارتقا دهید", | ||
299 | "settings.service.form.customUrlValidationError" : "نتوانستیم سرور {نام} را تایید اعتبار کنیم", | ||
300 | "settings.service.form.deleteButton" : "حذف سرویس", | ||
301 | "settings.service.form.editServiceHeadline" : "ویرایش {name}", | ||
302 | "settings.service.form.enableAudio" : "فعالسازی صدا", | ||
303 | "settings.service.form.enableBadge" : "نماد پیام خوانده نشده را نشان بده ", | ||
304 | "settings.service.form.enableDarkMode" : "فعالسازی حالت شب", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "فعال سازی اعلانها", | ||
307 | "settings.service.form.enableService" : "فعال سازی سرویس ها", | ||
308 | "settings.service.form.headlineBadges" : "نماد پیام های خوانده نشده ", | ||
309 | "settings.service.form.headlineGeneral" : "عمومی", | ||
310 | "settings.service.form.headlineNotifications" : "اعلانها", | ||
311 | "settings.service.form.icon" : "آیکون پیشفرض", | ||
312 | "settings.service.form.iconDelete" : "حذف", | ||
313 | "settings.service.form.iconUpload" : "عکس خود را به اینجا بکشید و یا اینجا را کیلیک کنید", | ||
314 | "settings.service.form.indirectMessageInfo" : "شما از تمامی پیام های جدید در کانال ها با خبر خواهید شد نه تنها در @usernam , @channel , @here , ...", | ||
315 | "settings.service.form.indirectMessages" : "نماد پیام را برای تمامی پیام های جدید نشان بده", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "زمان غیرفعالی ، تمامی اعلان ها ،صداها و صداهای پشت زمینه را ببند.", | ||
318 | "settings.service.form.name" : "نام", | ||
319 | "settings.service.form.proxy.headline" : "تنظیمات پروکسی HTTP\/HTTPS", | ||
320 | "settings.service.form.proxy.host" : "آی پی پروکسی", | ||
321 | "settings.service.form.proxy.info" : "تنظیمات پروکسی در سرورهای فرَنز ذخیره نخواهد شد.", | ||
322 | "settings.service.form.proxy.isEnabled" : "استفاده از پروکسی", | ||
323 | "settings.service.form.proxy.password" : "رمزعبور (اختیاری)", | ||
324 | "settings.service.form.proxy.port" : "درگاه", | ||
325 | "settings.service.form.proxy.restartInfo" : "لطفا پس از تغییر تنظیمات پروکسی، فرَنز رو ریستارت کن.", | ||
326 | "settings.service.form.proxy.user" : "کاربر (اختیاری)", | ||
327 | "settings.service.form.saveButton" : "ذخیره سرویس", | ||
328 | "settings.service.form.tabHosted" : "میزبان شده", | ||
329 | "settings.service.form.tabOnPremise" : "خود میزبانی", | ||
330 | "settings.service.form.team" : "گروه", | ||
331 | "settings.service.form.useHostedService" : "از هاست سرویس {نام} استفاده شود.", | ||
332 | "settings.service.form.yourServices" : "سرویس های شما", | ||
333 | "settings.services.deletedInfo" : "سرویس حذف شده است", | ||
334 | "settings.services.discoverServices" : "آشکار سازی سرویس ها ", | ||
335 | "settings.services.headline" : "سرویس های شما", | ||
336 | "settings.services.noServicesAdded" : "شما هیچ سرویسی هنوز اضافه نکرده اید ", | ||
337 | "settings.services.servicesRequestFailed" : "سرویس های شما بارگیری نشدن", | ||
338 | "settings.services.tooltip.isDisabled" : "سرویس غیرفعال است", | ||
339 | "settings.services.tooltip.isMuted" : "تمامی صدا ها قطع هستند .", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "اعلان ها غیرفعالند.", | ||
341 | "settings.services.updatedInfo" : "تغییرات شما ذخیره شد .", | ||
342 | "settings.team.contentHeadline" : "فرَنز برای گروه ها", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "گروه", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "گروهتو تو meetfranz.com مدیریت کن", | ||
347 | "settings.team.upgradeAction" : "حسابت رو ارتقا بده", | ||
348 | "settings.user.form.accountType.company" : "شرکت", | ||
349 | "settings.user.form.accountType.individual" : "شخص", | ||
350 | "settings.user.form.accountType.label" : "نوع حساب", | ||
351 | "settings.user.form.accountType.non-profit" : "شرکت خصوصی", | ||
352 | "settings.user.form.currentPassword" : "گذرواژهٔ فعلی", | ||
353 | "settings.user.form.email" : "ایمیل", | ||
354 | "settings.user.form.firstname" : "نام", | ||
355 | "settings.user.form.lastname" : "نام خانوادگی", | ||
356 | "settings.user.form.newPassword" : "گذرواژهٔ جدید", | ||
357 | "settings.workspace.add.form.name" : "نام", | ||
358 | "settings.workspace.add.form.submitButton" : "ایجاد فضای کاری", | ||
359 | "settings.workspace.form.buttonDelete" : "حذف فضای کاری", | ||
360 | "settings.workspace.form.buttonSave" : "ذخیره فضای کاری", | ||
361 | "settings.workspace.form.name" : "نام", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "سرویس های این فضای کاری", | ||
363 | "settings.workspace.form.yourWorkspaces" : "فضاهای کاری شما", | ||
364 | "settings.workspaces.deletedInfo" : "فضای کاری حذف شد", | ||
365 | "settings.workspaces.headline" : "فضاهای کاری شما", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "هنوز فضای کاری اضافه نکردی.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "تلاش مجدد ", | ||
368 | "settings.workspaces.updatedInfo" : "تغییرات ذخیره شدن", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "فضاهای کاری بارگذاری نشدند", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "اضافه کردن سرویس جدید", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "بستن کشوی فضای کاری", | ||
378 | "sidebar.muteApp" : "غیرفعال کردن اعلان ها و صدا", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "بازکردن کشوی فضای کاری", | ||
381 | "sidebar.settings" : "تنظیمات", | ||
382 | "sidebar.unmuteApp" : "فعال سازی اعلان ها و صدا", | ||
383 | "signup.email.label" : "نشانی ایمیل", | ||
384 | "signup.emailDuplicate" : "یک کاربر با این ایمیل هم اکنون موجود است.", | ||
385 | "signup.firstname.label" : "نام", | ||
386 | "signup.headline" : "ثبت نام", | ||
387 | "signup.lastname.label" : "نام خانوادگی", | ||
388 | "signup.legal.info" : "با ایجاد حساب فرانز شما قبول کرده اید که ", | ||
389 | "signup.legal.privacy" : "قوانین خصوصی سازی", | ||
390 | "signup.legal.terms" : "شرایط ارائهٔ خدمات", | ||
391 | "signup.link.login" : "صاحب اکانت هستید ؟ وارد شوید", | ||
392 | "signup.password.label" : "رمز عبور", | ||
393 | "signup.submit.label" : "ایجاد حساب جدید", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "انصراف", | ||
406 | "subscriptionPopup.buttonDone" : "انجام شد", | ||
407 | "tabs.item.deleteService" : "حذف سرویس", | ||
408 | "tabs.item.disableAudio" : "غیرفعال کردن صدا", | ||
409 | "tabs.item.disableNotifications" : "غیر فعال کردن اعلان ها", | ||
410 | "tabs.item.disableService" : "غیر فعال کردن سرویس", | ||
411 | "tabs.item.edit" : "ویرایش", | ||
412 | "tabs.item.enableAudio" : "فعالسازی صدا", | ||
413 | "tabs.item.enableNotification" : "فعال سازی اعلانها", | ||
414 | "tabs.item.enableService" : "فعال سازی سرویس", | ||
415 | "tabs.item.reload" : "بارگذاری مجدد", | ||
416 | "validation.email" : "{فیلد} معتبر نیست", | ||
417 | "validation.minLength" : "{فیلد} باید حداقل{طول} کاراکتر داشته باشد", | ||
418 | "validation.oneRequired" : "حداقل یکی الزامی هست", | ||
419 | "validation.required" : "{فیلد} نیاز است ", | ||
420 | "validation.url" : "{فیلد} URL معتبر نیست", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "بارگذاری مجدد", | ||
426 | "welcome.loginButton" : "وارد شدن به اکانت خود", | ||
427 | "welcome.signupButton" : "ساخت یک حساب کاربری", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "افزودن فضای کاری جدید", | ||
429 | "workspaceDrawer.allServices" : "همه سرویس ها", | ||
430 | "workspaceDrawer.headline" : "فضاهای کاری", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "ویرایش", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "هنوز هیچ سرویسی اضافه نشده", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "اولین فضای کاریتو درست کن", | ||
434 | "workspaceDrawer.proFeatureBadge" : "امکانات ویژه", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "فعالسازی مجدد حساب ویژه", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "ویرایش تنظیمات فضاهای کاری", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "سویچ به" | ||
439 | } | ||
diff --git a/src/i18n/locales/fil.json b/src/i18n/locales/fil.json new file mode 100644 index 000000000..c6347a635 --- /dev/null +++ b/src/i18n/locales/fil.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Reload", | ||
3 | "app.errorHandler.headline" : "Something went wrong", | ||
4 | "connectionLostBanner.cta" : "Reload Service", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Upgrade account", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Send as email", | ||
33 | "feature.shareFranz.action.facebook" : "Share on Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Share on Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "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", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "Hindi maka connect sa 'Franz online services'", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "Hindi ka naka connect sa internet.", | ||
52 | "global.spellchecker.useDefault" : "Use System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Detect language automatically", | ||
54 | "global.spellchecking.autodetect.short" : "Automatic", | ||
55 | "global.spellchecking.language" : "Spell checking language", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "Ilagay ang iyonhg Franz 4 services", | ||
58 | "import.notSupportedHeadline" : "Ang mga services ay hindi pa supported ni Franz 5", | ||
59 | "import.skip.label" : "Gusto kong magdagdag", | ||
60 | "import.submit.label" : "Magdagdag ng serbisyo", | ||
61 | "infobar.buttonChangelog" : "Ano ang bago?", | ||
62 | "infobar.buttonInstallUpdate" : "Mag restart at i-install ang update", | ||
63 | "infobar.buttonReloadServices" : "I-load muli ang mga serbisyo", | ||
64 | "infobar.requiredRequestsFailed" : "Hindi mai-load ang mga serbisyo at ang impormasyon tungkol sa user.", | ||
65 | "infobar.servicesUpdated" : "Na-update na ang iyong mga serbisyo.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "May bagong update.", | ||
68 | "invite.email.label" : "Email Address", | ||
69 | "invite.headline.friends" : "Invite 3 of your friends or colleagues", | ||
70 | "invite.name.label" : "Name", | ||
71 | "invite.skip.label" : "I want to do this later", | ||
72 | "invite.submit.label" : "Send invites", | ||
73 | "invite.successInfo" : "Invitations sent successfully", | ||
74 | "login.email.label" : "Email Address", | ||
75 | "login.headline" : "Sign in", | ||
76 | "login.invalidCredentials" : "Email or password not valid", | ||
77 | "login.link.password" : "Reset password", | ||
78 | "login.link.signup" : "Create a free account", | ||
79 | "login.password.label" : "Password", | ||
80 | "login.serverLogout" : "Your session expired, please login again.", | ||
81 | "login.submit.label" : "Sign in", | ||
82 | "login.tokenExpired" : "Your session expired, please login again.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "About Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Check for updates", | ||
88 | "menu.app.hide" : "Hide", | ||
89 | "menu.app.hideOthers" : "Hide Others", | ||
90 | "menu.app.quit" : "Quit", | ||
91 | "menu.app.settings" : "Settings", | ||
92 | "menu.app.unhide" : "Unhide", | ||
93 | "menu.edit" : "Edit", | ||
94 | "menu.edit.copy" : "Copy", | ||
95 | "menu.edit.cut" : "Cut", | ||
96 | "menu.edit.delete" : "Delete", | ||
97 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | ||
98 | "menu.edit.paste" : "Paste", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | ||
100 | "menu.edit.redo" : "Redo", | ||
101 | "menu.edit.selectAll" : "Select All", | ||
102 | "menu.edit.speech" : "Speech", | ||
103 | "menu.edit.startDictation" : "Start Dictation", | ||
104 | "menu.edit.startSpeaking" : "Start Speaking", | ||
105 | "menu.edit.stopSpeaking" : "Stop Speaking", | ||
106 | "menu.edit.undo" : "Undo", | ||
107 | "menu.file" : "File", | ||
108 | "menu.help" : "Help", | ||
109 | "menu.help.changelog" : "Changelog", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Learn More", | ||
114 | "menu.help.privacy" : "Privacy Statement", | ||
115 | "menu.help.support" : "Support", | ||
116 | "menu.help.tos" : "Terms of Service", | ||
117 | "menu.services" : "Services", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "View", | ||
125 | "menu.view.enterFullScreen" : "Enter Full Screen", | ||
126 | "menu.view.exitFullScreen" : "Exit Full Screen", | ||
127 | "menu.view.reloadFranz" : "Reload Franz", | ||
128 | "menu.view.reloadService" : "Reload Service", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Actual Size", | ||
131 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | ||
132 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | ||
133 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Zoom In", | ||
136 | "menu.view.zoomOut" : "Zoom Out", | ||
137 | "menu.window" : "Window", | ||
138 | "menu.window.close" : "Close", | ||
139 | "menu.window.minimize" : "Minimize", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "All services", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "Email Address", | ||
146 | "password.headline" : "Reset password", | ||
147 | "password.link.login" : "Sign in to your account", | ||
148 | "password.link.signup" : "Create a free account", | ||
149 | "password.noUser" : "No user with that email address was found", | ||
150 | "password.submit.label" : "Submit", | ||
151 | "password.successInfo" : "Please check your email", | ||
152 | "premiumFeature.button.upgradeAccount" : "Upgrade account", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "Reload {name}", | ||
191 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
192 | "service.crashHandler.headline" : "Oh no!", | ||
193 | "service.crashHandler.text" : "{name} has caused an error.", | ||
194 | "service.disabledHandler.action" : "Enable {name}", | ||
195 | "service.disabledHandler.headline" : "{name} is disabled", | ||
196 | "service.errorHandler.action" : "Reload {name}", | ||
197 | "service.errorHandler.editAction" : "Edit {name}", | ||
198 | "service.errorHandler.headline" : "Oh no!", | ||
199 | "service.errorHandler.message" : "Error", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "Get started", | ||
208 | "services.welcome" : "Welcome to Franz", | ||
209 | "settings.account.account.editButton" : "Edit account", | ||
210 | "settings.account.accountType.basic" : "Basic Account", | ||
211 | "settings.account.accountType.premium" : "Premium Supporter Account", | ||
212 | "settings.account.buttonSave" : "Update profile", | ||
213 | "settings.account.deleteAccount" : "Delete account", | ||
214 | "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | ||
215 | "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", | ||
216 | "settings.account.headline" : "Account", | ||
217 | "settings.account.headlineAccount" : "Account information", | ||
218 | "settings.account.headlineDangerZone" : "Danger Zone", | ||
219 | "settings.account.headlineInvoices" : "Invoices", | ||
220 | "settings.account.headlinePassword" : "Change password", | ||
221 | "settings.account.headlineProfile" : "Update profile", | ||
222 | "settings.account.headlineSubscription" : "Your subscription", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Download", | ||
226 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
227 | "settings.account.successInfo" : "Your changes have been saved", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Try again", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Clear cache", | ||
237 | "settings.app.buttonInstallUpdate" : "Mag restart at i-install ang update", | ||
238 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
239 | "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", | ||
240 | "settings.app.currentVersion" : "Current version:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
243 | "settings.app.form.beta" : "Include beta versions", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
246 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
247 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Language", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
252 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
253 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", | ||
255 | "settings.app.headline" : "Settings", | ||
256 | "settings.app.headlineAdvanced" : "Advanced", | ||
257 | "settings.app.headlineAppearance" : "Appearance", | ||
258 | "settings.app.headlineGeneral" : "General", | ||
259 | "settings.app.headlineLanguage" : "Language", | ||
260 | "settings.app.headlineUpdates" : "Updates", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Changes require restart", | ||
263 | "settings.app.subheadlineCache" : "Cache", | ||
264 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
265 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
266 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
267 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
268 | "settings.invite.headline" : "Invite Friends", | ||
269 | "settings.navigation.account" : "Account", | ||
270 | "settings.navigation.availableServices" : "Available services", | ||
271 | "settings.navigation.inviteFriends" : "Invite Friends", | ||
272 | "settings.navigation.logout" : "Logout", | ||
273 | "settings.navigation.settings" : "Settings", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Your services", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "All services", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Available services", | ||
286 | "settings.recipes.missingService" : "Missing a service?", | ||
287 | "settings.recipes.mostPopular" : "Most popular", | ||
288 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
290 | "settings.searchService" : "Search service", | ||
291 | "settings.service.error.goBack" : "Back to services", | ||
292 | "settings.service.error.headline" : "Error", | ||
293 | "settings.service.error.message" : "Could not load service recipe.", | ||
294 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
295 | "settings.service.form.availableServices" : "Available services", | ||
296 | "settings.service.form.customUrl" : "Custom server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
299 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
300 | "settings.service.form.deleteButton" : "Delete service", | ||
301 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
302 | "settings.service.form.enableAudio" : "Enable audio", | ||
303 | "settings.service.form.enableBadge" : "Show unread message badges", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Enable notifications", | ||
307 | "settings.service.form.enableService" : "Enable service", | ||
308 | "settings.service.form.headlineBadges" : "Unread message badges", | ||
309 | "settings.service.form.headlineGeneral" : "General", | ||
310 | "settings.service.form.headlineNotifications" : "Notifications", | ||
311 | "settings.service.form.icon" : "Custom icon", | ||
312 | "settings.service.form.iconDelete" : "Delete", | ||
313 | "settings.service.form.iconUpload" : "Drop your image, or click here", | ||
314 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
318 | "settings.service.form.name" : "Name", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Save service", | ||
328 | "settings.service.form.tabHosted" : "Hosted", | ||
329 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
330 | "settings.service.form.team" : "Team", | ||
331 | "settings.service.form.useHostedService" : "Use the hosted {name} service.", | ||
332 | "settings.service.form.yourServices" : "Your services", | ||
333 | "settings.services.deletedInfo" : "Service has been deleted", | ||
334 | "settings.services.discoverServices" : "Discover services", | ||
335 | "settings.services.headline" : "Your services", | ||
336 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
339 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
341 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Team", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Company", | ||
349 | "settings.user.form.accountType.individual" : "Individual", | ||
350 | "settings.user.form.accountType.label" : "Account type", | ||
351 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
352 | "settings.user.form.currentPassword" : "Current password", | ||
353 | "settings.user.form.email" : "Email", | ||
354 | "settings.user.form.firstname" : "First Name", | ||
355 | "settings.user.form.lastname" : "Last Name", | ||
356 | "settings.user.form.newPassword" : "New password", | ||
357 | "settings.workspace.add.form.name" : "Name", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "Name", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
368 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Add new service", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Disable notifications & audio", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Settings", | ||
382 | "sidebar.unmuteApp" : "Enable notifications & audio", | ||
383 | "signup.email.label" : "Email Address", | ||
384 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
385 | "signup.firstname.label" : "First Name", | ||
386 | "signup.headline" : "Sign up", | ||
387 | "signup.lastname.label" : "Last Name", | ||
388 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
389 | "signup.legal.privacy" : "Privacy Statement", | ||
390 | "signup.legal.terms" : "Terms of service", | ||
391 | "signup.link.login" : "Already have an account, sign in?", | ||
392 | "signup.password.label" : "Password", | ||
393 | "signup.submit.label" : "Create account", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
406 | "subscriptionPopup.buttonDone" : "Done", | ||
407 | "tabs.item.deleteService" : "Delete service", | ||
408 | "tabs.item.disableAudio" : "Disable audio", | ||
409 | "tabs.item.disableNotifications" : "Disable notifications", | ||
410 | "tabs.item.disableService" : "Disable service", | ||
411 | "tabs.item.edit" : "Edit", | ||
412 | "tabs.item.enableAudio" : "Enable audio", | ||
413 | "tabs.item.enableNotification" : "Enable notifications", | ||
414 | "tabs.item.enableService" : "Enable service", | ||
415 | "tabs.item.reload" : "Reload", | ||
416 | "validation.email" : "{field} is not valid", | ||
417 | "validation.minLength" : "{field} should be at least {length} characters long", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} is required", | ||
420 | "validation.url" : "{field} is not a valid URL", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Reload", | ||
426 | "welcome.loginButton" : "Login to your account", | ||
427 | "welcome.signupButton" : "Create a free account", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "All services", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/hi.json b/src/i18n/locales/hi.json new file mode 100644 index 000000000..5954daa86 --- /dev/null +++ b/src/i18n/locales/hi.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "पुन: लोड करें", | ||
3 | "app.errorHandler.headline" : "कुछ तो गड़बड़ है, दया", | ||
4 | "connectionLostBanner.cta" : "सेवा पुनः लोड करें", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "फ्रांज़ के संस्करण {version} में बदलाव:", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "फ्रांज़ {seconds} सेकंड में जारी रहेगा।", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "खाते का उन्नयन करें", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "ईमेल के रूप में भेजें", | ||
33 | "feature.shareFranz.action.facebook" : "फेसबुक पर सांझा करें", | ||
34 | "feature.shareFranz.action.twitter" : "ट्विटर पर सांझा करें", | ||
35 | "feature.shareFranz.headline" : "फ्रांज़ एक साथ बेहतर है!", | ||
36 | "feature.shareFranz.shareText.email" : "मैंने फ्रांज में {count} सेवाएं जोड़ी हैं! व्हाट्सएप, मैसेंजर, स्लैक, स्काइप के लिए मुफ्त ऐप www.meetfranz.com पर प्राप्त करें", | ||
37 | "feature.shareFranz.shareText.twitter" : "मैंने फ्रांज में {count} सेवाएं जोड़ी हैं! व्हाट्सएप, मैसेंजर, स्लैक, स्काइप के लिए मुफ्त ऐप www.meetfranz.com पर प्राप्त करें \/ cc @FranzMessenger", | ||
38 | "feature.shareFranz.text" : "अपने दोस्तों और सहकर्मियों को बताएं की फ्रांज़ कितना बढ़िया है और हमें इस बात को फैलाने में मदद करें।", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "फ्रांज़ ऑनलाइन सेवाओं से कनेक्ट नहीं किया जा सका", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "आप इंटरनेट से नहीं जुड़े हैं।", | ||
52 | "global.spellchecker.useDefault" : "सिस्टम डिफ़ॉल्ट ({default}) का उपयोग करें", | ||
53 | "global.spellchecking.autodetect" : "स्वचालित रूप से भाषा का पता लगाएं", | ||
54 | "global.spellchecking.autodetect.short" : "स्वचालित", | ||
55 | "global.spellchecking.language" : "वर्तनी जाँच भाषा", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "अपनी फ्रांज़ 4 की सेवाओं का आयात करें", | ||
58 | "import.notSupportedHeadline" : "सेवाएं अभी तक फ्रांज़ 5 में समर्थित नहीं हैं", | ||
59 | "import.skip.label" : "मैं स्वयं सेवाएं जोड़ना चाहता हूं", | ||
60 | "import.submit.label" : "सेवाएं आयात करें", | ||
61 | "infobar.buttonChangelog" : "क्या-क्या नया है?", | ||
62 | "infobar.buttonInstallUpdate" : "पुनरारंभ करें, और अद्यतन स्थापित करें", | ||
63 | "infobar.buttonReloadServices" : "सेवाओं को फिर से लोड करें", | ||
64 | "infobar.requiredRequestsFailed" : "सेवाएं और उपयोगकर्ताओं की जानकारी लोड नहीं हो सकी", | ||
65 | "infobar.servicesUpdated" : "आपकी सेवाएं अपडेट कर दी गई हैं।", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "फ्रांज़ के लिए एक नया अपडेट उपलब्ध है।", | ||
68 | "invite.email.label" : "ईमेल पता", | ||
69 | "invite.headline.friends" : "अपने दोस्तों या सहयोगियों में से 3 को आमंत्रित करें", | ||
70 | "invite.name.label" : "नाम", | ||
71 | "invite.skip.label" : "मैं इसे बाद में करना चाहता हूं", | ||
72 | "invite.submit.label" : "आमंत्रण भेजें", | ||
73 | "invite.successInfo" : "निमंत्रण सफलतापूर्वक भेजे गए", | ||
74 | "login.email.label" : "ईमेल पता", | ||
75 | "login.headline" : "लॉग इन करें", | ||
76 | "login.invalidCredentials" : "ईमेल या पासवर्ड मान्य नहीं है", | ||
77 | "login.link.password" : "पासवर्ड रीसेट", | ||
78 | "login.link.signup" : "एक नि: शुल्क खाता बनाए", | ||
79 | "login.password.label" : "पासवर्ड", | ||
80 | "login.serverLogout" : "आपका सत्र समाप्त हो गया है, कृपया फिर से लॉगिन करें।", | ||
81 | "login.submit.label" : "लॉग इन करें", | ||
82 | "login.tokenExpired" : "आपका सत्र समाप्त हो गया है, कृपया फिर से लॉगिन करें।", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "फ्रांज के बारे में", | ||
86 | "menu.app.announcement" : "नया क्या है?", | ||
87 | "menu.app.checkForUpdates" : "अद्यतन के लिए जाँचें...", | ||
88 | "menu.app.hide" : "छिपाएं ", | ||
89 | "menu.app.hideOthers" : "दूसरों को छिपाओ", | ||
90 | "menu.app.quit" : "छोड़ो", | ||
91 | "menu.app.settings" : "सेटिंग्स", | ||
92 | "menu.app.unhide" : "सामने लाएँ", | ||
93 | "menu.edit" : "संपादित करें", | ||
94 | "menu.edit.copy" : "प्रतिलिपि", | ||
95 | "menu.edit.cut" : "काटो", | ||
96 | "menu.edit.delete" : "मिटाओ", | ||
97 | "menu.edit.emojiSymbols" : "इमोजी और प्रतीक", | ||
98 | "menu.edit.paste" : "चिपकाएं", | ||
99 | "menu.edit.pasteAndMatchStyle" : "पेस्ट और मैच स्टाइल", | ||
100 | "menu.edit.redo" : "फिर से करना", | ||
101 | "menu.edit.selectAll" : "सभी का चयन करे", | ||
102 | "menu.edit.speech" : "भाषण", | ||
103 | "menu.edit.startDictation" : "श्रुतलेख शुरू करें", | ||
104 | "menu.edit.startSpeaking" : "बोलना शुरू करें", | ||
105 | "menu.edit.stopSpeaking" : "बोलना बंद करें", | ||
106 | "menu.edit.undo" : "पूर्ववत् करें", | ||
107 | "menu.file" : "फ़ाइल", | ||
108 | "menu.help" : "मदद", | ||
109 | "menu.help.changelog" : "चेंजलॉग", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "अधिक जानें", | ||
114 | "menu.help.privacy" : "प्राइवेसी स्टेटमेंट", | ||
115 | "menu.help.support" : "सहयोग", | ||
116 | "menu.help.tos" : "सेवा की शर्तें", | ||
117 | "menu.services" : "सेवाएं", | ||
118 | "menu.services.activatePreviousService" : "पिछली सेवा को सक्रिय करें", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "अगली सेवा सक्रिय करें", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "दृश्य", | ||
125 | "menu.view.enterFullScreen" : "पूर्ण स्क्रीन में प्रवेश", | ||
126 | "menu.view.exitFullScreen" : "पूर्ण स्क्रीन से निकलें", | ||
127 | "menu.view.reloadFranz" : "फ्रांज़ को पुनः लोड", | ||
128 | "menu.view.reloadService" : "सेवा पुनः लोड करें", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "वास्तविक आकार", | ||
131 | "menu.view.toggleDevTools" : "डेवलपर टूल टॉगल करें", | ||
132 | "menu.view.toggleFullScreen" : "फुलस्क्रीन टॉगल करें", | ||
133 | "menu.view.toggleServiceDevTools" : "सेवा डेवलपर उपकरण टॉगल करें", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "बड़ा करें", | ||
136 | "menu.view.zoomOut" : "छोटा करें", | ||
137 | "menu.window" : "खिड़की", | ||
138 | "menu.window.close" : "बंद करें", | ||
139 | "menu.window.minimize" : "न्यूनतम करें", | ||
140 | "menu.workspaces" : "कार्यस्थान", | ||
141 | "menu.workspaces.addNewWorkspace" : "नया कार्यक्षेत्र जोड़ें ...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "कार्यक्षेत्र दराज को बंद करें", | ||
143 | "menu.workspaces.defaultWorkspace" : "सभी सेवाएं", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "कार्यक्षेत्र दराज खोलें", | ||
145 | "password.email.label" : "ईमेल पता", | ||
146 | "password.headline" : "पासवर्ड रीसेट", | ||
147 | "password.link.login" : "अपने अकाउंट में लॉग इन करें", | ||
148 | "password.link.signup" : "एक नि: शुल्क खाता बनाए", | ||
149 | "password.noUser" : "उस ईमेल पते वाला कोई उपयोगकर्ता नहीं मिला", | ||
150 | "password.submit.label" : "जमा करें", | ||
151 | "password.successInfo" : "कृपया अपनी ईमेल देखें", | ||
152 | "premiumFeature.button.upgradeAccount" : "खाते का उन्नयन करें", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "कार्यस्थान", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "{name} को पुनः लोड करें ", | ||
191 | "service.crashHandler.autoReload" : "{name} को {seconds} सेकंड में स्वचालित रूप से पुनर्स्थापित करने की कोशिश जारी है", | ||
192 | "service.crashHandler.headline" : "अरे नहीं!", | ||
193 | "service.crashHandler.text" : "{name} में त्रुटि हुई है।", | ||
194 | "service.disabledHandler.action" : "{name} सक्षम करें", | ||
195 | "service.disabledHandler.headline" : "{name} अक्षम है", | ||
196 | "service.errorHandler.action" : "{name} को पुनः लोड करें", | ||
197 | "service.errorHandler.editAction" : "{name} को संपादित करें", | ||
198 | "service.errorHandler.headline" : "अरे नहीं!", | ||
199 | "service.errorHandler.message" : "त्रुटि", | ||
200 | "service.errorHandler.text" : "{name} लोड करने में विफलता हुई ", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "लोड हो रहा है", | ||
207 | "services.getStarted" : "आरंभ करें", | ||
208 | "services.welcome" : "फ्रांज़ में आपका स्वागत है", | ||
209 | "settings.account.account.editButton" : "खाता संपादित करें", | ||
210 | "settings.account.accountType.basic" : "मूल खाता", | ||
211 | "settings.account.accountType.premium" : "प्रीमियम समर्थक खाता", | ||
212 | "settings.account.buttonSave" : "प्रोफ़ाइल अपडेट करें", | ||
213 | "settings.account.deleteAccount" : "खाता मिटाएं", | ||
214 | "settings.account.deleteEmailSent" : "आपको अपने खाते को हटाने की पुष्टि करने के लिए एक लिंक प्राप्त हुआ है। आपके खाते और डेटा को पुनर्स्थापित नहीं किया जा सकता है!", | ||
215 | "settings.account.deleteInfo" : "यदि आपको अपने फ्रांज़ खाते की आवश्यकता नहीं है, तो आप यहां अपना खाता और संबंधित डेटा हटा सकते हैं।", | ||
216 | "settings.account.headline" : "खाता", | ||
217 | "settings.account.headlineAccount" : "खाते की जानकारी", | ||
218 | "settings.account.headlineDangerZone" : "खतरे का क्षेत्र", | ||
219 | "settings.account.headlineInvoices" : "चालान", | ||
220 | "settings.account.headlinePassword" : "पासवर्ड बदलें", | ||
221 | "settings.account.headlineProfile" : "प्रोफ़ाइल अपडेट करें", | ||
222 | "settings.account.headlineSubscription" : "आपकी सदस्यता", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "डाउनलोड", | ||
226 | "settings.account.manageSubscription.label" : "अपनी सदस्यता प्रबंधित करें", | ||
227 | "settings.account.successInfo" : "आपके परिवर्तनों को सहेजा गया है", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "फिर कोशिश करें", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "फिर कोशिश करें", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "उपयोगकर्ता की जानकारी लोड नहीं हो सकी", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "कैश को साफ़ करें", | ||
237 | "settings.app.buttonInstallUpdate" : "पुनरारंभ करें, और अद्यतन स्थापित करें", | ||
238 | "settings.app.buttonSearchForUpdate" : "अद्यतन के लिए खोजें", | ||
239 | "settings.app.cacheInfo" : "फ्रांज़ कैश वर्तमान में आपके डिस्क का {size} उपयोग कर रहा है।", | ||
240 | "settings.app.currentVersion" : "वर्तमान संस्करण:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "पृष्ठभूमि में खोलें", | ||
242 | "settings.app.form.autoLaunchOnStart" : "कंप्यूटर शुरू होते ही क्या फ्रांज़ भी लॉन्च होना चाहिए?", | ||
243 | "settings.app.form.beta" : "बीटा संस्करण शामिल करें", | ||
244 | "settings.app.form.darkMode" : "डार्क मोड सक्षम करें", | ||
245 | "settings.app.form.enableGPUAcceleration" : "GPU त्वरण सक्षम करें", | ||
246 | "settings.app.form.enableSpellchecking" : "शब्द विन्यास सक्रिय करो", | ||
247 | "settings.app.form.enableSystemTray" : "फ्रांज़ को सिस्टम ट्रे में दिखाएं", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "भाषा", | ||
251 | "settings.app.form.minimizeToSystemTray" : "फ्रांज़ को सिस्टम ट्रे में न्यूनतम करें", | ||
252 | "settings.app.form.runInBackground" : "खिड़की बंद करते समय फ्रांज को पृष्ठभूमि में रखें", | ||
253 | "settings.app.form.showDisabledServices" : "अक्षम सेवाओं टैब प्रदर्शित करें", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "जब सूचनाएं अक्षम हों तो अपठित संदेश बैज दिखाएं", | ||
255 | "settings.app.headline" : "सेटिंग्स", | ||
256 | "settings.app.headlineAdvanced" : "विकसित", | ||
257 | "settings.app.headlineAppearance" : "रूप", | ||
258 | "settings.app.headlineGeneral" : "सामान्य", | ||
259 | "settings.app.headlineLanguage" : "भाषा", | ||
260 | "settings.app.headlineUpdates" : "अद्यतन", | ||
261 | "settings.app.languageDisclaimer" : "आधिकारिक अनुवाद अंग्रेजी और जर्मन में हैं। अन्य सभी भाषाएँ समुदाय आधारित अनुवाद हैं।", | ||
262 | "settings.app.restartRequired" : "परिवर्तनों को पुनरारंभ की आवश्यकता है", | ||
263 | "settings.app.subheadlineCache" : "कैश", | ||
264 | "settings.app.translationHelp" : "आपकी भाषा में फ्रांज़ का अनुवाद करने में हमारी मदद करें।", | ||
265 | "settings.app.updateStatusAvailable" : "अद्यतन उपलब्ध है, डाउनलोड हो रहा है ...", | ||
266 | "settings.app.updateStatusSearching" : "अद्यतन की खोज जारी है", | ||
267 | "settings.app.updateStatusUpToDate" : "आप फ्रांज़ के नवीनतम संस्करण का उपयोग कर रहे हैं", | ||
268 | "settings.invite.headline" : "मित्रों को आमंत्रित करें", | ||
269 | "settings.navigation.account" : "खाता", | ||
270 | "settings.navigation.availableServices" : "उपलब्ध सेवाएं", | ||
271 | "settings.navigation.inviteFriends" : "मित्रों को आमंत्रित करें", | ||
272 | "settings.navigation.logout" : "लॉग आउट", | ||
273 | "settings.navigation.settings" : "सेटिंग्स", | ||
274 | "settings.navigation.team" : "टीम का प्रबंधन करें", | ||
275 | "settings.navigation.yourServices" : "आपकी सेवाएं", | ||
276 | "settings.navigation.yourWorkspaces" : "आपके कार्यक्षेत्र", | ||
277 | "settings.recipes.all" : "सभी सेवाएं", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "उपलब्ध सेवाएं", | ||
286 | "settings.recipes.missingService" : "क्या कोई सेवा गुम है?", | ||
287 | "settings.recipes.mostPopular" : "सबसे लोकप्रिय", | ||
288 | "settings.recipes.nothingFound" : "क्षमा करें, लेकिन आपके खोज शब्द से किसी भी सेवा का मिलान नहीं हुआ।", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "सेवा सफलतापूर्वक जोड़ी गई", | ||
290 | "settings.searchService" : "खोज सेवा", | ||
291 | "settings.service.error.goBack" : "सेवाओं पर वापस", | ||
292 | "settings.service.error.headline" : "त्रुटि", | ||
293 | "settings.service.error.message" : "सेवा की रेसिपी लोड नहीं हो पायी।", | ||
294 | "settings.service.form.addServiceHeadline" : "{name} जोड़ें", | ||
295 | "settings.service.form.availableServices" : "उपलब्ध सेवाएं", | ||
296 | "settings.service.form.customUrl" : "कस्टम सर्वर", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "स्वयं की होस्ट की गई सेवाओं को जोड़ने के लिए, आपको फ्रांज प्रीमियम सपोर्टर अकाउंट की आवश्यकता है।", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "अपने खाते को अपग्रेड करें", | ||
299 | "settings.service.form.customUrlValidationError" : "कस्टम {name} सर्वर का मान्यकरण नहीं किया जा सका।", | ||
300 | "settings.service.form.deleteButton" : "सेवा हटाएँ", | ||
301 | "settings.service.form.editServiceHeadline" : "{name} संपादित करें", | ||
302 | "settings.service.form.enableAudio" : "ऑडियो सक्षम करें", | ||
303 | "settings.service.form.enableBadge" : "अपठित संदेश बैज दिखाएं", | ||
304 | "settings.service.form.enableDarkMode" : "डार्क मोड सक्षम करें", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "सूचनाएँ सक्षम करें", | ||
307 | "settings.service.form.enableService" : "सेवा सक्षम करें", | ||
308 | "settings.service.form.headlineBadges" : "अपठित संदेश बैज", | ||
309 | "settings.service.form.headlineGeneral" : "सामान्य", | ||
310 | "settings.service.form.headlineNotifications" : "सूचनाएँ", | ||
311 | "settings.service.form.icon" : "कस्टम आइकॉन", | ||
312 | "settings.service.form.iconDelete" : "मिटाएँ", | ||
313 | "settings.service.form.iconUpload" : "अपना फ़ोटो छोड़ें, या यहाँ क्लिक करें", | ||
314 | "settings.service.form.indirectMessageInfo" : "आपको एक चैनल में सभी नए संदेशों के बारे में सूचित किया जाएगा, न केवल @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "सभी नए संदेशों के लिए संदेश बैज दिखाएं", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "अक्षम होने पर, सभी सूचना ध्वनियाँ और ऑडियो प्लेबैक मौन रहेंगे ", | ||
318 | "settings.service.form.name" : "नाम", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS प्रॉक्सी सेटिंग्स", | ||
320 | "settings.service.form.proxy.host" : "प्रॉक्सी होस्ट \/ आईपी", | ||
321 | "settings.service.form.proxy.info" : "प्रॉक्सी सेटिंग्स फ्रांज़ सर्वर के साथ सिंक नहीं होंगी।", | ||
322 | "settings.service.form.proxy.isEnabled" : "प्रॉक्सी का प्रयोग करें", | ||
323 | "settings.service.form.proxy.password" : "पासवर्ड (वैकल्पिक)", | ||
324 | "settings.service.form.proxy.port" : "पोर्ट", | ||
325 | "settings.service.form.proxy.restartInfo" : "प्रॉक्सी सेटिंग बदलने के बाद फ्रांज़ को पुनः आरंभ करें।", | ||
326 | "settings.service.form.proxy.user" : "उपयोगकर्ता (वैकल्पिक)", | ||
327 | "settings.service.form.saveButton" : "इस सेवा को सहेजें", | ||
328 | "settings.service.form.tabHosted" : "होस्ट किया गया", | ||
329 | "settings.service.form.tabOnPremise" : "स्वयं द्वारा होस्ट किया हुआ", | ||
330 | "settings.service.form.team" : "टीम", | ||
331 | "settings.service.form.useHostedService" : "होस्ट किये हुए {name} सेवा का उपयोग करें।", | ||
332 | "settings.service.form.yourServices" : "आपकी सेवाएं", | ||
333 | "settings.services.deletedInfo" : "सेवा को हटा दिया गया है", | ||
334 | "settings.services.discoverServices" : "सेवाओं की खोज करें", | ||
335 | "settings.services.headline" : "आपकी सेवाएं", | ||
336 | "settings.services.noServicesAdded" : "आपने अभी तक कोई सेवाएं नहीं जोड़ी है।", | ||
337 | "settings.services.servicesRequestFailed" : "आपकी सेवाएं लोड नहीं हो सकीं", | ||
338 | "settings.services.tooltip.isDisabled" : "सेवा अक्षम है", | ||
339 | "settings.services.tooltip.isMuted" : "सभी ध्वनियाँ मौन हैं", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "सूचनाएं अक्षम हैं", | ||
341 | "settings.services.updatedInfo" : "आपके परिवर्तनों को सहेजा गया है", | ||
342 | "settings.team.contentHeadline" : "टीमों के लिए फ्रांज़", | ||
343 | "settings.team.copy" : "Franz for Teams आपको ईमेल आमंत्रण भेजकर और अपने खाते की प्राथमिकताओं में उनकी सदस्यता को प्रबंधित करके अपनी टीम में सह-कार्यकर्ताओं को आमंत्रित करने का विकल्प देता है। हर टीम के सदस्य के लिए अलग-अलग सदस्यताएँ सेट करने में समय बर्बाद न करें, कई चालान और विभिन्न बिलिंग चक्रों के बारे में भूल जाएं - एक टीम सभी के लिए !", | ||
344 | "settings.team.headline" : "टीम", | ||
345 | "settings.team.intro" : "आप और आपकी टीम फ्रांज़ का उपयोग करते हैं? अब आप सभी सहयोगियों, दोस्तों या परिवार के सदस्यों के लिए प्रीमियम सदस्यता का प्रबंधन कर सकते हैं, जैसा कि आप चाहते हैं, सभी एक खाते के भीतर से।", | ||
346 | "settings.team.manageAction" : "अपनी टीम को meetfranz.com पर प्रबंधित करें", | ||
347 | "settings.team.upgradeAction" : "अपने खाते को अपग्रेड करें", | ||
348 | "settings.user.form.accountType.company" : "कंपनी", | ||
349 | "settings.user.form.accountType.individual" : "व्यक्तिगत खाता", | ||
350 | "settings.user.form.accountType.label" : "खाते का प्रकार", | ||
351 | "settings.user.form.accountType.non-profit" : "गैर लाभ", | ||
352 | "settings.user.form.currentPassword" : "मौजूदा पासवर्ड", | ||
353 | "settings.user.form.email" : "ईमेल", | ||
354 | "settings.user.form.firstname" : "पहला नाम", | ||
355 | "settings.user.form.lastname" : "उपनाम", | ||
356 | "settings.user.form.newPassword" : "नया पासवर्ड", | ||
357 | "settings.workspace.add.form.name" : "नाम", | ||
358 | "settings.workspace.add.form.submitButton" : "कार्यक्षेत्र बनाएँ", | ||
359 | "settings.workspace.form.buttonDelete" : "कार्यक्षेत्र हटाएं", | ||
360 | "settings.workspace.form.buttonSave" : "कार्यक्षेत्र सहेजें", | ||
361 | "settings.workspace.form.name" : "नाम", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "इस कार्यक्षेत्र में सेवाएँ", | ||
363 | "settings.workspace.form.yourWorkspaces" : "आपके कार्यक्षेत्र", | ||
364 | "settings.workspaces.deletedInfo" : "कार्यक्षेत्र हटा दिया गया है", | ||
365 | "settings.workspaces.headline" : "आपके कार्यक्षेत्र", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "आपने अभी तक कोई कार्यस्थान नहीं जोड़ा है।", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "फिर कोशिश करें", | ||
368 | "settings.workspaces.updatedInfo" : "आपके परिवर्तनों को सहेजा गया है", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "कम अधिक है: फ्रांज़ कार्यस्थानों का परिचय", | ||
370 | "settings.workspaces.workspaceFeatureInfo" : "फ्रांज वर्कस्पेस आपको इस बात पर ध्यान केंद्रित करने देता है कि अभी क्या महत्वपूर्ण है। सेवाओं के विभिन्न समूहों को तैयार करें और किसी भी समय उनके बीच आसानी से स्विच करें। आप यह तय करते हैं कि आपको कब और कहाँ किन सेवाओं की ज़रूरत है, इसलिए हम आपको अपने खेल में शीर्ष पर बने रहने में मदद कर सकते हैं - या जब भी आप चाहें, आसानी से काम बंद कर सकते हैं।", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "आपके कार्यस्थानों को लोड नहीं किया जा सका", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "नई सेवा जोड़ें", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "कार्यक्षेत्र दराज बंद करें", | ||
378 | "sidebar.muteApp" : "सूचनाएं और ऑडियो अक्षम करें", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "कार्यक्षेत्र दराज खोलें", | ||
381 | "sidebar.settings" : "सेटिंग्स", | ||
382 | "sidebar.unmuteApp" : "सूचनाएं और ऑडियो सक्षम करें", | ||
383 | "signup.email.label" : "ईमेल पता", | ||
384 | "signup.emailDuplicate" : "उस ईमेल पते वाला उपयोगकर्ता पहले से मौजूद है", | ||
385 | "signup.firstname.label" : "पहला नाम", | ||
386 | "signup.headline" : "साइन अप करें", | ||
387 | "signup.lastname.label" : "उपनाम", | ||
388 | "signup.legal.info" : "फ्रांज़ में खाता बनाकर आप इसे स्वीकार करते हैं", | ||
389 | "signup.legal.privacy" : "प्राइवेसी स्टेटमेंट", | ||
390 | "signup.legal.terms" : "सेवा की शर्तें", | ||
391 | "signup.link.login" : "पहले से ही एक खाता है? लॉग इन करें।", | ||
392 | "signup.password.label" : "पासवर्ड", | ||
393 | "signup.submit.label" : "खता खोलें", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "रद्द करें", | ||
406 | "subscriptionPopup.buttonDone" : "संपन्न", | ||
407 | "tabs.item.deleteService" : "सेवा हटाएँ", | ||
408 | "tabs.item.disableAudio" : "ऑडियो अक्षम करें", | ||
409 | "tabs.item.disableNotifications" : "ऑडियो अक्षम करें", | ||
410 | "tabs.item.disableService" : "सेवा अक्षम करें", | ||
411 | "tabs.item.edit" : "संपादित करें", | ||
412 | "tabs.item.enableAudio" : "ऑडियो सक्षम करें", | ||
413 | "tabs.item.enableNotification" : "सूचनाएँ सक्षम करें ", | ||
414 | "tabs.item.enableService" : "सेवा सक्षम करें", | ||
415 | "tabs.item.reload" : "पुन: लोड करें", | ||
416 | "validation.email" : "{field} मान्य नहीं है", | ||
417 | "validation.minLength" : "{field} कम से कम {length} अक्षर लंबे होने चाहिए", | ||
418 | "validation.oneRequired" : "कम से कम एक की आवश्यकता है", | ||
419 | "validation.required" : "{field} की आवश्यकता है", | ||
420 | "validation.url" : "{field} एक मान्य URL नहीं है", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "पुन: लोड करें", | ||
426 | "welcome.loginButton" : "अपने खाते में प्रवेश करें", | ||
427 | "welcome.signupButton" : "एक नि: शुल्क खाता बनाए", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "नया कार्यक्षेत्र जोड़ें", | ||
429 | "workspaceDrawer.allServices" : "सभी सेवाएं", | ||
430 | "workspaceDrawer.headline" : "कार्यस्थान", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "संपादन करें", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "अभी तक कोई सेवा नहीं जोड़ी गई है", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "अपना पहला कार्यक्षेत्र बनाएँ", | ||
434 | "workspaceDrawer.proFeatureBadge" : "प्रीमियम सुविधा", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "प्रीमियम खाता पुनः सक्रिय करें", | ||
436 | "workspaceDrawer.workspaceFeatureInfo" : "<p>फ्रांज वर्कस्पेस आपको इस बात पर ध्यान केंद्रित करने देता है कि अभी क्या महत्वपूर्ण है। सेवाओं के विभिन्न समूहों को तैयार करें और किसी भी समय उनके बीच आसानी से स्विच करें।<\/p><p>आप यह तय करते हैं कि आपको कब और कहाँ किन सेवाओं की ज़रूरत है, इसलिए हम आपको अपने खेल में शीर्ष पर बने रहने में मदद कर सकते हैं - या जब भी आप चाहें, आसानी से काम बंद कर सकते हैं।<\/p>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "कार्यस्थान सेटिंग्स संपादित करें", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "इसमें स्विच हो रहा है-" | ||
439 | } | ||
diff --git a/src/i18n/locales/kk.json b/src/i18n/locales/kk.json new file mode 100644 index 000000000..078973fe8 --- /dev/null +++ b/src/i18n/locales/kk.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Reload", | ||
3 | "app.errorHandler.headline" : "Something went wrong", | ||
4 | "connectionLostBanner.cta" : "Reload Service", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Upgrade account", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Send as email", | ||
33 | "feature.shareFranz.action.facebook" : "Share on Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Share on Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "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", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "Can't connect to Franz online services", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "You are not connected to the internet.", | ||
52 | "global.spellchecker.useDefault" : "Use System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Detect language automatically", | ||
54 | "global.spellchecking.autodetect.short" : "Automatic", | ||
55 | "global.spellchecking.language" : "Spell checking language", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "Import your Franz 4 services", | ||
58 | "import.notSupportedHeadline" : "Services not yet supported in Franz 5", | ||
59 | "import.skip.label" : "I want to add services manually", | ||
60 | "import.submit.label" : "Import services", | ||
61 | "infobar.buttonChangelog" : "What is new?", | ||
62 | "infobar.buttonInstallUpdate" : "Restart & install update", | ||
63 | "infobar.buttonReloadServices" : "Reload services", | ||
64 | "infobar.requiredRequestsFailed" : "Could not load services and user information", | ||
65 | "infobar.servicesUpdated" : "Your services have been updated.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "A new update for Franz is available.", | ||
68 | "invite.email.label" : "Email address", | ||
69 | "invite.headline.friends" : "Invite 3 of your friends or colleagues", | ||
70 | "invite.name.label" : "Name", | ||
71 | "invite.skip.label" : "I want to do this later", | ||
72 | "invite.submit.label" : "Send invites", | ||
73 | "invite.successInfo" : "Invitations sent successfully", | ||
74 | "login.email.label" : "Email address", | ||
75 | "login.headline" : "Sign in", | ||
76 | "login.invalidCredentials" : "Email or password not valid", | ||
77 | "login.link.password" : "Reset password", | ||
78 | "login.link.signup" : "Create a free account", | ||
79 | "login.password.label" : "Password", | ||
80 | "login.serverLogout" : "Your session expired, please login again.", | ||
81 | "login.submit.label" : "Sign in", | ||
82 | "login.tokenExpired" : "Your session expired, please login again.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "About Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Check for updates", | ||
88 | "menu.app.hide" : "Hide", | ||
89 | "menu.app.hideOthers" : "Hide Others", | ||
90 | "menu.app.quit" : "Quit", | ||
91 | "menu.app.settings" : "Settings", | ||
92 | "menu.app.unhide" : "Unhide", | ||
93 | "menu.edit" : "Edit", | ||
94 | "menu.edit.copy" : "Copy", | ||
95 | "menu.edit.cut" : "Cut", | ||
96 | "menu.edit.delete" : "Delete", | ||
97 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | ||
98 | "menu.edit.paste" : "Paste", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | ||
100 | "menu.edit.redo" : "Redo", | ||
101 | "menu.edit.selectAll" : "Select All", | ||
102 | "menu.edit.speech" : "Speech", | ||
103 | "menu.edit.startDictation" : "Start Dictation", | ||
104 | "menu.edit.startSpeaking" : "Start Speaking", | ||
105 | "menu.edit.stopSpeaking" : "Stop Speaking", | ||
106 | "menu.edit.undo" : "Undo", | ||
107 | "menu.file" : "File", | ||
108 | "menu.help" : "Help", | ||
109 | "menu.help.changelog" : "Changelog", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Learn More", | ||
114 | "menu.help.privacy" : "Privacy Statement", | ||
115 | "menu.help.support" : "Support", | ||
116 | "menu.help.tos" : "Terms of Service", | ||
117 | "menu.services" : "Services", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "View", | ||
125 | "menu.view.enterFullScreen" : "Enter Full Screen", | ||
126 | "menu.view.exitFullScreen" : "Exit Full Screen", | ||
127 | "menu.view.reloadFranz" : "Reload Franz", | ||
128 | "menu.view.reloadService" : "Reload Service", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Actual Size", | ||
131 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | ||
132 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | ||
133 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Zoom In", | ||
136 | "menu.view.zoomOut" : "Zoom Out", | ||
137 | "menu.window" : "Window", | ||
138 | "menu.window.close" : "Close", | ||
139 | "menu.window.minimize" : "Minimize", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "All services", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "Email address", | ||
146 | "password.headline" : "Reset password", | ||
147 | "password.link.login" : "Sign in to your account", | ||
148 | "password.link.signup" : "Create a free account", | ||
149 | "password.noUser" : "No user with that email address was found", | ||
150 | "password.submit.label" : "Submit", | ||
151 | "password.successInfo" : "Please check your email", | ||
152 | "premiumFeature.button.upgradeAccount" : "Upgrade account", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "Reload {name}", | ||
191 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
192 | "service.crashHandler.headline" : "Oh no!", | ||
193 | "service.crashHandler.text" : "{name} has caused an error.", | ||
194 | "service.disabledHandler.action" : "Enable {name}", | ||
195 | "service.disabledHandler.headline" : "{name} is disabled", | ||
196 | "service.errorHandler.action" : "Reload {name}", | ||
197 | "service.errorHandler.editAction" : "Edit {name}", | ||
198 | "service.errorHandler.headline" : "Oh no!", | ||
199 | "service.errorHandler.message" : "Error", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "Get started", | ||
208 | "services.welcome" : "Welcome to Franz", | ||
209 | "settings.account.account.editButton" : "Edit account", | ||
210 | "settings.account.accountType.basic" : "Basic Account", | ||
211 | "settings.account.accountType.premium" : "Premium Supporter Account", | ||
212 | "settings.account.buttonSave" : "Update profile", | ||
213 | "settings.account.deleteAccount" : "Delete account", | ||
214 | "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | ||
215 | "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", | ||
216 | "settings.account.headline" : "Account", | ||
217 | "settings.account.headlineAccount" : "Account information", | ||
218 | "settings.account.headlineDangerZone" : "Danger Zone", | ||
219 | "settings.account.headlineInvoices" : "Invoices", | ||
220 | "settings.account.headlinePassword" : "Change password", | ||
221 | "settings.account.headlineProfile" : "Update profile", | ||
222 | "settings.account.headlineSubscription" : "Your subscription", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Download", | ||
226 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
227 | "settings.account.successInfo" : "Your changes have been saved", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Try again", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Clear cache", | ||
237 | "settings.app.buttonInstallUpdate" : "Restart & install update", | ||
238 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
239 | "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", | ||
240 | "settings.app.currentVersion" : "Current version:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
243 | "settings.app.form.beta" : "Include beta versions", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
246 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
247 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Language", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
252 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
253 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", | ||
255 | "settings.app.headline" : "Settings", | ||
256 | "settings.app.headlineAdvanced" : "Advanced", | ||
257 | "settings.app.headlineAppearance" : "Appearance", | ||
258 | "settings.app.headlineGeneral" : "General", | ||
259 | "settings.app.headlineLanguage" : "Language", | ||
260 | "settings.app.headlineUpdates" : "Updates", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Changes require restart", | ||
263 | "settings.app.subheadlineCache" : "Cache", | ||
264 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
265 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
266 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
267 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
268 | "settings.invite.headline" : "Invite Friends", | ||
269 | "settings.navigation.account" : "Account", | ||
270 | "settings.navigation.availableServices" : "Available services", | ||
271 | "settings.navigation.inviteFriends" : "Invite Friends", | ||
272 | "settings.navigation.logout" : "Logout", | ||
273 | "settings.navigation.settings" : "Settings", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Your services", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "All services", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Available services", | ||
286 | "settings.recipes.missingService" : "Missing a service?", | ||
287 | "settings.recipes.mostPopular" : "Most popular", | ||
288 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
290 | "settings.searchService" : "Search service", | ||
291 | "settings.service.error.goBack" : "Back to services", | ||
292 | "settings.service.error.headline" : "Error", | ||
293 | "settings.service.error.message" : "Could not load service recipe.", | ||
294 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
295 | "settings.service.form.availableServices" : "Available services", | ||
296 | "settings.service.form.customUrl" : "Custom server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
299 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
300 | "settings.service.form.deleteButton" : "Delete service", | ||
301 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
302 | "settings.service.form.enableAudio" : "Enable audio", | ||
303 | "settings.service.form.enableBadge" : "Show unread message badges", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Enable notifications", | ||
307 | "settings.service.form.enableService" : "Enable service", | ||
308 | "settings.service.form.headlineBadges" : "Unread message badges", | ||
309 | "settings.service.form.headlineGeneral" : "General", | ||
310 | "settings.service.form.headlineNotifications" : "Notifications", | ||
311 | "settings.service.form.icon" : "Custom icon", | ||
312 | "settings.service.form.iconDelete" : "Delete", | ||
313 | "settings.service.form.iconUpload" : "Drop your image, or click here", | ||
314 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
318 | "settings.service.form.name" : "Name", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Save service", | ||
328 | "settings.service.form.tabHosted" : "Hosted", | ||
329 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
330 | "settings.service.form.team" : "Team", | ||
331 | "settings.service.form.useHostedService" : "Use the hosted {name} service.", | ||
332 | "settings.service.form.yourServices" : "Your services", | ||
333 | "settings.services.deletedInfo" : "Service has been deleted", | ||
334 | "settings.services.discoverServices" : "Discover services", | ||
335 | "settings.services.headline" : "Your services", | ||
336 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
339 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
341 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Team", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Company", | ||
349 | "settings.user.form.accountType.individual" : "Individual", | ||
350 | "settings.user.form.accountType.label" : "Account type", | ||
351 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
352 | "settings.user.form.currentPassword" : "Current password", | ||
353 | "settings.user.form.email" : "Email", | ||
354 | "settings.user.form.firstname" : "First Name", | ||
355 | "settings.user.form.lastname" : "Last Name", | ||
356 | "settings.user.form.newPassword" : "New password", | ||
357 | "settings.workspace.add.form.name" : "Name", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "Name", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
368 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Add new service", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Disable notifications & audio", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Settings", | ||
382 | "sidebar.unmuteApp" : "Enable notifications & audio", | ||
383 | "signup.email.label" : "Email address", | ||
384 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
385 | "signup.firstname.label" : "First Name", | ||
386 | "signup.headline" : "Sign up", | ||
387 | "signup.lastname.label" : "Last Name", | ||
388 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
389 | "signup.legal.privacy" : "Privacy Statement", | ||
390 | "signup.legal.terms" : "Terms of service", | ||
391 | "signup.link.login" : "Already have an account, sign in?", | ||
392 | "signup.password.label" : "Password", | ||
393 | "signup.submit.label" : "Create account", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
406 | "subscriptionPopup.buttonDone" : "Done", | ||
407 | "tabs.item.deleteService" : "Delete service", | ||
408 | "tabs.item.disableAudio" : "Disable audio", | ||
409 | "tabs.item.disableNotifications" : "Disable notifications", | ||
410 | "tabs.item.disableService" : "Disable service", | ||
411 | "tabs.item.edit" : "Edit", | ||
412 | "tabs.item.enableAudio" : "Enable audio", | ||
413 | "tabs.item.enableNotification" : "Enable notifications", | ||
414 | "tabs.item.enableService" : "Enable service", | ||
415 | "tabs.item.reload" : "Reload", | ||
416 | "validation.email" : "{field} is not valid", | ||
417 | "validation.minLength" : "{field} should be at least {length} characters long", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} is required", | ||
420 | "validation.url" : "{field} is not a valid URL", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Reload", | ||
426 | "welcome.loginButton" : "Login to your account", | ||
427 | "welcome.signupButton" : "Create a free account", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "All services", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/ms.json b/src/i18n/locales/ms.json new file mode 100644 index 000000000..d185878b6 --- /dev/null +++ b/src/i18n/locales/ms.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Refresh", | ||
3 | "app.errorHandler.headline" : "Ada sedikit masalah", | ||
4 | "connectionLostBanner.cta" : "Ulangmuat Perkhidmatan", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz akan beroperasi semula dalam {seconds} saat", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Naik taraf akaun", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Hantar sebagai emel", | ||
33 | "feature.shareFranz.action.facebook" : "Kongsi ke Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Kongsi ke Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz lebih elok digunakan bersama-sama rakan", | ||
36 | "feature.shareFranz.shareText.email" : "Saya telah menambah {count] servis ke Franz! Dapatkan aplikasi percuma WhatsApp, Messenger, Slack, Skype dan lain-lain dari www.meetfranz.com", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Beritahu rakan anda betapa hebatnya Franz dan bantu kami menyebarkan maklumat ini", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "Tidak dapat bersambung ke perkhidmatan dalam talian Franz", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "Anda tidak disambungkan ke internet.", | ||
52 | "global.spellchecker.useDefault" : "Gunakan System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Kesan bahasa secara automatik", | ||
54 | "global.spellchecking.autodetect.short" : "Automatik", | ||
55 | "global.spellchecking.language" : "Bahasa untuk semakan ejaan", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "Import perkhidmatan Franz 4 anda", | ||
58 | "import.notSupportedHeadline" : "Perkhidmatan belum disokong dalam Franz 5", | ||
59 | "import.skip.label" : "Saya mahu menambah perkhidmatan secara manual", | ||
60 | "import.submit.label" : "Import perkhidmatan", | ||
61 | "infobar.buttonChangelog" : "Apa yang baru?", | ||
62 | "infobar.buttonInstallUpdate" : "Mulakan semula & pasang kemas kini?", | ||
63 | "infobar.buttonReloadServices" : "Mula semula perkhidmatan", | ||
64 | "infobar.requiredRequestsFailed" : "Tidak dapat memuatkan perkhidmatan dan maklumat pengguna", | ||
65 | "infobar.servicesUpdated" : "Perkhidmatan anda telah dikemas kini.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "Kemas kini baru untuk Franz boleh didapati.", | ||
68 | "invite.email.label" : "Alamat emel", | ||
69 | "invite.headline.friends" : "Jemput 3 rakan atau rakan sekerja anda", | ||
70 | "invite.name.label" : "Nama", | ||
71 | "invite.skip.label" : "Saya akan lakukannya sebentar lagi", | ||
72 | "invite.submit.label" : "Hantar jemputan", | ||
73 | "invite.successInfo" : "Jemputan telah berjaya dihantar", | ||
74 | "login.email.label" : "Alamat e-mel", | ||
75 | "login.headline" : "Daftar Masuk", | ||
76 | "login.invalidCredentials" : "E-mel atau kata laluan tidak sah", | ||
77 | "login.link.password" : "Set Semula Kata Laluan", | ||
78 | "login.link.signup" : "Buka akaun baru percuma", | ||
79 | "login.password.label" : "Kata laluan", | ||
80 | "login.serverLogout" : "Sesi anda tamat tempoh, sila log masuk sekali lagi.", | ||
81 | "login.submit.label" : "Daftar Masuk", | ||
82 | "login.tokenExpired" : "Sesi anda tamat tempoh, sila masuk sekali lagi.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "Tentang Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Semak untuk kemaskini", | ||
88 | "menu.app.hide" : "Sorokkan", | ||
89 | "menu.app.hideOthers" : "Sorokkan yang lain-lain", | ||
90 | "menu.app.quit" : "Keluar", | ||
91 | "menu.app.settings" : "Tetapan", | ||
92 | "menu.app.unhide" : "Nyahsorok", | ||
93 | "menu.edit" : "Ubahsuai", | ||
94 | "menu.edit.copy" : "Salin", | ||
95 | "menu.edit.cut" : "Sunting", | ||
96 | "menu.edit.delete" : "Hapus", | ||
97 | "menu.edit.emojiSymbols" : "Emoji & Simbol", | ||
98 | "menu.edit.paste" : "Tampal", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Tampal Dan Padan Gaya", | ||
100 | "menu.edit.redo" : "Ulangbuat", | ||
101 | "menu.edit.selectAll" : "Pilih Semua", | ||
102 | "menu.edit.speech" : "Pertuturan", | ||
103 | "menu.edit.startDictation" : "Mula Dikte", | ||
104 | "menu.edit.startSpeaking" : "Mula Bercakap", | ||
105 | "menu.edit.stopSpeaking" : "Henti Bercakap", | ||
106 | "menu.edit.undo" : "Nyahcara", | ||
107 | "menu.file" : "Fail", | ||
108 | "menu.help" : "Bantuan", | ||
109 | "menu.help.changelog" : "Log perubahan:", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Ketahui Lebih Lanjut", | ||
114 | "menu.help.privacy" : "Pernyataan Privasi", | ||
115 | "menu.help.support" : "Sokongan", | ||
116 | "menu.help.tos" : "Terma dan Syarat Perkhidmatan", | ||
117 | "menu.services" : "Perkhidmatan", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "Paparan", | ||
125 | "menu.view.enterFullScreen" : "Masuk Skrin Penuh", | ||
126 | "menu.view.exitFullScreen" : "Keluar Skrin Penuh", | ||
127 | "menu.view.reloadFranz" : "Ulangmuat Franz", | ||
128 | "menu.view.reloadService" : "Ulangmuat Perkhidmatan", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Saiz Sebenar", | ||
131 | "menu.view.toggleDevTools" : "Tukar Peralatan Pemaju", | ||
132 | "menu.view.toggleFullScreen" : "Tukar Skrin Penuh", | ||
133 | "menu.view.toggleServiceDevTools" : "Ubah Service Developer Tools", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Zoom masuk", | ||
136 | "menu.view.zoomOut" : "Zoom keluar", | ||
137 | "menu.window" : "Tetingkap", | ||
138 | "menu.window.close" : "Tutup", | ||
139 | "menu.window.minimize" : "Kecilkan", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "All services", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "Alamat e-mel", | ||
146 | "password.headline" : "Set Semula Kata Laluan", | ||
147 | "password.link.login" : "Log masuk akaun kamu", | ||
148 | "password.link.signup" : "Buka akaun baru percuma", | ||
149 | "password.noUser" : "Tiada pengguna dengan alamat e-mel tersebut dijumpai", | ||
150 | "password.submit.label" : "Hantar", | ||
151 | "password.successInfo" : "Sila semak e-mel anda", | ||
152 | "premiumFeature.button.upgradeAccount" : "Naik taraf akaun", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "Ulangmuat {nama}", | ||
191 | "service.crashHandler.autoReload" : "Sedang cuba pulihkan secara automatik {nama} dalam {saat} saat", | ||
192 | "service.crashHandler.headline" : "Alamak!", | ||
193 | "service.crashHandler.text" : "{nama} telah menyebabkan satu ralat.", | ||
194 | "service.disabledHandler.action" : "Bolehkan {nama}", | ||
195 | "service.disabledHandler.headline" : "{nama} dinyahdayakan", | ||
196 | "service.errorHandler.action" : "Ulangmuat {nama}", | ||
197 | "service.errorHandler.editAction" : "Edit {name}", | ||
198 | "service.errorHandler.headline" : "Alamak!", | ||
199 | "service.errorHandler.message" : "Error", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "Bermula", | ||
208 | "services.welcome" : "Selamat Datang ke Franz", | ||
209 | "settings.account.account.editButton" : "Edit account", | ||
210 | "settings.account.accountType.basic" : "Akaun Asas", | ||
211 | "settings.account.accountType.premium" : "Sokongan Akaun Premium", | ||
212 | "settings.account.buttonSave" : "Kemaskini profil", | ||
213 | "settings.account.deleteAccount" : "Hapuskan akaun", | ||
214 | "settings.account.deleteEmailSent" : "Anda telah menerima email yang mengandungi link pengesahan untuk memadamkan akaun. Akaun dan semua data anda tidak boleh lagi dikembalikan semula!", | ||
215 | "settings.account.deleteInfo" : "Jika anda tidak perlukan lagi akaun Franz, anda boleh hapuskan akaun dan data berkaitan di sini.", | ||
216 | "settings.account.headline" : "Akaun", | ||
217 | "settings.account.headlineAccount" : "Maklumat Akaun", | ||
218 | "settings.account.headlineDangerZone" : "Zon Bahaya", | ||
219 | "settings.account.headlineInvoices" : "Invois", | ||
220 | "settings.account.headlinePassword" : "Tukar katalaluan", | ||
221 | "settings.account.headlineProfile" : "Kemaskini maklumat peribadi", | ||
222 | "settings.account.headlineSubscription" : "Langganan anda", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Muat Turun", | ||
226 | "settings.account.manageSubscription.label" : "Urus langganan anda", | ||
227 | "settings.account.successInfo" : "Kemaskini telah disimpan", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Cuba lagi", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Cuba lagi", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Maklumat pengguna tidak dapat dipapar", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Padamkan Cache", | ||
237 | "settings.app.buttonInstallUpdate" : "Mulakan semula & pasang kemas kini", | ||
238 | "settings.app.buttonSearchForUpdate" : "Semak untuk kemaskini", | ||
239 | "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", | ||
240 | "settings.app.currentVersion" : "Current version:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
243 | "settings.app.form.beta" : "Termasuk versi beta", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
246 | "settings.app.form.enableSpellchecking" : "Hidupkan semakan ejaan", | ||
247 | "settings.app.form.enableSystemTray" : "Papar Franz dalam dulang sistem", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Language", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
252 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
253 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", | ||
255 | "settings.app.headline" : "Tetapan", | ||
256 | "settings.app.headlineAdvanced" : "Advanced", | ||
257 | "settings.app.headlineAppearance" : "Appearance", | ||
258 | "settings.app.headlineGeneral" : "General", | ||
259 | "settings.app.headlineLanguage" : "Language", | ||
260 | "settings.app.headlineUpdates" : "Updates", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Changes require restart", | ||
263 | "settings.app.subheadlineCache" : "Cache", | ||
264 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
265 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
266 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
267 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
268 | "settings.invite.headline" : "Invite Friends", | ||
269 | "settings.navigation.account" : "Akaun", | ||
270 | "settings.navigation.availableServices" : "Available services", | ||
271 | "settings.navigation.inviteFriends" : "Invite Friends", | ||
272 | "settings.navigation.logout" : "Logout", | ||
273 | "settings.navigation.settings" : "Tetapan", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Your services", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "All services", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Available services", | ||
286 | "settings.recipes.missingService" : "Missing a service?", | ||
287 | "settings.recipes.mostPopular" : "Most popular", | ||
288 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
290 | "settings.searchService" : "Search service", | ||
291 | "settings.service.error.goBack" : "Back to services", | ||
292 | "settings.service.error.headline" : "Error", | ||
293 | "settings.service.error.message" : "Could not load service recipe.", | ||
294 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
295 | "settings.service.form.availableServices" : "Available services", | ||
296 | "settings.service.form.customUrl" : "Custom server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
299 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
300 | "settings.service.form.deleteButton" : "Delete service", | ||
301 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
302 | "settings.service.form.enableAudio" : "Enable audio", | ||
303 | "settings.service.form.enableBadge" : "Show unread message badges", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Enable notifications", | ||
307 | "settings.service.form.enableService" : "Enable service", | ||
308 | "settings.service.form.headlineBadges" : "Unread message badges", | ||
309 | "settings.service.form.headlineGeneral" : "General", | ||
310 | "settings.service.form.headlineNotifications" : "Notifications", | ||
311 | "settings.service.form.icon" : "Custom icon", | ||
312 | "settings.service.form.iconDelete" : "Hapus", | ||
313 | "settings.service.form.iconUpload" : "Drop your image, or click here", | ||
314 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
318 | "settings.service.form.name" : "Nama", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Save service", | ||
328 | "settings.service.form.tabHosted" : "Hosted", | ||
329 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
330 | "settings.service.form.team" : "Team", | ||
331 | "settings.service.form.useHostedService" : "Use the hosted {name} service.", | ||
332 | "settings.service.form.yourServices" : "Your services", | ||
333 | "settings.services.deletedInfo" : "Service has been deleted", | ||
334 | "settings.services.discoverServices" : "Discover services", | ||
335 | "settings.services.headline" : "Your services", | ||
336 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
339 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
341 | "settings.services.updatedInfo" : "Kemaskini telah disimpan", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Team", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Company", | ||
349 | "settings.user.form.accountType.individual" : "Individual", | ||
350 | "settings.user.form.accountType.label" : "Account type", | ||
351 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
352 | "settings.user.form.currentPassword" : "Current password", | ||
353 | "settings.user.form.email" : "Email", | ||
354 | "settings.user.form.firstname" : "First Name", | ||
355 | "settings.user.form.lastname" : "Last Name", | ||
356 | "settings.user.form.newPassword" : "New password", | ||
357 | "settings.workspace.add.form.name" : "Nama", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "Nama", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Cuba lagi", | ||
368 | "settings.workspaces.updatedInfo" : "Kemaskini telah disimpan", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Add new service", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Disable notifications & audio", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Tetapan", | ||
382 | "sidebar.unmuteApp" : "Enable notifications & audio", | ||
383 | "signup.email.label" : "Email address", | ||
384 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
385 | "signup.firstname.label" : "First Name", | ||
386 | "signup.headline" : "Sign up", | ||
387 | "signup.lastname.label" : "Last Name", | ||
388 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
389 | "signup.legal.privacy" : "Pernyataan Privasi", | ||
390 | "signup.legal.terms" : "Terms of service", | ||
391 | "signup.link.login" : "Already have an account, sign in?", | ||
392 | "signup.password.label" : "Kata laluan", | ||
393 | "signup.submit.label" : "Create account", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
406 | "subscriptionPopup.buttonDone" : "Done", | ||
407 | "tabs.item.deleteService" : "Delete service", | ||
408 | "tabs.item.disableAudio" : "Disable audio", | ||
409 | "tabs.item.disableNotifications" : "Disable notifications", | ||
410 | "tabs.item.disableService" : "Disable service", | ||
411 | "tabs.item.edit" : "Ubahsuai", | ||
412 | "tabs.item.enableAudio" : "Enable audio", | ||
413 | "tabs.item.enableNotification" : "Enable notifications", | ||
414 | "tabs.item.enableService" : "Enable service", | ||
415 | "tabs.item.reload" : "Refresh", | ||
416 | "validation.email" : "{field} is not valid", | ||
417 | "validation.minLength" : "{field} should be at least {length} characters long", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} is required", | ||
420 | "validation.url" : "{field} is not a valid URL", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Refresh", | ||
426 | "welcome.loginButton" : "Login to your account", | ||
427 | "welcome.signupButton" : "Buka akaun baru percuma", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "All services", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/si.json b/src/i18n/locales/si.json new file mode 100644 index 000000000..3c26f4f22 --- /dev/null +++ b/src/i18n/locales/si.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Reload", | ||
3 | "app.errorHandler.headline" : "Something went wrong", | ||
4 | "connectionLostBanner.cta" : "Reload Service", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Upgrade account", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Send as email", | ||
33 | "feature.shareFranz.action.facebook" : "Share on Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Share on Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "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", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "ෆ්රාන්ස් මාර්ගගත සේවාවන් වෙත සම්බන්ධ වීමට නොහැක.", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "ඔබ අන්තර්ජාලයට සම්බන්ධ වී නැත.", | ||
52 | "global.spellchecker.useDefault" : "Use System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Detect language automatically", | ||
54 | "global.spellchecking.autodetect.short" : "Automatic", | ||
55 | "global.spellchecking.language" : "Spell checking language", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "ඔබගේ ෆ්රාන්ස් සේවාවන් නැවත ඇතුලත් කරගන්න.", | ||
58 | "import.notSupportedHeadline" : "සේවාවන් සඳහා ෆ්රාන්ස් 5 හි තවමත් පහසුකම් සලසා නැත.", | ||
59 | "import.skip.label" : "සේවාවන් මවිසින් ඇතුලත් කල යුතුය. ", | ||
60 | "import.submit.label" : "සේවාවන් ස්වයං ඇතුලත් කරගැනීම ", | ||
61 | "infobar.buttonChangelog" : "අලුත් දෑ", | ||
62 | "infobar.buttonInstallUpdate" : "නැවත අරඹා යාවත්කාල කරන්න.", | ||
63 | "infobar.buttonReloadServices" : "සේවාවන් නැවත ඇරඹීම", | ||
64 | "infobar.requiredRequestsFailed" : "සේවාවන් සහ පරිශීලක තොරතුරු ලබාගත නොහැක.", | ||
65 | "infobar.servicesUpdated" : "ඔබගේ සේවාවන් යාවත්කාල කර ඇත.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "ෆ්රාන්ස් හි නව සංස්කරණයක් දැන් ලබා ගත හැක.", | ||
68 | "invite.email.label" : "විද්යුත් තැපැල් ලිපිනය ", | ||
69 | "invite.headline.friends" : "මිතුරන් 3කට ආරාධනා කරන්න.", | ||
70 | "invite.name.label" : "නම", | ||
71 | "invite.skip.label" : "මා මෙය පසුව කරන්නම්", | ||
72 | "invite.submit.label" : "ඇරයුම් යවන්න ", | ||
73 | "invite.successInfo" : "Invitations sent successfully", | ||
74 | "login.email.label" : "විද්යුත් තැපැල් ලිපිනය", | ||
75 | "login.headline" : "ඇතුළු වන්න", | ||
76 | "login.invalidCredentials" : "විද්යුත් තැපැල් ලිපිනය හෝ මුර පදය වැරදියි", | ||
77 | "login.link.password" : "මුර පදය අලුත් කරන්න", | ||
78 | "login.link.signup" : "නොමිළ ගිණුමක් සකසන්න", | ||
79 | "login.password.label" : "මුරපදය", | ||
80 | "login.serverLogout" : "ඔබේ ඇතුළු වීම් කාලය අවසන්, නැවත ඇතුල් වන්න.", | ||
81 | "login.submit.label" : "ඇතුල් වන්න", | ||
82 | "login.tokenExpired" : "ඔබේ ඇතුළු වීම් කාලය අවසන්, නැවත ඇතුල් වන්න.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "About Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Check for updates", | ||
88 | "menu.app.hide" : "Hide", | ||
89 | "menu.app.hideOthers" : "Hide Others", | ||
90 | "menu.app.quit" : "Quit", | ||
91 | "menu.app.settings" : "Settings", | ||
92 | "menu.app.unhide" : "Unhide", | ||
93 | "menu.edit" : "Edit", | ||
94 | "menu.edit.copy" : "Copy", | ||
95 | "menu.edit.cut" : "Cut", | ||
96 | "menu.edit.delete" : "Delete", | ||
97 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | ||
98 | "menu.edit.paste" : "Paste", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | ||
100 | "menu.edit.redo" : "Redo", | ||
101 | "menu.edit.selectAll" : "Select All", | ||
102 | "menu.edit.speech" : "Speech", | ||
103 | "menu.edit.startDictation" : "Start Dictation", | ||
104 | "menu.edit.startSpeaking" : "Start Speaking", | ||
105 | "menu.edit.stopSpeaking" : "Stop Speaking", | ||
106 | "menu.edit.undo" : "Undo", | ||
107 | "menu.file" : "File", | ||
108 | "menu.help" : "Help", | ||
109 | "menu.help.changelog" : "Changelog", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Learn More", | ||
114 | "menu.help.privacy" : "Privacy Statement", | ||
115 | "menu.help.support" : "Support", | ||
116 | "menu.help.tos" : "Terms of Service", | ||
117 | "menu.services" : "Services", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "View", | ||
125 | "menu.view.enterFullScreen" : "Enter Full Screen", | ||
126 | "menu.view.exitFullScreen" : "Exit Full Screen", | ||
127 | "menu.view.reloadFranz" : "Reload Franz", | ||
128 | "menu.view.reloadService" : "Reload Service", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Actual Size", | ||
131 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | ||
132 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | ||
133 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Zoom In", | ||
136 | "menu.view.zoomOut" : "Zoom Out", | ||
137 | "menu.window" : "Window", | ||
138 | "menu.window.close" : "Close", | ||
139 | "menu.window.minimize" : "Minimize", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "All services", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "විද්යුත් තැපැල් ලිපිනය", | ||
146 | "password.headline" : "මුරපදය නැවත සකසන්න ", | ||
147 | "password.link.login" : "ඔබේ ගිණුමට ඇතුල් වන්න ", | ||
148 | "password.link.signup" : "නව නොමිල ගිණුමක් අරඹන්න ", | ||
149 | "password.noUser" : "එම විද්යුත් තැපැල් ලිපිනය යටතේ කිසිදු පරිශීලකයෙක් නොමැත ", | ||
150 | "password.submit.label" : "යවන්න", | ||
151 | "password.successInfo" : "කරුණාකර ඔබේ විද්යුත් තැපෑල පිරික්සන්න", | ||
152 | "premiumFeature.button.upgradeAccount" : "Upgrade account", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "{name} නැවත ලබාගන්න", | ||
191 | "service.crashHandler.autoReload" : "{name} ස්වයංක්රීය ප්රතිෂ්ඨාපනය තවත් තත්පර {seconds}කින් ", | ||
192 | "service.crashHandler.headline" : "අපොයි!", | ||
193 | "service.crashHandler.text" : "{name} හි දෝෂයකි. ", | ||
194 | "service.disabledHandler.action" : "{name} සක්රීය කරන්න", | ||
195 | "service.disabledHandler.headline" : "{name} අක්රීයයි.", | ||
196 | "service.errorHandler.action" : "{name} නැවත ලබාගන්න", | ||
197 | "service.errorHandler.editAction" : "Edit {name}", | ||
198 | "service.errorHandler.headline" : "අපොයි!", | ||
199 | "service.errorHandler.message" : "Error", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "ආරම්භ කරන්න", | ||
208 | "services.welcome" : "ෆ්රාන්ස් වෙත සාදරයෙන් පිළිගනිමු", | ||
209 | "settings.account.account.editButton" : "ගිණුම සකසන්න", | ||
210 | "settings.account.accountType.basic" : "මුලික ගිණුම ", | ||
211 | "settings.account.accountType.premium" : "විශේෂ ආධාරකාර ගිණුම ", | ||
212 | "settings.account.buttonSave" : "පැතිකඩ යාවත්කාල කිරීම ", | ||
213 | "settings.account.deleteAccount" : "ගිණුම මකා දමන්න ", | ||
214 | "settings.account.deleteEmailSent" : "ගිණුම මකා දැමීම තහවුරු කිරීම සඳහා විද්යුත් තැපැල් පණිවුඩයක් ඔබ වෙත යවා ඇත. මකා දැමීමෙන් පසුව ඔබගේ ගිණුම සහ අනෙකුත් දත්ත නැවත ලබාගත නොහැකි බව කරුණාවෙන් සලකන්න.", | ||
215 | "settings.account.deleteInfo" : "ඔබට ෆ්රාන්ස් ගිණුම තවදුරටත් අනවශ්ය නම්, ගිණුම සහ ඒ සම්බන්ධ සියලු තොරතුරු මෙහිදී මකා දැමිය හැක.", | ||
216 | "settings.account.headline" : "ගිණුම ", | ||
217 | "settings.account.headlineAccount" : "ගිණුමේ තොරතුරු", | ||
218 | "settings.account.headlineDangerZone" : "භයානක කලාපය ", | ||
219 | "settings.account.headlineInvoices" : "ලදුපත් ", | ||
220 | "settings.account.headlinePassword" : "මුරපදය වෙනස් කරන්න", | ||
221 | "settings.account.headlineProfile" : "පැතිකඩ යාවත්කාල කරන්න ", | ||
222 | "settings.account.headlineSubscription" : "ඔබගේ දායකත්වය ", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Download", | ||
226 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
227 | "settings.account.successInfo" : "Your changes have been saved", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Try again", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Clear cache", | ||
237 | "settings.app.buttonInstallUpdate" : "නැවත අරඹා යාවත්කාල කරන්න.", | ||
238 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
239 | "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", | ||
240 | "settings.app.currentVersion" : "Current version:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
243 | "settings.app.form.beta" : "Include beta versions", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
246 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
247 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Language", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
252 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
253 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", | ||
255 | "settings.app.headline" : "Settings", | ||
256 | "settings.app.headlineAdvanced" : "Advanced", | ||
257 | "settings.app.headlineAppearance" : "Appearance", | ||
258 | "settings.app.headlineGeneral" : "General", | ||
259 | "settings.app.headlineLanguage" : "Language", | ||
260 | "settings.app.headlineUpdates" : "Updates", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Changes require restart", | ||
263 | "settings.app.subheadlineCache" : "Cache", | ||
264 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
265 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
266 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
267 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
268 | "settings.invite.headline" : "Invite Friends", | ||
269 | "settings.navigation.account" : "ගිණුම ", | ||
270 | "settings.navigation.availableServices" : "Available services", | ||
271 | "settings.navigation.inviteFriends" : "Invite Friends", | ||
272 | "settings.navigation.logout" : "Logout", | ||
273 | "settings.navigation.settings" : "Settings", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Your services", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "All services", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Available services", | ||
286 | "settings.recipes.missingService" : "Missing a service?", | ||
287 | "settings.recipes.mostPopular" : "Most popular", | ||
288 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
290 | "settings.searchService" : "Search service", | ||
291 | "settings.service.error.goBack" : "Back to services", | ||
292 | "settings.service.error.headline" : "Error", | ||
293 | "settings.service.error.message" : "Could not load service recipe.", | ||
294 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
295 | "settings.service.form.availableServices" : "Available services", | ||
296 | "settings.service.form.customUrl" : "Custom server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
299 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
300 | "settings.service.form.deleteButton" : "Delete service", | ||
301 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
302 | "settings.service.form.enableAudio" : "Enable audio", | ||
303 | "settings.service.form.enableBadge" : "Show unread message badges", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Enable notifications", | ||
307 | "settings.service.form.enableService" : "Enable service", | ||
308 | "settings.service.form.headlineBadges" : "Unread message badges", | ||
309 | "settings.service.form.headlineGeneral" : "General", | ||
310 | "settings.service.form.headlineNotifications" : "Notifications", | ||
311 | "settings.service.form.icon" : "Custom icon", | ||
312 | "settings.service.form.iconDelete" : "Delete", | ||
313 | "settings.service.form.iconUpload" : "Drop your image, or click here", | ||
314 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
318 | "settings.service.form.name" : "නම", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Save service", | ||
328 | "settings.service.form.tabHosted" : "Hosted", | ||
329 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
330 | "settings.service.form.team" : "Team", | ||
331 | "settings.service.form.useHostedService" : "Use the hosted {name} service.", | ||
332 | "settings.service.form.yourServices" : "Your services", | ||
333 | "settings.services.deletedInfo" : "Service has been deleted", | ||
334 | "settings.services.discoverServices" : "Discover services", | ||
335 | "settings.services.headline" : "Your services", | ||
336 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
339 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
341 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Team", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Company", | ||
349 | "settings.user.form.accountType.individual" : "Individual", | ||
350 | "settings.user.form.accountType.label" : "Account type", | ||
351 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
352 | "settings.user.form.currentPassword" : "Current password", | ||
353 | "settings.user.form.email" : "Email", | ||
354 | "settings.user.form.firstname" : "First Name", | ||
355 | "settings.user.form.lastname" : "Last Name", | ||
356 | "settings.user.form.newPassword" : "New password", | ||
357 | "settings.workspace.add.form.name" : "නම", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "නම", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
368 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Add new service", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Disable notifications & audio", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Settings", | ||
382 | "sidebar.unmuteApp" : "Enable notifications & audio", | ||
383 | "signup.email.label" : "Email address", | ||
384 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
385 | "signup.firstname.label" : "First Name", | ||
386 | "signup.headline" : "Sign up", | ||
387 | "signup.lastname.label" : "Last Name", | ||
388 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
389 | "signup.legal.privacy" : "Privacy Statement", | ||
390 | "signup.legal.terms" : "Terms of service", | ||
391 | "signup.link.login" : "Already have an account, sign in?", | ||
392 | "signup.password.label" : "මුරපදය", | ||
393 | "signup.submit.label" : "Create account", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
406 | "subscriptionPopup.buttonDone" : "Done", | ||
407 | "tabs.item.deleteService" : "Delete service", | ||
408 | "tabs.item.disableAudio" : "Disable audio", | ||
409 | "tabs.item.disableNotifications" : "Disable notifications", | ||
410 | "tabs.item.disableService" : "Disable service", | ||
411 | "tabs.item.edit" : "Edit", | ||
412 | "tabs.item.enableAudio" : "Enable audio", | ||
413 | "tabs.item.enableNotification" : "Enable notifications", | ||
414 | "tabs.item.enableService" : "Enable service", | ||
415 | "tabs.item.reload" : "Reload", | ||
416 | "validation.email" : "{field} is not valid", | ||
417 | "validation.minLength" : "{field} should be at least {length} characters long", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} is required", | ||
420 | "validation.url" : "{field} is not a valid URL", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Reload", | ||
426 | "welcome.loginButton" : "Login to your account", | ||
427 | "welcome.signupButton" : "Create a free account", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "All services", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/sq.json b/src/i18n/locales/sq.json new file mode 100644 index 000000000..078973fe8 --- /dev/null +++ b/src/i18n/locales/sq.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "Reload", | ||
3 | "app.errorHandler.headline" : "Something went wrong", | ||
4 | "connectionLostBanner.cta" : "Reload Service", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "Changes in Franz {version}", | ||
8 | "feature.delayApp.headline" : "Upgrade your Franz plan to skip the wait", | ||
9 | "feature.delayApp.text" : "Franz will continue in {seconds} seconds.", | ||
10 | "feature.delayApp.trial.action" : "Yes, I want the free 14 day trial of Franz Professional", | ||
11 | "feature.delayApp.trial.actionShort" : "Activate the free Franz Professional trial", | ||
12 | "feature.delayApp.trial.headline" : "Get the free Franz Professional 14-days trial and skip the wait", | ||
13 | "feature.delayApp.upgrade.action" : "Upgrade Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "Upgrade account", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "Downgrade to Free", | ||
16 | "feature.planSelection.cta.stayOnFree" : "Stay on Free", | ||
17 | "feature.planSelection.cta.trial" : "Start my free 14-days Trial", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "Choose Personal", | ||
19 | "feature.planSelection.cta.upgradePro" : "Choose Professional", | ||
20 | "feature.planSelection.free.text" : "Basic functionality", | ||
21 | "feature.planSelection.fullFeatureList" : "Complete comparison of all plans", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "It's time to make a choice. Franz works best on our Personal and Professional plans. Please have a look and choose the best one for you.", | ||
27 | "feature.planSelection.fullscreen.welcome" : "Are you ready to choose, {name}?", | ||
28 | "feature.planSelection.personal.text" : "More services, no waiting - ideal for personal use.", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "All prices based on yearly payment", | ||
30 | "feature.planSelection.pro.text" : "Unlimited services and professional features for you - and your team.", | ||
31 | "feature.serviceLimit.limitReached" : "You have added {amount} out of {limit} services that are included in your plan. Please upgrade your account to add more services.", | ||
32 | "feature.shareFranz.action.email" : "Send as email", | ||
33 | "feature.shareFranz.action.facebook" : "Share on Facebook", | ||
34 | "feature.shareFranz.action.twitter" : "Share on Twitter", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "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", | ||
37 | "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", | ||
38 | "feature.shareFranz.text" : "Tell your friends and colleagues how awesome Franz is and help us to spread the word.", | ||
39 | "feature.todos.premium.info" : "Franz Todos are available to premium users now!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "Upgrade Account", | ||
42 | "feature.trialStatusBar.cta" : "Upgrade now", | ||
43 | "feature.trialStatusBar.expired" : "Your free Franz {plan} Trial has expired, please upgrade your account.", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "Downgrade to Free", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "Choose Personal", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "You're about to downgrade to our Free account. Are you sure? Click here instead to get more services and functionality for just {currency}{price} a month.", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "Downgrade your Franz Plan", | ||
48 | "feature.trialStatusBar.restTime" : "Your Free Franz {plan} Trial ends in {time}.", | ||
49 | "global.api.unhealthy" : "Can't connect to Franz online services", | ||
50 | "global.franzProRequired" : "Franz Professional Required", | ||
51 | "global.notConnectedToTheInternet" : "You are not connected to the internet.", | ||
52 | "global.spellchecker.useDefault" : "Use System Default ({default})", | ||
53 | "global.spellchecking.autodetect" : "Detect language automatically", | ||
54 | "global.spellchecking.autodetect.short" : "Automatic", | ||
55 | "global.spellchecking.language" : "Spell checking language", | ||
56 | "global.upgradeButton.upgradeToPro" : "Upgrade to Franz Professional", | ||
57 | "import.headline" : "Import your Franz 4 services", | ||
58 | "import.notSupportedHeadline" : "Services not yet supported in Franz 5", | ||
59 | "import.skip.label" : "I want to add services manually", | ||
60 | "import.submit.label" : "Import services", | ||
61 | "infobar.buttonChangelog" : "What is new?", | ||
62 | "infobar.buttonInstallUpdate" : "Restart & install update", | ||
63 | "infobar.buttonReloadServices" : "Reload services", | ||
64 | "infobar.requiredRequestsFailed" : "Could not load services and user information", | ||
65 | "infobar.servicesUpdated" : "Your services have been updated.", | ||
66 | "infobar.trialActivated" : "Your trial was successfully activated. Happy messaging!", | ||
67 | "infobar.updateAvailable" : "A new update for Franz is available.", | ||
68 | "invite.email.label" : "Email address", | ||
69 | "invite.headline.friends" : "Invite 3 of your friends or colleagues", | ||
70 | "invite.name.label" : "Name", | ||
71 | "invite.skip.label" : "I want to do this later", | ||
72 | "invite.submit.label" : "Send invites", | ||
73 | "invite.successInfo" : "Invitations sent successfully", | ||
74 | "login.email.label" : "Email address", | ||
75 | "login.headline" : "Sign in", | ||
76 | "login.invalidCredentials" : "Email or password not valid", | ||
77 | "login.link.password" : "Reset password", | ||
78 | "login.link.signup" : "Create a free account", | ||
79 | "login.password.label" : "Password", | ||
80 | "login.serverLogout" : "Your session expired, please login again.", | ||
81 | "login.submit.label" : "Sign in", | ||
82 | "login.tokenExpired" : "Your session expired, please login again.", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "About Franz", | ||
86 | "menu.app.announcement" : "What's new?", | ||
87 | "menu.app.checkForUpdates" : "Check for updates", | ||
88 | "menu.app.hide" : "Hide", | ||
89 | "menu.app.hideOthers" : "Hide Others", | ||
90 | "menu.app.quit" : "Quit", | ||
91 | "menu.app.settings" : "Settings", | ||
92 | "menu.app.unhide" : "Unhide", | ||
93 | "menu.edit" : "Edit", | ||
94 | "menu.edit.copy" : "Copy", | ||
95 | "menu.edit.cut" : "Cut", | ||
96 | "menu.edit.delete" : "Delete", | ||
97 | "menu.edit.emojiSymbols" : "Emoji & Symbols", | ||
98 | "menu.edit.paste" : "Paste", | ||
99 | "menu.edit.pasteAndMatchStyle" : "Paste And Match Style", | ||
100 | "menu.edit.redo" : "Redo", | ||
101 | "menu.edit.selectAll" : "Select All", | ||
102 | "menu.edit.speech" : "Speech", | ||
103 | "menu.edit.startDictation" : "Start Dictation", | ||
104 | "menu.edit.startSpeaking" : "Start Speaking", | ||
105 | "menu.edit.stopSpeaking" : "Stop Speaking", | ||
106 | "menu.edit.undo" : "Undo", | ||
107 | "menu.file" : "File", | ||
108 | "menu.help" : "Help", | ||
109 | "menu.help.changelog" : "Changelog", | ||
110 | "menu.help.debugInfo" : "Copy Debug Information", | ||
111 | "menu.help.debugInfoCopiedBody" : "Your Debug Information has been copied to your clipboard.", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz Debug Information", | ||
113 | "menu.help.learnMore" : "Learn More", | ||
114 | "menu.help.privacy" : "Privacy Statement", | ||
115 | "menu.help.support" : "Support", | ||
116 | "menu.help.tos" : "Terms of Service", | ||
117 | "menu.services" : "Services", | ||
118 | "menu.services.activatePreviousService" : "Activate previous service", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "Home", | ||
121 | "menu.services.setNextServiceActive" : "Activate next service", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "View", | ||
125 | "menu.view.enterFullScreen" : "Enter Full Screen", | ||
126 | "menu.view.exitFullScreen" : "Exit Full Screen", | ||
127 | "menu.view.reloadFranz" : "Reload Franz", | ||
128 | "menu.view.reloadService" : "Reload Service", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "Actual Size", | ||
131 | "menu.view.toggleDevTools" : "Toggle Developer Tools", | ||
132 | "menu.view.toggleFullScreen" : "Toggle Full Screen", | ||
133 | "menu.view.toggleServiceDevTools" : "Toggle Service Developer Tools", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "Zoom In", | ||
136 | "menu.view.zoomOut" : "Zoom Out", | ||
137 | "menu.window" : "Window", | ||
138 | "menu.window.close" : "Close", | ||
139 | "menu.window.minimize" : "Minimize", | ||
140 | "menu.workspaces" : "Workspaces", | ||
141 | "menu.workspaces.addNewWorkspace" : "Add New Workspace...", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "Close workspace drawer", | ||
143 | "menu.workspaces.defaultWorkspace" : "All services", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "Open workspace drawer", | ||
145 | "password.email.label" : "Email address", | ||
146 | "password.headline" : "Reset password", | ||
147 | "password.link.login" : "Sign in to your account", | ||
148 | "password.link.signup" : "Create a free account", | ||
149 | "password.noUser" : "No user with that email address was found", | ||
150 | "password.submit.label" : "Submit", | ||
151 | "password.successInfo" : "Please check your email", | ||
152 | "premiumFeature.button.upgradeAccount" : "Upgrade account", | ||
153 | "pricing.features.accountSync" : "Account Synchronisation", | ||
154 | "pricing.features.adFree" : "Forever ad-free", | ||
155 | "pricing.features.appDelays" : "No Waiting Screens", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "Add Custom Websites", | ||
158 | "pricing.features.desktopNotifications" : "Desktop Notifications", | ||
159 | "pricing.features.onPremise" : "On-premise & other Hosted Services", | ||
160 | "pricing.features.recipes" : "Choose from more than 70 Services", | ||
161 | "pricing.features.serviceProxies" : "Service Proxies", | ||
162 | "pricing.features.spellchecker" : "Spellchecker support", | ||
163 | "pricing.features.teamManagement" : "Team Management", | ||
164 | "pricing.features.thirdPartyServices" : "Install 3rd party services", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "Workspaces", | ||
169 | "pricing.plan.free" : "Free", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "Reload {name}", | ||
191 | "service.crashHandler.autoReload" : "Trying to automatically restore {name} in {seconds} seconds", | ||
192 | "service.crashHandler.headline" : "Oh no!", | ||
193 | "service.crashHandler.text" : "{name} has caused an error.", | ||
194 | "service.disabledHandler.action" : "Enable {name}", | ||
195 | "service.disabledHandler.headline" : "{name} is disabled", | ||
196 | "service.errorHandler.action" : "Reload {name}", | ||
197 | "service.errorHandler.editAction" : "Edit {name}", | ||
198 | "service.errorHandler.headline" : "Oh no!", | ||
199 | "service.errorHandler.message" : "Error", | ||
200 | "service.errorHandler.text" : "{name} has failed to load.", | ||
201 | "service.restrictedHandler.action" : "Upgrade Account", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "Loading", | ||
207 | "services.getStarted" : "Get started", | ||
208 | "services.welcome" : "Welcome to Franz", | ||
209 | "settings.account.account.editButton" : "Edit account", | ||
210 | "settings.account.accountType.basic" : "Basic Account", | ||
211 | "settings.account.accountType.premium" : "Premium Supporter Account", | ||
212 | "settings.account.buttonSave" : "Update profile", | ||
213 | "settings.account.deleteAccount" : "Delete account", | ||
214 | "settings.account.deleteEmailSent" : "You have received an email with a link to confirm your account deletion. Your account and data cannot be restored!", | ||
215 | "settings.account.deleteInfo" : "If you don't need your Franz account any longer, you can delete your account and all related data here.", | ||
216 | "settings.account.headline" : "Account", | ||
217 | "settings.account.headlineAccount" : "Account information", | ||
218 | "settings.account.headlineDangerZone" : "Danger Zone", | ||
219 | "settings.account.headlineInvoices" : "Invoices", | ||
220 | "settings.account.headlinePassword" : "Change password", | ||
221 | "settings.account.headlineProfile" : "Update profile", | ||
222 | "settings.account.headlineSubscription" : "Your subscription", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "Download", | ||
226 | "settings.account.manageSubscription.label" : "Manage your subscription", | ||
227 | "settings.account.successInfo" : "Your changes have been saved", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "Try again", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "Try again", | ||
233 | "settings.account.upgradeToPro.label" : "Upgrade to Franz Professional", | ||
234 | "settings.account.userInfoRequestFailed" : "Could not load user information", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "Clear cache", | ||
237 | "settings.app.buttonInstallUpdate" : "Restart & install update", | ||
238 | "settings.app.buttonSearchForUpdate" : "Check for updates", | ||
239 | "settings.app.cacheInfo" : "Franz cache is currently using {size} of disk space.", | ||
240 | "settings.app.currentVersion" : "Current version:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "Open in background", | ||
242 | "settings.app.form.autoLaunchOnStart" : "Launch Franz on start", | ||
243 | "settings.app.form.beta" : "Include beta versions", | ||
244 | "settings.app.form.darkMode" : "Join the Dark Side", | ||
245 | "settings.app.form.enableGPUAcceleration" : "Enable GPU Acceleration", | ||
246 | "settings.app.form.enableSpellchecking" : "Enable spell checking", | ||
247 | "settings.app.form.enableSystemTray" : "Show Franz in system tray", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "Language", | ||
251 | "settings.app.form.minimizeToSystemTray" : "Minimize Franz to system tray", | ||
252 | "settings.app.form.runInBackground" : "Keep Franz in background when closing the window", | ||
253 | "settings.app.form.showDisabledServices" : "Display disabled services tabs", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "Show unread message badge when notifications are disabled", | ||
255 | "settings.app.headline" : "Settings", | ||
256 | "settings.app.headlineAdvanced" : "Advanced", | ||
257 | "settings.app.headlineAppearance" : "Appearance", | ||
258 | "settings.app.headlineGeneral" : "General", | ||
259 | "settings.app.headlineLanguage" : "Language", | ||
260 | "settings.app.headlineUpdates" : "Updates", | ||
261 | "settings.app.languageDisclaimer" : "Official translations are English & German. All other languages are community based translations.", | ||
262 | "settings.app.restartRequired" : "Changes require restart", | ||
263 | "settings.app.subheadlineCache" : "Cache", | ||
264 | "settings.app.translationHelp" : "Help us to translate Franz into your language.", | ||
265 | "settings.app.updateStatusAvailable" : "Update available, downloading...", | ||
266 | "settings.app.updateStatusSearching" : "Is searching for update", | ||
267 | "settings.app.updateStatusUpToDate" : "You are using the latest version of Franz", | ||
268 | "settings.invite.headline" : "Invite Friends", | ||
269 | "settings.navigation.account" : "Account", | ||
270 | "settings.navigation.availableServices" : "Available services", | ||
271 | "settings.navigation.inviteFriends" : "Invite Friends", | ||
272 | "settings.navigation.logout" : "Logout", | ||
273 | "settings.navigation.settings" : "Settings", | ||
274 | "settings.navigation.team" : "Manage Team", | ||
275 | "settings.navigation.yourServices" : "Your services", | ||
276 | "settings.navigation.yourWorkspaces" : "Your workspaces", | ||
277 | "settings.recipes.all" : "All services", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "Available services", | ||
286 | "settings.recipes.missingService" : "Missing a service?", | ||
287 | "settings.recipes.mostPopular" : "Most popular", | ||
288 | "settings.recipes.nothingFound" : "Sorry, but no service matched your search term.", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "Service successfully added", | ||
290 | "settings.searchService" : "Search service", | ||
291 | "settings.service.error.goBack" : "Back to services", | ||
292 | "settings.service.error.headline" : "Error", | ||
293 | "settings.service.error.message" : "Could not load service recipe.", | ||
294 | "settings.service.form.addServiceHeadline" : "Add {name}", | ||
295 | "settings.service.form.availableServices" : "Available services", | ||
296 | "settings.service.form.customUrl" : "Custom server", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "To add self hosted services, you need a Franz Premium Supporter Account.", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "Upgrade your account", | ||
299 | "settings.service.form.customUrlValidationError" : "Could not validate custom {name} server.", | ||
300 | "settings.service.form.deleteButton" : "Delete service", | ||
301 | "settings.service.form.editServiceHeadline" : "Edit {name}", | ||
302 | "settings.service.form.enableAudio" : "Enable audio", | ||
303 | "settings.service.form.enableBadge" : "Show unread message badges", | ||
304 | "settings.service.form.enableDarkMode" : "Enable Dark Mode", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "Enable notifications", | ||
307 | "settings.service.form.enableService" : "Enable service", | ||
308 | "settings.service.form.headlineBadges" : "Unread message badges", | ||
309 | "settings.service.form.headlineGeneral" : "General", | ||
310 | "settings.service.form.headlineNotifications" : "Notifications", | ||
311 | "settings.service.form.icon" : "Custom icon", | ||
312 | "settings.service.form.iconDelete" : "Delete", | ||
313 | "settings.service.form.iconUpload" : "Drop your image, or click here", | ||
314 | "settings.service.form.indirectMessageInfo" : "You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | ||
315 | "settings.service.form.indirectMessages" : "Show message badge for all new messages", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "When disabled, all notification sounds and audio playback are muted", | ||
318 | "settings.service.form.name" : "Name", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS Proxy Settings", | ||
320 | "settings.service.form.proxy.host" : "Proxy Host\/IP", | ||
321 | "settings.service.form.proxy.info" : "Proxy settings will not synced with the Franz servers.", | ||
322 | "settings.service.form.proxy.isEnabled" : "Use Proxy", | ||
323 | "settings.service.form.proxy.password" : "Password (optional)", | ||
324 | "settings.service.form.proxy.port" : "Port", | ||
325 | "settings.service.form.proxy.restartInfo" : "Please restart Franz after changing proxy Settings.", | ||
326 | "settings.service.form.proxy.user" : "User (optional)", | ||
327 | "settings.service.form.saveButton" : "Save service", | ||
328 | "settings.service.form.tabHosted" : "Hosted", | ||
329 | "settings.service.form.tabOnPremise" : "Self hosted ⭐️", | ||
330 | "settings.service.form.team" : "Team", | ||
331 | "settings.service.form.useHostedService" : "Use the hosted {name} service.", | ||
332 | "settings.service.form.yourServices" : "Your services", | ||
333 | "settings.services.deletedInfo" : "Service has been deleted", | ||
334 | "settings.services.discoverServices" : "Discover services", | ||
335 | "settings.services.headline" : "Your services", | ||
336 | "settings.services.noServicesAdded" : "You haven't added any services yet.", | ||
337 | "settings.services.servicesRequestFailed" : "Could not load your services", | ||
338 | "settings.services.tooltip.isDisabled" : "Service is disabled", | ||
339 | "settings.services.tooltip.isMuted" : "All sounds are muted", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "Notifications are disabled", | ||
341 | "settings.services.updatedInfo" : "Your changes have been saved", | ||
342 | "settings.team.contentHeadline" : "Franz for Teams", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "Team", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "Manage your Team on meetfranz.com", | ||
347 | "settings.team.upgradeAction" : "Upgrade your Account", | ||
348 | "settings.user.form.accountType.company" : "Company", | ||
349 | "settings.user.form.accountType.individual" : "Individual", | ||
350 | "settings.user.form.accountType.label" : "Account type", | ||
351 | "settings.user.form.accountType.non-profit" : "Non-Profit", | ||
352 | "settings.user.form.currentPassword" : "Current password", | ||
353 | "settings.user.form.email" : "Email", | ||
354 | "settings.user.form.firstname" : "First Name", | ||
355 | "settings.user.form.lastname" : "Last Name", | ||
356 | "settings.user.form.newPassword" : "New password", | ||
357 | "settings.workspace.add.form.name" : "Name", | ||
358 | "settings.workspace.add.form.submitButton" : "Create workspace", | ||
359 | "settings.workspace.form.buttonDelete" : "Delete workspace", | ||
360 | "settings.workspace.form.buttonSave" : "Save workspace", | ||
361 | "settings.workspace.form.name" : "Name", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "Services in this Workspace", | ||
363 | "settings.workspace.form.yourWorkspaces" : "Your workspaces", | ||
364 | "settings.workspaces.deletedInfo" : "Workspace has been deleted", | ||
365 | "settings.workspaces.headline" : "Your workspaces", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "You haven't added any workspaces yet.", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "Try again", | ||
368 | "settings.workspaces.updatedInfo" : "Your changes have been saved", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "Could not load your workspaces", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "Add new service", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "Close workspace drawer", | ||
378 | "sidebar.muteApp" : "Disable notifications & audio", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "Open workspace drawer", | ||
381 | "sidebar.settings" : "Settings", | ||
382 | "sidebar.unmuteApp" : "Enable notifications & audio", | ||
383 | "signup.email.label" : "Email address", | ||
384 | "signup.emailDuplicate" : "A user with that email address already exists", | ||
385 | "signup.firstname.label" : "First Name", | ||
386 | "signup.headline" : "Sign up", | ||
387 | "signup.lastname.label" : "Last Name", | ||
388 | "signup.legal.info" : "By creating a Franz account you accept the", | ||
389 | "signup.legal.privacy" : "Privacy Statement", | ||
390 | "signup.legal.terms" : "Terms of service", | ||
391 | "signup.link.login" : "Already have an account, sign in?", | ||
392 | "signup.password.label" : "Password", | ||
393 | "signup.submit.label" : "Create account", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "Upgrade Account", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "Cancel", | ||
406 | "subscriptionPopup.buttonDone" : "Done", | ||
407 | "tabs.item.deleteService" : "Delete service", | ||
408 | "tabs.item.disableAudio" : "Disable audio", | ||
409 | "tabs.item.disableNotifications" : "Disable notifications", | ||
410 | "tabs.item.disableService" : "Disable service", | ||
411 | "tabs.item.edit" : "Edit", | ||
412 | "tabs.item.enableAudio" : "Enable audio", | ||
413 | "tabs.item.enableNotification" : "Enable notifications", | ||
414 | "tabs.item.enableService" : "Enable service", | ||
415 | "tabs.item.reload" : "Reload", | ||
416 | "validation.email" : "{field} is not valid", | ||
417 | "validation.minLength" : "{field} should be at least {length} characters long", | ||
418 | "validation.oneRequired" : "At least one is required", | ||
419 | "validation.required" : "{field} is required", | ||
420 | "validation.url" : "{field} is not a valid URL", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "Home", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "Reload", | ||
426 | "welcome.loginButton" : "Login to your account", | ||
427 | "welcome.signupButton" : "Create a free account", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "All services", | ||
430 | "workspaceDrawer.headline" : "Workspaces", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/locales/whitelist_en-US.json b/src/i18n/locales/whitelist_en-US.json index fe51488c7..32960f8ce 100644 --- a/src/i18n/locales/whitelist_en-US.json +++ b/src/i18n/locales/whitelist_en-US.json | |||
@@ -1 +1,2 @@ | |||
1 | [] | 1 | [ |
2 | ] \ No newline at end of file | ||
diff --git a/src/i18n/locales/zh-HANS.json b/src/i18n/locales/zh-HANS.json new file mode 100644 index 000000000..5783b301c --- /dev/null +++ b/src/i18n/locales/zh-HANS.json | |||
@@ -0,0 +1,439 @@ | |||
1 | { | ||
2 | "app.errorHandler.action" : "重新加载", | ||
3 | "app.errorHandler.headline" : "出现问题了", | ||
4 | "connectionLostBanner.cta" : "重启服务", | ||
5 | "connectionLostBanner.informationLink" : "What happened?", | ||
6 | "connectionLostBanner.message" : "Oh no! Franz lost the connection to {name}.", | ||
7 | "feature.announcements.changelog.headline" : "在{version}版本中的更改", | ||
8 | "feature.delayApp.headline" : "升级您的Franz订阅计划以跳过等待", | ||
9 | "feature.delayApp.text" : "Franz会在 {seconds} 秒后继续。", | ||
10 | "feature.delayApp.trial.action" : "是的,我想开始14天的Franz 专业版免费试用", | ||
11 | "feature.delayApp.trial.actionShort" : "激活免费的Franz 专业版试用", | ||
12 | "feature.delayApp.trial.headline" : "免费获得Franz 专业版 14天试用版,无需等待", | ||
13 | "feature.delayApp.upgrade.action" : "更新Franz", | ||
14 | "feature.delayApp.upgrade.actionShort" : "升级账户", | ||
15 | "feature.planSelection.cta.ctaDowngradeFree" : "降级到Free订阅计划", | ||
16 | "feature.planSelection.cta.stayOnFree" : "保持Free订阅计划", | ||
17 | "feature.planSelection.cta.trial" : "开始我的14天免费试用", | ||
18 | "feature.planSelection.cta.upgradePersonal" : "选择Personal订阅计划", | ||
19 | "feature.planSelection.cta.upgradePro" : "选择Professional订阅计划", | ||
20 | "feature.planSelection.free.text" : "基本功能", | ||
21 | "feature.planSelection.fullFeatureList" : "完整的对比所有订阅计划", | ||
22 | "feature.planSelection.fullscreen.dialog.cta.downgrade" : "降级到Free", | ||
23 | "feature.planSelection.fullscreen.dialog.cta.upgrade" : "选择Personal订阅计划", | ||
24 | "feature.planSelection.fullscreen.dialog.message" : "您将降级到我们的免费帐户。您确定吗?单击此处每月只需{currency} {price}即可获得更多服务和功能。", | ||
25 | "feature.planSelection.fullscreen.dialog.title" : "降级您的Franz订阅计划", | ||
26 | "feature.planSelection.fullscreen.subheadline" : "是时候做出选择了。 Franz在我们的Personal和Professional订阅计划上表现最佳。请看看并为做出您的最佳选择。", | ||
27 | "feature.planSelection.fullscreen.welcome" : "你已经准备好了吗, {name}?", | ||
28 | "feature.planSelection.personal.text" : "更多的服务,无需等待 - 个人使用的理想选择。", | ||
29 | "feature.planSelection.pricesBasedOnAnnualPayment" : "所有价格均基于年度付款", | ||
30 | "feature.planSelection.pro.text" : "为您和您的团队提供无限的服务和专业功能。", | ||
31 | "feature.serviceLimit.limitReached" : "您已在计划中包含的{limit}个服务中添加了{amount}个。请升级您的帐户以添加更多服务。", | ||
32 | "feature.shareFranz.action.email" : "使用电子邮件发送", | ||
33 | "feature.shareFranz.action.facebook" : "在Facebook上分享", | ||
34 | "feature.shareFranz.action.twitter" : "在Twitter上分享", | ||
35 | "feature.shareFranz.headline" : "Franz is better together!", | ||
36 | "feature.shareFranz.shareText.email" : "我们在Franz里添加了 {count} 服务!请前往 www.meetfranz.com 获得支持WhatsApp,Messenger,Slack,Skype的免费应用程序. ", | ||
37 | "feature.shareFranz.shareText.twitter" : "我已经为Franz添加了{count}个服务!在www.meetfranz.com\/cc @FranzMessenger上获得适用于WhatsApp,Messenger,Slack,Skype和co的免费应用程序", | ||
38 | "feature.shareFranz.text" : "告诉你的朋友和同事Franz有多棒并且帮助我们传播Franz。", | ||
39 | "feature.todos.premium.info" : "Franz Todos现在对高级用户可用!", | ||
40 | "feature.todos.premium.rollout" : "Everyone else will have to wait a little longer.", | ||
41 | "feature.todos.premium.upgrade" : "升级帐户", | ||
42 | "feature.trialStatusBar.cta" : "立即升级", | ||
43 | "feature.trialStatusBar.expired" : "您的Franz免费订阅计划{plan}已过期,请升级您的帐户。", | ||
44 | "feature.trialStatusBar.fullscreen.dialog.cta.downgrade" : "降级free订阅计划", | ||
45 | "feature.trialStatusBar.fullscreen.dialog.cta.upgrade" : "选择Personal订阅计划", | ||
46 | "feature.trialStatusBar.fullscreen.dialog.message" : "您将降级到我们的免费帐户。您确定吗?单击此处每月只需{currency} {price}即可获得更多服务和功能。", | ||
47 | "feature.trialStatusBar.fullscreen.dialog.title" : "降级您的Franz订阅计划", | ||
48 | "feature.trialStatusBar.restTime" : "您的 Franz 免费 {plan} 试用期在 {时间} 结束。", | ||
49 | "global.api.unhealthy" : "无法连接Franz在线服务", | ||
50 | "global.franzProRequired" : "需要 Franz 专业版。", | ||
51 | "global.notConnectedToTheInternet" : "没有网络服务", | ||
52 | "global.spellchecker.useDefault" : "使用系统默认设置({default})", | ||
53 | "global.spellchecking.autodetect" : "自动检测语言", | ||
54 | "global.spellchecking.autodetect.short" : "自动", | ||
55 | "global.spellchecking.language" : "语言拼写检查", | ||
56 | "global.upgradeButton.upgradeToPro" : "升级到 Franz 专业版。", | ||
57 | "import.headline" : "导入自定义Franz 4服务", | ||
58 | "import.notSupportedHeadline" : "Franz 5 目前不支持此项服务", | ||
59 | "import.skip.label" : "手动添加服务", | ||
60 | "import.submit.label" : "导入服务", | ||
61 | "infobar.buttonChangelog" : "新功能", | ||
62 | "infobar.buttonInstallUpdate" : "重启并安装更新", | ||
63 | "infobar.buttonReloadServices" : "重新加载服务", | ||
64 | "infobar.requiredRequestsFailed" : "无法加载服务列表和用户信息", | ||
65 | "infobar.servicesUpdated" : "服务已更新", | ||
66 | "infobar.trialActivated" : "您的试用已成功激活。祝您愉快!", | ||
67 | "infobar.updateAvailable" : "Franz更新可用.", | ||
68 | "invite.email.label" : "电子邮件地址", | ||
69 | "invite.headline.friends" : "邀请3个好友或同事", | ||
70 | "invite.name.label" : "名字", | ||
71 | "invite.skip.label" : "稍后再进行此项操作", | ||
72 | "invite.submit.label" : "发送邀请", | ||
73 | "invite.successInfo" : "邀请发送成功", | ||
74 | "login.email.label" : "Email 地址", | ||
75 | "login.headline" : "登陆", | ||
76 | "login.invalidCredentials" : "Email或密码无效", | ||
77 | "login.link.password" : "重置密码", | ||
78 | "login.link.signup" : "创建账户", | ||
79 | "login.password.label" : "密码:", | ||
80 | "login.serverLogout" : "您的登陆已过期,请重新登录。", | ||
81 | "login.submit.label" : "登陆", | ||
82 | "login.tokenExpired" : "登录已过期,请重新登录", | ||
83 | "menu.Todoss.closeTodosDrawer" : "Close Todos drawer", | ||
84 | "menu.Todoss.openTodosDrawer" : "Open Todos drawer", | ||
85 | "menu.app.about" : "关于 Franz", | ||
86 | "menu.app.announcement" : "新变化", | ||
87 | "menu.app.checkForUpdates" : "检查更新", | ||
88 | "menu.app.hide" : "隐藏", | ||
89 | "menu.app.hideOthers" : "隐藏其它", | ||
90 | "menu.app.quit" : "退出", | ||
91 | "menu.app.settings" : "设置", | ||
92 | "menu.app.unhide" : "显示", | ||
93 | "menu.edit" : "编辑", | ||
94 | "menu.edit.copy" : "复制", | ||
95 | "menu.edit.cut" : "剪切", | ||
96 | "menu.edit.delete" : "删除", | ||
97 | "menu.edit.emojiSymbols" : "表情与符号", | ||
98 | "menu.edit.paste" : "粘贴", | ||
99 | "menu.edit.pasteAndMatchStyle" : "粘贴并适应格式", | ||
100 | "menu.edit.redo" : "重做", | ||
101 | "menu.edit.selectAll" : "全选", | ||
102 | "menu.edit.speech" : "演讲", | ||
103 | "menu.edit.startDictation" : "开始听写", | ||
104 | "menu.edit.startSpeaking" : "开始说话", | ||
105 | "menu.edit.stopSpeaking" : "停止说话", | ||
106 | "menu.edit.undo" : "撤销", | ||
107 | "menu.file" : "文件", | ||
108 | "menu.help" : "帮助", | ||
109 | "menu.help.changelog" : "更新日志", | ||
110 | "menu.help.debugInfo" : "复制调试信息", | ||
111 | "menu.help.debugInfoCopiedBody" : "您的调试信息已复制到剪贴板。", | ||
112 | "menu.help.debugInfoCopiedHeadline" : "Franz 调试信息", | ||
113 | "menu.help.learnMore" : "了解更多", | ||
114 | "menu.help.privacy" : "隐私条款", | ||
115 | "menu.help.support" : "支持", | ||
116 | "menu.help.tos" : "服务条款", | ||
117 | "menu.services" : "服务", | ||
118 | "menu.services.activatePreviousService" : "激活以前的服务", | ||
119 | "menu.services.addNewService" : "Add New Service", | ||
120 | "menu.services.goHome" : "主页", | ||
121 | "menu.services.setNextServiceActive" : "激活下一个服务", | ||
122 | "menu.todos" : "Todos", | ||
123 | "menu.todos.enableTodos" : "Enable Todos", | ||
124 | "menu.view" : "视图", | ||
125 | "menu.view.enterFullScreen" : "全屏", | ||
126 | "menu.view.exitFullScreen" : "退出全屏", | ||
127 | "menu.view.reloadFranz" : "重启Franz", | ||
128 | "menu.view.reloadService" : "重启服务", | ||
129 | "menu.view.reloadTodos" : "Reload ToDos", | ||
130 | "menu.view.resetZoom" : "实际尺寸", | ||
131 | "menu.view.toggleDevTools" : "打开开发者工具", | ||
132 | "menu.view.toggleFullScreen" : "切换全屏", | ||
133 | "menu.view.toggleServiceDevTools" : "切换服务开发工具", | ||
134 | "menu.view.toggleTodosDevTools" : "Toggle Todos Developer Tools", | ||
135 | "menu.view.zoomIn" : "放大", | ||
136 | "menu.view.zoomOut" : "缩小", | ||
137 | "menu.window" : "窗口", | ||
138 | "menu.window.close" : "关闭", | ||
139 | "menu.window.minimize" : "最小化", | ||
140 | "menu.workspaces" : "工作组", | ||
141 | "menu.workspaces.addNewWorkspace" : "增加一个工作组", | ||
142 | "menu.workspaces.closeWorkspaceDrawer" : "关闭工作区列表", | ||
143 | "menu.workspaces.defaultWorkspace" : "所有服务", | ||
144 | "menu.workspaces.openWorkspaceDrawer" : "打开工作组列表", | ||
145 | "password.email.label" : "Email地址", | ||
146 | "password.headline" : "重置密码", | ||
147 | "password.link.login" : "登录到您的帐户", | ||
148 | "password.link.signup" : "创建一个免费账户", | ||
149 | "password.noUser" : "该邮箱尚未注册", | ||
150 | "password.submit.label" : "提交", | ||
151 | "password.successInfo" : "请检查您的 email 邮箱", | ||
152 | "premiumFeature.button.upgradeAccount" : "升级账户", | ||
153 | "pricing.features.accountSync" : "帐户同步", | ||
154 | "pricing.features.adFree" : "永远无广告", | ||
155 | "pricing.features.appDelays" : "没有等待画面", | ||
156 | "pricing.features.appDelaysEnabled" : "Occasional Waiting Screens", | ||
157 | "pricing.features.customWebsites" : "添加自定义网站", | ||
158 | "pricing.features.desktopNotifications" : "桌面通知", | ||
159 | "pricing.features.onPremise" : "本地和其他托管服务", | ||
160 | "pricing.features.recipes" : "从70多种服务中选择", | ||
161 | "pricing.features.serviceProxies" : "代理服务", | ||
162 | "pricing.features.spellchecker" : "拼写检查器支持", | ||
163 | "pricing.features.teamManagement" : "团队管理", | ||
164 | "pricing.features.thirdPartyServices" : "安装第三方服务", | ||
165 | "pricing.features.unlimitedServices" : "Add unlimited services", | ||
166 | "pricing.features.upToSixServices" : "Add up to 6 services", | ||
167 | "pricing.features.upToThreeServices" : "Add up to 3 services", | ||
168 | "pricing.features.workspaces" : "工作组", | ||
169 | "pricing.plan.free" : "免费", | ||
170 | "pricing.plan.legacy" : "Premium", | ||
171 | "pricing.plan.personal" : "Personal", | ||
172 | "pricing.plan.personal-monthly" : "Personal Monthly", | ||
173 | "pricing.plan.personal-yearly" : "Personal Yearly", | ||
174 | "pricing.plan.pro" : "Professional", | ||
175 | "pricing.plan.pro-monthly" : "Professional Monthly", | ||
176 | "pricing.plan.pro-yearly" : "Professional Yearly", | ||
177 | "pricing.trial.cta.accept" : "Start my 14-day Franz Professional Trial ", | ||
178 | "pricing.trial.cta.skip" : "Continue to Franz", | ||
179 | "pricing.trial.cta.start" : "Start using Franz", | ||
180 | "pricing.trial.error" : "Sorry, we could not activate your trial!", | ||
181 | "pricing.trial.features.headline" : "Franz Professional includes:", | ||
182 | "pricing.trial.headline.pro" : "Hi {name}, welcome to Franz", | ||
183 | "pricing.trial.intro.happyMessaging" : "Happy messaging,", | ||
184 | "pricing.trial.intro.specialTreat" : "We have a special treat for you.", | ||
185 | "pricing.trial.intro.tryPro" : "Enjoy the full Franz Professional experience completely free for 14 days.", | ||
186 | "pricing.trial.terms.automaticTrialEnd" : "Your free trial ends automatically after 14 days", | ||
187 | "pricing.trial.terms.headline" : "No strings attached", | ||
188 | "pricing.trial.terms.noCreditCard" : "No credit card required", | ||
189 | "pricing.trial.terms.trialWorth" : "Free trial (normally {currency}{price} per month)", | ||
190 | "service.crashHandler.action" : "重新载入", | ||
191 | "service.crashHandler.autoReload" : "在{seconds}秒内尝试自动恢复{name}", | ||
192 | "service.crashHandler.headline" : "啊,糟糕!", | ||
193 | "service.crashHandler.text" : "项目{name}引起了一个错误。", | ||
194 | "service.disabledHandler.action" : "启用{name}", | ||
195 | "service.disabledHandler.headline" : "项目{name}已停用", | ||
196 | "service.errorHandler.action" : "重新载入 {name}", | ||
197 | "service.errorHandler.editAction" : "编辑{name}", | ||
198 | "service.errorHandler.headline" : "啊,糟糕!", | ||
199 | "service.errorHandler.message" : "错误", | ||
200 | "service.errorHandler.text" : "{name} 没有办法加载", | ||
201 | "service.restrictedHandler.action" : "升级帐户", | ||
202 | "service.restrictedHandler.customUrl.headline" : "Franz Professional Plan required", | ||
203 | "service.restrictedHandler.customUrl.text" : "Please upgrade to the Franz Professional plan to use custom urls & self hosted services.", | ||
204 | "service.restrictedHandler.serviceLimit.headline" : "You have reached your service limit.", | ||
205 | "service.restrictedHandler.serviceLimit.text" : "Please upgrade your account to use more than {count} services.", | ||
206 | "service.webviewLoader.loading" : "正在加载,请稍后", | ||
207 | "services.getStarted" : "开始", | ||
208 | "services.welcome" : "欢迎使用 Franz", | ||
209 | "settings.account.account.editButton" : "编辑账户", | ||
210 | "settings.account.accountType.basic" : "基本账户", | ||
211 | "settings.account.accountType.premium" : "高级支持者账户", | ||
212 | "settings.account.buttonSave" : "上传文件", | ||
213 | "settings.account.deleteAccount" : "删除账号", | ||
214 | "settings.account.deleteEmailSent" : "您将收到一封邮件,在这封邮件中包含有确认删除您的账号的链接。请注意,您的账号和数据无法被恢复!", | ||
215 | "settings.account.deleteInfo" : "如果您不再需要Franz账户,您可以在这里删除您的账户及其相关联的数据。", | ||
216 | "settings.account.headline" : "账户", | ||
217 | "settings.account.headlineAccount" : "账户信息", | ||
218 | "settings.account.headlineDangerZone" : "注意!", | ||
219 | "settings.account.headlineInvoices" : "发票", | ||
220 | "settings.account.headlinePassword" : "修改密码", | ||
221 | "settings.account.headlineProfile" : "更新个人资料", | ||
222 | "settings.account.headlineSubscription" : "您的订阅", | ||
223 | "settings.account.headlineTrialUpgrade" : "Get the free 14 day Franz Professional Trial", | ||
224 | "settings.account.headlineUpgradeAccount" : "Upgrade your account & get the full Franz experience", | ||
225 | "settings.account.invoiceDownload" : "下载", | ||
226 | "settings.account.manageSubscription.label" : "管理您的订阅", | ||
227 | "settings.account.successInfo" : "已保存您的设置", | ||
228 | "settings.account.trial" : "Free Trial", | ||
229 | "settings.account.trialEndsIn" : "Your free trial ends in {duration}.", | ||
230 | "settings.account.trialUpdateBillingInfo" : "Please update your billing info to continue using {license} after your trial period.", | ||
231 | "settings.account.tryReloadServices" : "重试", | ||
232 | "settings.account.tryReloadUserInfoRequest" : "重试", | ||
233 | "settings.account.upgradeToPro.label" : "升级到 Franz 专业版。", | ||
234 | "settings.account.userInfoRequestFailed" : "无法加载用户信息", | ||
235 | "settings.account.yourLicense" : "Your Franz License", | ||
236 | "settings.app.buttonClearAllCache" : "清除缓存", | ||
237 | "settings.app.buttonInstallUpdate" : "重启并安装更新", | ||
238 | "settings.app.buttonSearchForUpdate" : "检查更新", | ||
239 | "settings.app.cacheInfo" : "Franz 的缓存占用磁盘:{size} .", | ||
240 | "settings.app.currentVersion" : "当前版本:", | ||
241 | "settings.app.form.autoLaunchInBackground" : "在后台打开", | ||
242 | "settings.app.form.autoLaunchOnStart" : "开机启动Franz", | ||
243 | "settings.app.form.beta" : "包含测试版本", | ||
244 | "settings.app.form.darkMode" : "加入黑色主题", | ||
245 | "settings.app.form.enableGPUAcceleration" : "启用 GPU 加速", | ||
246 | "settings.app.form.enableSpellchecking" : "启用拼写检查", | ||
247 | "settings.app.form.enableSystemTray" : "在系统托盘中显示 Franz", | ||
248 | "settings.app.form.enableTodos" : "Enable Franz Todos", | ||
249 | "settings.app.form.keepAllWorkspacesLoaded" : "Keep all workspaces loaded", | ||
250 | "settings.app.form.language" : "语言", | ||
251 | "settings.app.form.minimizeToSystemTray" : "最小化 Franz 到系统托盘", | ||
252 | "settings.app.form.runInBackground" : "关闭窗口时保持 Franz 在后台运行", | ||
253 | "settings.app.form.showDisabledServices" : "显示已禁用的服务标签页", | ||
254 | "settings.app.form.showMessagesBadgesWhenMuted" : "在通知被禁用时显示未读消息提示。", | ||
255 | "settings.app.headline" : "设置", | ||
256 | "settings.app.headlineAdvanced" : "高级", | ||
257 | "settings.app.headlineAppearance" : "外观", | ||
258 | "settings.app.headlineGeneral" : "通用", | ||
259 | "settings.app.headlineLanguage" : "语言", | ||
260 | "settings.app.headlineUpdates" : "更新", | ||
261 | "settings.app.languageDisclaimer" : "英语和德语为官方翻译。其他语言都是来自社区的翻译", | ||
262 | "settings.app.restartRequired" : "重启后生效", | ||
263 | "settings.app.subheadlineCache" : "缓存", | ||
264 | "settings.app.translationHelp" : "帮助我们将Franz翻译至您的语言。", | ||
265 | "settings.app.updateStatusAvailable" : "更新可用,下载中……", | ||
266 | "settings.app.updateStatusSearching" : "正在查找更新", | ||
267 | "settings.app.updateStatusUpToDate" : "您使用的Franz是最新版本", | ||
268 | "settings.invite.headline" : "邀请朋友", | ||
269 | "settings.navigation.account" : "账户", | ||
270 | "settings.navigation.availableServices" : "可用的服务", | ||
271 | "settings.navigation.inviteFriends" : "邀请朋友", | ||
272 | "settings.navigation.logout" : "退出账户", | ||
273 | "settings.navigation.settings" : "设置", | ||
274 | "settings.navigation.team" : "管理团队", | ||
275 | "settings.navigation.yourServices" : "您的服务", | ||
276 | "settings.navigation.yourWorkspaces" : "你的工作组", | ||
277 | "settings.recipes.all" : "所有服务", | ||
278 | "settings.recipes.custom" : "Custom Services", | ||
279 | "settings.recipes.customService.headline.communityRecipes" : "Community 3rd Party Recipes", | ||
280 | "settings.recipes.customService.headline.customRecipes" : "Custom 3rd Party Recipes", | ||
281 | "settings.recipes.customService.headline.devRecipes" : "Your Development Service Recipes", | ||
282 | "settings.recipes.customService.intro" : "To add a custom service, copy the service recipe to:", | ||
283 | "settings.recipes.customService.openDevDocs" : "Developer Documentation", | ||
284 | "settings.recipes.customService.openFolder" : "Open folder", | ||
285 | "settings.recipes.headline" : "可用的服务", | ||
286 | "settings.recipes.missingService" : "服务丢失?", | ||
287 | "settings.recipes.mostPopular" : "最受欢迎的", | ||
288 | "settings.recipes.nothingFound" : "抱歉,没有找到相关服务", | ||
289 | "settings.recipes.servicesSuccessfulAddedInfo" : "服务添加成功", | ||
290 | "settings.searchService" : "搜索服务", | ||
291 | "settings.service.error.goBack" : "返回服务", | ||
292 | "settings.service.error.headline" : "错误", | ||
293 | "settings.service.error.message" : "无法加载服务配置。", | ||
294 | "settings.service.form.addServiceHeadline" : "添加 {name}", | ||
295 | "settings.service.form.availableServices" : "可用的服务", | ||
296 | "settings.service.form.customUrl" : "自定义服务器", | ||
297 | "settings.service.form.customUrlPremiumInfo" : "如要添加自设服务,您需要一个Franz高级支持者账户。", | ||
298 | "settings.service.form.customUrlUpgradeAccount" : "升级您的账户", | ||
299 | "settings.service.form.customUrlValidationError" : "无法验证自定义{name}服务器。", | ||
300 | "settings.service.form.deleteButton" : "删除服务", | ||
301 | "settings.service.form.editServiceHeadline" : "编辑{name}", | ||
302 | "settings.service.form.enableAudio" : "启用声音", | ||
303 | "settings.service.form.enableBadge" : "启用未读消息通知", | ||
304 | "settings.service.form.enableDarkMode" : "使用黑色模式", | ||
305 | "settings.service.form.enableHibernation" : "Enable hibernation", | ||
306 | "settings.service.form.enableNotification" : "启用通知", | ||
307 | "settings.service.form.enableService" : "启用服务", | ||
308 | "settings.service.form.headlineBadges" : "未读消息通知", | ||
309 | "settings.service.form.headlineGeneral" : "常规", | ||
310 | "settings.service.form.headlineNotifications" : "未读消息通知", | ||
311 | "settings.service.form.icon" : "自定义图标", | ||
312 | "settings.service.form.iconDelete" : "删除", | ||
313 | "settings.service.form.iconUpload" : "点击或把图片拖放到这里", | ||
314 | "settings.service.form.indirectMessageInfo" : "频道内的所有新消息都会通知到您,包括@用户名、@频道等等...", | ||
315 | "settings.service.form.indirectMessages" : "显示所有新消息的标志", | ||
316 | "settings.service.form.isHibernatedEnabledInfo" : "When enabled, a service will be shut down after a period of time to save system resources.", | ||
317 | "settings.service.form.isMutedInfo" : "禁用后所有的通知和软件声音都会消失", | ||
318 | "settings.service.form.name" : "名字", | ||
319 | "settings.service.form.proxy.headline" : "HTTP\/HTTPS 端口设定", | ||
320 | "settings.service.form.proxy.host" : "端口主机\/IP", | ||
321 | "settings.service.form.proxy.info" : "代理服务器的设置将不会与 Franz 的服务器同步。", | ||
322 | "settings.service.form.proxy.isEnabled" : "使用代理", | ||
323 | "settings.service.form.proxy.password" : "密码(可选)", | ||
324 | "settings.service.form.proxy.port" : "端口", | ||
325 | "settings.service.form.proxy.restartInfo" : "请在设定端口后重启Franz。", | ||
326 | "settings.service.form.proxy.user" : "用户(可选)", | ||
327 | "settings.service.form.saveButton" : "保存服务", | ||
328 | "settings.service.form.tabHosted" : "托管", | ||
329 | "settings.service.form.tabOnPremise" : "自托管", | ||
330 | "settings.service.form.team" : "团队", | ||
331 | "settings.service.form.useHostedService" : "使用主服务", | ||
332 | "settings.service.form.yourServices" : "您的服务", | ||
333 | "settings.services.deletedInfo" : "已删除服务", | ||
334 | "settings.services.discoverServices" : "发现服务", | ||
335 | "settings.services.headline" : "您的服务", | ||
336 | "settings.services.noServicesAdded" : "您还没添加任何服务", | ||
337 | "settings.services.servicesRequestFailed" : "无法加载你的服务", | ||
338 | "settings.services.tooltip.isDisabled" : "已禁止服务", | ||
339 | "settings.services.tooltip.isMuted" : "已全部静音", | ||
340 | "settings.services.tooltip.notificationsDisabled" : "已禁用通知", | ||
341 | "settings.services.updatedInfo" : "已保存您的设置", | ||
342 | "settings.team.contentHeadline" : "适用于团队的Franz", | ||
343 | "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!", | ||
344 | "settings.team.headline" : "团队", | ||
345 | "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.", | ||
346 | "settings.team.manageAction" : "在meetfranz.com管理你的团队", | ||
347 | "settings.team.upgradeAction" : "注册账号", | ||
348 | "settings.user.form.accountType.company" : "公司", | ||
349 | "settings.user.form.accountType.individual" : "个人", | ||
350 | "settings.user.form.accountType.label" : "账户类型", | ||
351 | "settings.user.form.accountType.non-profit" : "非盈利", | ||
352 | "settings.user.form.currentPassword" : "当前密码", | ||
353 | "settings.user.form.email" : "电子邮件", | ||
354 | "settings.user.form.firstname" : "名字", | ||
355 | "settings.user.form.lastname" : "姓氏", | ||
356 | "settings.user.form.newPassword" : "新的密码", | ||
357 | "settings.workspace.add.form.name" : "姓名", | ||
358 | "settings.workspace.add.form.submitButton" : "创建工作组", | ||
359 | "settings.workspace.form.buttonDelete" : "删除工作组", | ||
360 | "settings.workspace.form.buttonSave" : "保存工作组", | ||
361 | "settings.workspace.form.name" : "名字", | ||
362 | "settings.workspace.form.servicesInWorkspaceHeadline" : "这个工作组里的服务", | ||
363 | "settings.workspace.form.yourWorkspaces" : "你的工作组", | ||
364 | "settings.workspaces.deletedInfo" : "此工作组已被删除", | ||
365 | "settings.workspaces.headline" : "你的工作组", | ||
366 | "settings.workspaces.noWorkspacesAdded" : "你尚未添加任何工作组。", | ||
367 | "settings.workspaces.tryReloadWorkspaces" : "重试", | ||
368 | "settings.workspaces.updatedInfo" : "已保存您的设置", | ||
369 | "settings.workspaces.workspaceFeatureHeadline" : "Less is More: Introducing Franz Workspaces", | ||
370 | "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.", | ||
371 | "settings.workspaces.workspacesRequestFailed" : "不能加载你的工作组", | ||
372 | "setupAssistant.headline" : "Let's get started", | ||
373 | "setupAssistant.subheadline" : "Choose from our most used services and get back on top of your messaging now.", | ||
374 | "setupAssistant.submit.label" : "Let's go", | ||
375 | "sidebar.addNewService" : "添加新服务", | ||
376 | "sidebar.closeTodosDrawer" : "Close Franz Todos", | ||
377 | "sidebar.closeWorkspaceDrawer" : "关闭工作区列表", | ||
378 | "sidebar.muteApp" : "关闭通知和声音提醒", | ||
379 | "sidebar.openTodosDrawer" : "Open Franz Todos", | ||
380 | "sidebar.openWorkspaceDrawer" : "打开工作组列表", | ||
381 | "sidebar.settings" : "设置", | ||
382 | "sidebar.unmuteApp" : "开启通知和声音提醒", | ||
383 | "signup.email.label" : "电子邮件", | ||
384 | "signup.emailDuplicate" : "此邮箱已被注册", | ||
385 | "signup.firstname.label" : "名字", | ||
386 | "signup.headline" : "注册", | ||
387 | "signup.lastname.label" : "姓氏", | ||
388 | "signup.legal.info" : "新建 Franz 账户时您将同意", | ||
389 | "signup.legal.privacy" : "隐私条款", | ||
390 | "signup.legal.terms" : "服务条款", | ||
391 | "signup.link.login" : "已有账户?登陆", | ||
392 | "signup.password.label" : "密码:", | ||
393 | "signup.submit.label" : "创建账户", | ||
394 | "subscription.bestValue" : "Best value", | ||
395 | "subscription.cta.activateTrial" : "Yes, start the free Franz Professional trial", | ||
396 | "subscription.cta.allOptions" : "See all options", | ||
397 | "subscription.cta.choosePlan" : "Choose your plan", | ||
398 | "subscription.includedProFeatures" : "The Franz Professional Plan includes:", | ||
399 | "subscription.interval.per" : "per {interval}", | ||
400 | "subscription.interval.perMonth" : "per month", | ||
401 | "subscription.interval.perMonthPerUser" : "per month & user", | ||
402 | "subscription.planItem.upgradeAccount" : "升级帐户", | ||
403 | "subscription.teaser.includedFeatures" : "Paid Franz Plans include:", | ||
404 | "subscription.teaser.intro" : "Franz 5 comes with a wide range of new features to boost up your everyday communication - batteries included. Check out our new plans and find out which one suits you most!", | ||
405 | "subscriptionPopup.buttonCancel" : "取消", | ||
406 | "subscriptionPopup.buttonDone" : "完成", | ||
407 | "tabs.item.deleteService" : "删除服务", | ||
408 | "tabs.item.disableAudio" : "禁止声音", | ||
409 | "tabs.item.disableNotifications" : "停止通知", | ||
410 | "tabs.item.disableService" : "停用服务", | ||
411 | "tabs.item.edit" : "编辑", | ||
412 | "tabs.item.enableAudio" : "启用声音", | ||
413 | "tabs.item.enableNotification" : "启用通知", | ||
414 | "tabs.item.enableService" : "启用服务", | ||
415 | "tabs.item.reload" : "重新加载", | ||
416 | "validation.email" : "无效的{field}", | ||
417 | "validation.minLength" : "{field}至少 {length} 个字符", | ||
418 | "validation.oneRequired" : "至少需要一个", | ||
419 | "validation.required" : "{field}必填", | ||
420 | "validation.url" : "无效的URL:{field} ", | ||
421 | "webControls.back" : "Back", | ||
422 | "webControls.forward" : "Forward", | ||
423 | "webControls.goHome" : "主页", | ||
424 | "webControls.openInBrowser" : "Open in Browser", | ||
425 | "webControls.reload" : "重新加载", | ||
426 | "welcome.loginButton" : "登陆您的账户", | ||
427 | "welcome.signupButton" : "创建免费账户", | ||
428 | "workspaceDrawer.addNewWorkspaceLabel" : "Add new workspace", | ||
429 | "workspaceDrawer.allServices" : "所有服务", | ||
430 | "workspaceDrawer.headline" : "工作组", | ||
431 | "workspaceDrawer.item.contextMenuEdit" : "edit", | ||
432 | "workspaceDrawer.item.noServicesAddedYet" : "No services added yet", | ||
433 | "workspaceDrawer.premiumCtaButtonLabel" : "Create your first workspace", | ||
434 | "workspaceDrawer.proFeatureBadge" : "Premium feature", | ||
435 | "workspaceDrawer.reactivatePremiumAccountLabel" : "Reactivate premium account", | ||
436 | "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>", | ||
437 | "workspaceDrawer.workspacesSettingsTooltip" : "Edit workspaces settings", | ||
438 | "workspaces.switchingIndicator.switchingTo" : "Switching to" | ||
439 | } | ||
diff --git a/src/i18n/messages/src/components/auth/ServiceAssistant.json b/src/i18n/messages/src/components/auth/ServiceAssistant.json new file mode 100644 index 000000000..9170fc183 --- /dev/null +++ b/src/i18n/messages/src/components/auth/ServiceAssistant.json | |||
@@ -0,0 +1,93 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "settings.invite.headline", | ||
4 | "defaultMessage": "!!!Invite Friends", | ||
5 | "file": "src/components/auth/ServiceAssistant.js", | ||
6 | "start": { | ||
7 | "line": 16, | ||
8 | "column": 20 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 19, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "invite.headline.friends", | ||
17 | "defaultMessage": "!!!Invite 3 of your friends or colleagues", | ||
18 | "file": "src/components/auth/ServiceAssistant.js", | ||
19 | "start": { | ||
20 | "line": 20, | ||
21 | "column": 12 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 23, | ||
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "invite.name.label", | ||
30 | "defaultMessage": "!!!Name", | ||
31 | "file": "src/components/auth/ServiceAssistant.js", | ||
32 | "start": { | ||
33 | "line": 24, | ||
34 | "column": 13 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 27, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "invite.email.label", | ||
43 | "defaultMessage": "!!!Email address", | ||
44 | "file": "src/components/auth/ServiceAssistant.js", | ||
45 | "start": { | ||
46 | "line": 28, | ||
47 | "column": 14 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 31, | ||
51 | "column": 3 | ||
52 | } | ||
53 | }, | ||
54 | { | ||
55 | "id": "invite.submit.label", | ||
56 | "defaultMessage": "!!!Send invites", | ||
57 | "file": "src/components/auth/ServiceAssistant.js", | ||
58 | "start": { | ||
59 | "line": 32, | ||
60 | "column": 21 | ||
61 | }, | ||
62 | "end": { | ||
63 | "line": 35, | ||
64 | "column": 3 | ||
65 | } | ||
66 | }, | ||
67 | { | ||
68 | "id": "invite.skip.label", | ||
69 | "defaultMessage": "!!!I want to do this later", | ||
70 | "file": "src/components/auth/ServiceAssistant.js", | ||
71 | "start": { | ||
72 | "line": 36, | ||
73 | "column": 19 | ||
74 | }, | ||
75 | "end": { | ||
76 | "line": 39, | ||
77 | "column": 3 | ||
78 | } | ||
79 | }, | ||
80 | { | ||
81 | "id": "invite.successInfo", | ||
82 | "defaultMessage": "!!!Invitations sent successfully", | ||
83 | "file": "src/components/auth/ServiceAssistant.js", | ||
84 | "start": { | ||
85 | "line": 40, | ||
86 | "column": 21 | ||
87 | }, | ||
88 | "end": { | ||
89 | "line": 43, | ||
90 | "column": 3 | ||
91 | } | ||
92 | } | ||
93 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/auth/SetupAssistant.json b/src/i18n/messages/src/components/auth/SetupAssistant.json new file mode 100644 index 000000000..03593cfbc --- /dev/null +++ b/src/i18n/messages/src/components/auth/SetupAssistant.json | |||
@@ -0,0 +1,54 @@ | |||
1 | [ | ||
2 | { | ||
3 | "id": "setupAssistant.headline", | ||
4 | "defaultMessage": "!!!Let's get started", | ||
5 | "file": "src/components/auth/SetupAssistant.js", | ||
6 | "start": { | ||
7 | "line": 19, | ||
8 | "column": 12 | ||
9 | }, | ||
10 | "end": { | ||
11 | "line": 22, | ||
12 | "column": 3 | ||
13 | } | ||
14 | }, | ||
15 | { | ||
16 | "id": "setupAssistant.subheadline", | ||
17 | "defaultMessage": "!!!Choose from our most used services and get back on top of your messaging now.", | ||
18 | "file": "src/components/auth/SetupAssistant.js", | ||
19 | "start": { | ||
20 | "line": 23, | ||
21 | "column": 15 | ||
22 | }, | ||
23 | "end": { | ||
24 | "line": 26, | ||
25 | "column": 3 | ||
26 | } | ||
27 | }, | ||
28 | { | ||
29 | "id": "setupAssistant.submit.label", | ||
30 | "defaultMessage": "!!!Let's go", | ||
31 | "file": "src/components/auth/SetupAssistant.js", | ||
32 | "start": { | ||
33 | "line": 27, | ||
34 | "column": 21 | ||
35 | }, | ||
36 | "end": { | ||
37 | "line": 30, | ||
38 | "column": 3 | ||
39 | } | ||
40 | }, | ||
41 | { | ||
42 | "id": "invite.successInfo", | ||
43 | "defaultMessage": "!!!Invitations sent successfully", | ||
44 | "file": "src/components/auth/SetupAssistant.js", | ||
45 | "start": { | ||
46 | "line": 31, | ||
47 | "column": 21 | ||
48 | }, | ||
49 | "end": { | ||
50 | "line": 34, | ||
51 | "column": 3 | ||
52 | } | ||
53 | } | ||
54 | ] \ No newline at end of file | ||
diff --git a/src/i18n/messages/src/components/services/content/Services.json b/src/i18n/messages/src/components/services/content/Services.json index 6a5eb052e..3c40b11ab 100644 --- a/src/i18n/messages/src/components/services/content/Services.json +++ b/src/i18n/messages/src/components/services/content/Services.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Welcome to Ferdi", | 4 | "defaultMessage": "!!!Welcome to Ferdi", |
5 | "file": "src/components/services/content/Services.js", | 5 | "file": "src/components/services/content/Services.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 15, | 7 | "line": 16, |
8 | "column": 11 | 8 | "column": 11 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 18, | 11 | "line": 19, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Get started", | 17 | "defaultMessage": "!!!Get started", |
18 | "file": "src/components/services/content/Services.js", | 18 | "file": "src/components/services/content/Services.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 19, | 20 | "line": 20, |
21 | "column": 14 | 21 | "column": 14 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 22, | 24 | "line": 23, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Please login to use Ferdi.", | 30 | "defaultMessage": "!!!Please login to use Ferdi.", |
31 | "file": "src/components/services/content/Services.js", | 31 | "file": "src/components/services/content/Services.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 23, | 33 | "line": 24, |
34 | "column": 9 | 34 | "column": 9 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 26, | 37 | "line": 27, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Use Ferdi without an Account", | 43 | "defaultMessage": "!!!Use Ferdi without an Account", |
44 | "file": "src/components/services/content/Services.js", | 44 | "file": "src/components/services/content/Services.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 27, | 46 | "line": 28, |
47 | "column": 14 | 47 | "column": 14 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 30, | 50 | "line": 31, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", | 56 | "defaultMessage": "!!!Optionally, you can change your Ferdi server by clicking the cog in the bottom left corner.", |
57 | "file": "src/components/services/content/Services.js", | 57 | "file": "src/components/services/content/Services.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 31, | 59 | "line": 32, |
60 | "column": 14 | 60 | "column": 14 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 34, | 63 | "line": 35, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | } | 66 | } |
diff --git a/src/i18n/messages/src/components/services/tabs/TabItem.json b/src/i18n/messages/src/components/services/tabs/TabItem.json index 08a07845c..495d35c8b 100644 --- a/src/i18n/messages/src/components/services/tabs/TabItem.json +++ b/src/i18n/messages/src/components/services/tabs/TabItem.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Reload", | 4 | "defaultMessage": "!!!Reload", |
5 | "file": "src/components/services/tabs/TabItem.js", | 5 | "file": "src/components/services/tabs/TabItem.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 15, | 7 | "line": 20, |
8 | "column": 10 | 8 | "column": 10 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 18, | 11 | "line": 23, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Edit", | 17 | "defaultMessage": "!!!Edit", |
18 | "file": "src/components/services/tabs/TabItem.js", | 18 | "file": "src/components/services/tabs/TabItem.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 19, | 20 | "line": 24, |
21 | "column": 8 | 21 | "column": 8 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 22, | 24 | "line": 27, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Disable notifications", | 30 | "defaultMessage": "!!!Disable notifications", |
31 | "file": "src/components/services/tabs/TabItem.js", | 31 | "file": "src/components/services/tabs/TabItem.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 23, | 33 | "line": 28, |
34 | "column": 24 | 34 | "column": 24 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 26, | 37 | "line": 31, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Enable notifications", | 43 | "defaultMessage": "!!!Enable notifications", |
44 | "file": "src/components/services/tabs/TabItem.js", | 44 | "file": "src/components/services/tabs/TabItem.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 27, | 46 | "line": 32, |
47 | "column": 23 | 47 | "column": 23 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 30, | 50 | "line": 35, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Disable audio", | 56 | "defaultMessage": "!!!Disable audio", |
57 | "file": "src/components/services/tabs/TabItem.js", | 57 | "file": "src/components/services/tabs/TabItem.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 31, | 59 | "line": 36, |
60 | "column": 16 | 60 | "column": 16 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 34, | 63 | "line": 39, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Enable audio", | 69 | "defaultMessage": "!!!Enable audio", |
70 | "file": "src/components/services/tabs/TabItem.js", | 70 | "file": "src/components/services/tabs/TabItem.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 35, | 72 | "line": 40, |
73 | "column": 15 | 73 | "column": 15 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 38, | 76 | "line": 43, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Disable Service", | 82 | "defaultMessage": "!!!Disable Service", |
83 | "file": "src/components/services/tabs/TabItem.js", | 83 | "file": "src/components/services/tabs/TabItem.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 39, | 85 | "line": 44, |
86 | "column": 18 | 86 | "column": 18 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 42, | 89 | "line": 47, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Enable Service", | 95 | "defaultMessage": "!!!Enable Service", |
96 | "file": "src/components/services/tabs/TabItem.js", | 96 | "file": "src/components/services/tabs/TabItem.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 43, | 98 | "line": 48, |
99 | "column": 17 | 99 | "column": 17 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 46, | 102 | "line": 51, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Delete Service", | 108 | "defaultMessage": "!!!Delete Service", |
109 | "file": "src/components/services/tabs/TabItem.js", | 109 | "file": "src/components/services/tabs/TabItem.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 47, | 111 | "line": 52, |
112 | "column": 17 | 112 | "column": 17 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 50, | 115 | "line": 55, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | } | 118 | } |
diff --git a/src/i18n/messages/src/components/settings/services/EditServiceForm.json b/src/i18n/messages/src/components/settings/services/EditServiceForm.json index 4ee427e46..182678823 100644 --- a/src/i18n/messages/src/components/settings/services/EditServiceForm.json +++ b/src/i18n/messages/src/components/settings/services/EditServiceForm.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Save service", | 4 | "defaultMessage": "!!!Save service", |
5 | "file": "src/components/settings/services/EditServiceForm.js", | 5 | "file": "src/components/settings/services/EditServiceForm.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 27, | 7 | "line": 26, |
8 | "column": 15 | 8 | "column": 15 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 30, | 11 | "line": 29, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Delete Service", | 17 | "defaultMessage": "!!!Delete Service", |
18 | "file": "src/components/settings/services/EditServiceForm.js", | 18 | "file": "src/components/settings/services/EditServiceForm.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 31, | 20 | "line": 30, |
21 | "column": 17 | 21 | "column": 17 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 34, | 24 | "line": 33, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Open darkmode.css", | 30 | "defaultMessage": "!!!Open darkmode.css", |
31 | "file": "src/components/settings/services/EditServiceForm.js", | 31 | "file": "src/components/settings/services/EditServiceForm.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 35, | 33 | "line": 34, |
34 | "column": 19 | 34 | "column": 19 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 38, | 37 | "line": 37, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Open user.css", | 43 | "defaultMessage": "!!!Open user.css", |
44 | "file": "src/components/settings/services/EditServiceForm.js", | 44 | "file": "src/components/settings/services/EditServiceForm.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 39, | 46 | "line": 38, |
47 | "column": 15 | 47 | "column": 15 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 42, | 50 | "line": 41, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Open user.js", | 56 | "defaultMessage": "!!!Open user.js", |
57 | "file": "src/components/settings/services/EditServiceForm.js", | 57 | "file": "src/components/settings/services/EditServiceForm.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 43, | 59 | "line": 42, |
60 | "column": 14 | 60 | "column": 14 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 46, | 63 | "line": 45, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", | 69 | "defaultMessage": "!!!Your user files will be inserted into the webpage so you can customize services in any way you like. User files are only stored locally and are not transferred to other computers using the same account.", |
70 | "file": "src/components/settings/services/EditServiceForm.js", | 70 | "file": "src/components/settings/services/EditServiceForm.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 47, | 72 | "line": 46, |
73 | "column": 18 | 73 | "column": 18 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 50, | 76 | "line": 49, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,11 @@ | |||
82 | "defaultMessage": "!!!Available services", | 82 | "defaultMessage": "!!!Available services", |
83 | "file": "src/components/settings/services/EditServiceForm.js", | 83 | "file": "src/components/settings/services/EditServiceForm.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 51, | 85 | "line": 50, |
86 | "column": 21 | 86 | "column": 21 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 54, | 89 | "line": 53, |
90 | "column": 3 | 90 | "column": 3 |
91 | } | 91 | } |
92 | }, | 92 | }, |
@@ -95,11 +95,11 @@ | |||
95 | "defaultMessage": "!!!Your services", | 95 | "defaultMessage": "!!!Your services", |
96 | "file": "src/components/settings/services/EditServiceForm.js", | 96 | "file": "src/components/settings/services/EditServiceForm.js", |
97 | "start": { | 97 | "start": { |
98 | "line": 55, | 98 | "line": 54, |
99 | "column": 16 | 99 | "column": 16 |
100 | }, | 100 | }, |
101 | "end": { | 101 | "end": { |
102 | "line": 58, | 102 | "line": 57, |
103 | "column": 3 | 103 | "column": 3 |
104 | } | 104 | } |
105 | }, | 105 | }, |
@@ -108,11 +108,11 @@ | |||
108 | "defaultMessage": "!!!Add {name}", | 108 | "defaultMessage": "!!!Add {name}", |
109 | "file": "src/components/settings/services/EditServiceForm.js", | 109 | "file": "src/components/settings/services/EditServiceForm.js", |
110 | "start": { | 110 | "start": { |
111 | "line": 59, | 111 | "line": 58, |
112 | "column": 22 | 112 | "column": 22 |
113 | }, | 113 | }, |
114 | "end": { | 114 | "end": { |
115 | "line": 62, | 115 | "line": 61, |
116 | "column": 3 | 116 | "column": 3 |
117 | } | 117 | } |
118 | }, | 118 | }, |
@@ -121,11 +121,11 @@ | |||
121 | "defaultMessage": "!!!Edit {name}", | 121 | "defaultMessage": "!!!Edit {name}", |
122 | "file": "src/components/settings/services/EditServiceForm.js", | 122 | "file": "src/components/settings/services/EditServiceForm.js", |
123 | "start": { | 123 | "start": { |
124 | "line": 63, | 124 | "line": 62, |
125 | "column": 23 | 125 | "column": 23 |
126 | }, | 126 | }, |
127 | "end": { | 127 | "end": { |
128 | "line": 66, | 128 | "line": 65, |
129 | "column": 3 | 129 | "column": 3 |
130 | } | 130 | } |
131 | }, | 131 | }, |
@@ -134,11 +134,11 @@ | |||
134 | "defaultMessage": "!!!Hosted", | 134 | "defaultMessage": "!!!Hosted", |
135 | "file": "src/components/settings/services/EditServiceForm.js", | 135 | "file": "src/components/settings/services/EditServiceForm.js", |
136 | "start": { | 136 | "start": { |
137 | "line": 67, | 137 | "line": 66, |
138 | "column": 13 | 138 | "column": 13 |
139 | }, | 139 | }, |
140 | "end": { | 140 | "end": { |
141 | "line": 70, | 141 | "line": 69, |
142 | "column": 3 | 142 | "column": 3 |
143 | } | 143 | } |
144 | }, | 144 | }, |
@@ -147,11 +147,11 @@ | |||
147 | "defaultMessage": "!!!Self hosted ⭐️", | 147 | "defaultMessage": "!!!Self hosted ⭐️", |
148 | "file": "src/components/settings/services/EditServiceForm.js", | 148 | "file": "src/components/settings/services/EditServiceForm.js", |
149 | "start": { | 149 | "start": { |
150 | "line": 71, | 150 | "line": 70, |
151 | "column": 16 | 151 | "column": 16 |
152 | }, | 152 | }, |
153 | "end": { | 153 | "end": { |
154 | "line": 74, | 154 | "line": 73, |
155 | "column": 3 | 155 | "column": 3 |
156 | } | 156 | } |
157 | }, | 157 | }, |
@@ -160,11 +160,11 @@ | |||
160 | "defaultMessage": "!!!Use the hosted {name} service.", | 160 | "defaultMessage": "!!!Use the hosted {name} service.", |
161 | "file": "src/components/settings/services/EditServiceForm.js", | 161 | "file": "src/components/settings/services/EditServiceForm.js", |
162 | "start": { | 162 | "start": { |
163 | "line": 75, | 163 | "line": 74, |
164 | "column": 20 | 164 | "column": 20 |
165 | }, | 165 | }, |
166 | "end": { | 166 | "end": { |
167 | "line": 78, | 167 | "line": 77, |
168 | "column": 3 | 168 | "column": 3 |
169 | } | 169 | } |
170 | }, | 170 | }, |
@@ -173,11 +173,11 @@ | |||
173 | "defaultMessage": "!!!Could not validate custom {name} server.", | 173 | "defaultMessage": "!!!Could not validate custom {name} server.", |
174 | "file": "src/components/settings/services/EditServiceForm.js", | 174 | "file": "src/components/settings/services/EditServiceForm.js", |
175 | "start": { | 175 | "start": { |
176 | "line": 79, | 176 | "line": 78, |
177 | "column": 28 | 177 | "column": 28 |
178 | }, | 178 | }, |
179 | "end": { | 179 | "end": { |
180 | "line": 82, | 180 | "line": 81, |
181 | "column": 3 | 181 | "column": 3 |
182 | } | 182 | } |
183 | }, | 183 | }, |
@@ -186,11 +186,11 @@ | |||
186 | "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", | 186 | "defaultMessage": "!!!To add self hosted services, you need a Ferdi Premium Supporter Account.", |
187 | "file": "src/components/settings/services/EditServiceForm.js", | 187 | "file": "src/components/settings/services/EditServiceForm.js", |
188 | "start": { | 188 | "start": { |
189 | "line": 83, | 189 | "line": 82, |
190 | "column": 24 | 190 | "column": 24 |
191 | }, | 191 | }, |
192 | "end": { | 192 | "end": { |
193 | "line": 86, | 193 | "line": 85, |
194 | "column": 3 | 194 | "column": 3 |
195 | } | 195 | } |
196 | }, | 196 | }, |
@@ -199,11 +199,11 @@ | |||
199 | "defaultMessage": "!!!Upgrade your account", | 199 | "defaultMessage": "!!!Upgrade your account", |
200 | "file": "src/components/settings/services/EditServiceForm.js", | 200 | "file": "src/components/settings/services/EditServiceForm.js", |
201 | "start": { | 201 | "start": { |
202 | "line": 87, | 202 | "line": 86, |
203 | "column": 27 | 203 | "column": 27 |
204 | }, | 204 | }, |
205 | "end": { | 205 | "end": { |
206 | "line": 90, | 206 | "line": 89, |
207 | "column": 3 | 207 | "column": 3 |
208 | } | 208 | } |
209 | }, | 209 | }, |
@@ -212,11 +212,11 @@ | |||
212 | "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", | 212 | "defaultMessage": "!!!You will be notified about all new messages in a channel, not just @username, @channel, @here, ...", |
213 | "file": "src/components/settings/services/EditServiceForm.js", | 213 | "file": "src/components/settings/services/EditServiceForm.js", |
214 | "start": { | 214 | "start": { |
215 | "line": 91, | 215 | "line": 90, |
216 | "column": 23 | 216 | "column": 23 |
217 | }, | 217 | }, |
218 | "end": { | 218 | "end": { |
219 | "line": 94, | 219 | "line": 93, |
220 | "column": 3 | 220 | "column": 3 |
221 | } | 221 | } |
222 | }, | 222 | }, |
@@ -225,24 +225,24 @@ | |||
225 | "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", | 225 | "defaultMessage": "!!!When disabled, all notification sounds and audio playback are muted", |
226 | "file": "src/components/settings/services/EditServiceForm.js", | 226 | "file": "src/components/settings/services/EditServiceForm.js", |
227 | "start": { | 227 | "start": { |
228 | "line": 95, | 228 | "line": 94, |
229 | "column": 15 | 229 | "column": 15 |
230 | }, | 230 | }, |
231 | "end": { | 231 | "end": { |
232 | "line": 98, | 232 | "line": 97, |
233 | "column": 3 | 233 | "column": 3 |
234 | } | 234 | } |
235 | }, | 235 | }, |
236 | { | 236 | { |
237 | "id": "settings.service.form.disableHibernationInfo", | 237 | "id": "settings.service.form.isHibernatedEnabledInfo", |
238 | "defaultMessage": "!!!You currently have hibernation enabled but you can disable hibernation for individual services using this option.", | 238 | "defaultMessage": "!!!When enabled, a service will be shut down after a period of time to save system resources.", |
239 | "file": "src/components/settings/services/EditServiceForm.js", | 239 | "file": "src/components/settings/services/EditServiceForm.js", |
240 | "start": { | 240 | "start": { |
241 | "line": 99, | 241 | "line": 98, |
242 | "column": 26 | 242 | "column": 28 |
243 | }, | 243 | }, |
244 | "end": { | 244 | "end": { |
245 | "line": 102, | 245 | "line": 101, |
246 | "column": 3 | 246 | "column": 3 |
247 | } | 247 | } |
248 | }, | 248 | }, |
@@ -251,11 +251,11 @@ | |||
251 | "defaultMessage": "!!!Notifications", | 251 | "defaultMessage": "!!!Notifications", |
252 | "file": "src/components/settings/services/EditServiceForm.js", | 252 | "file": "src/components/settings/services/EditServiceForm.js", |
253 | "start": { | 253 | "start": { |
254 | "line": 103, | 254 | "line": 102, |
255 | "column": 25 | 255 | "column": 25 |
256 | }, | 256 | }, |
257 | "end": { | 257 | "end": { |
258 | "line": 106, | 258 | "line": 105, |
259 | "column": 3 | 259 | "column": 3 |
260 | } | 260 | } |
261 | }, | 261 | }, |
@@ -264,11 +264,11 @@ | |||
264 | "defaultMessage": "!!!Unread message badges", | 264 | "defaultMessage": "!!!Unread message badges", |
265 | "file": "src/components/settings/services/EditServiceForm.js", | 265 | "file": "src/components/settings/services/EditServiceForm.js", |
266 | "start": { | 266 | "start": { |
267 | "line": 107, | 267 | "line": 106, |
268 | "column": 18 | 268 | "column": 18 |
269 | }, | 269 | }, |
270 | "end": { | 270 | "end": { |
271 | "line": 110, | 271 | "line": 109, |
272 | "column": 3 | 272 | "column": 3 |
273 | } | 273 | } |
274 | }, | 274 | }, |
@@ -277,11 +277,11 @@ | |||
277 | "defaultMessage": "!!!General", | 277 | "defaultMessage": "!!!General", |
278 | "file": "src/components/settings/services/EditServiceForm.js", | 278 | "file": "src/components/settings/services/EditServiceForm.js", |
279 | "start": { | 279 | "start": { |
280 | "line": 111, | 280 | "line": 110, |
281 | "column": 19 | 281 | "column": 19 |
282 | }, | 282 | }, |
283 | "end": { | 283 | "end": { |
284 | "line": 114, | 284 | "line": 113, |
285 | "column": 3 | 285 | "column": 3 |
286 | } | 286 | } |
287 | }, | 287 | }, |
@@ -290,11 +290,11 @@ | |||
290 | "defaultMessage": "!!!Dark Reader Settings", | 290 | "defaultMessage": "!!!Dark Reader Settings", |
291 | "file": "src/components/settings/services/EditServiceForm.js", | 291 | "file": "src/components/settings/services/EditServiceForm.js", |
292 | "start": { | 292 | "start": { |
293 | "line": 115, | 293 | "line": 114, |
294 | "column": 30 | 294 | "column": 30 |
295 | }, | 295 | }, |
296 | "end": { | 296 | "end": { |
297 | "line": 118, | 297 | "line": 117, |
298 | "column": 3 | 298 | "column": 3 |
299 | } | 299 | } |
300 | }, | 300 | }, |
@@ -303,11 +303,11 @@ | |||
303 | "defaultMessage": "!!!Delete", | 303 | "defaultMessage": "!!!Delete", |
304 | "file": "src/components/settings/services/EditServiceForm.js", | 304 | "file": "src/components/settings/services/EditServiceForm.js", |
305 | "start": { | 305 | "start": { |
306 | "line": 119, | 306 | "line": 118, |
307 | "column": 14 | 307 | "column": 14 |
308 | }, | 308 | }, |
309 | "end": { | 309 | "end": { |
310 | "line": 122, | 310 | "line": 121, |
311 | "column": 3 | 311 | "column": 3 |
312 | } | 312 | } |
313 | }, | 313 | }, |
@@ -316,11 +316,11 @@ | |||
316 | "defaultMessage": "!!!Drop your image, or click here", | 316 | "defaultMessage": "!!!Drop your image, or click here", |
317 | "file": "src/components/settings/services/EditServiceForm.js", | 317 | "file": "src/components/settings/services/EditServiceForm.js", |
318 | "start": { | 318 | "start": { |
319 | "line": 123, | 319 | "line": 122, |
320 | "column": 14 | 320 | "column": 14 |
321 | }, | 321 | }, |
322 | "end": { | 322 | "end": { |
323 | "line": 126, | 323 | "line": 125, |
324 | "column": 3 | 324 | "column": 3 |
325 | } | 325 | } |
326 | }, | 326 | }, |
@@ -329,11 +329,11 @@ | |||
329 | "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", | 329 | "defaultMessage": "!!!HTTP/HTTPS Proxy Settings", |
330 | "file": "src/components/settings/services/EditServiceForm.js", | 330 | "file": "src/components/settings/services/EditServiceForm.js", |
331 | "start": { | 331 | "start": { |
332 | "line": 127, | 332 | "line": 126, |
333 | "column": 17 | 333 | "column": 17 |
334 | }, | 334 | }, |
335 | "end": { | 335 | "end": { |
336 | "line": 130, | 336 | "line": 129, |
337 | "column": 3 | 337 | "column": 3 |
338 | } | 338 | } |
339 | }, | 339 | }, |
@@ -342,11 +342,11 @@ | |||
342 | "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", | 342 | "defaultMessage": "!!!Please restart Ferdi after changing proxy Settings.", |
343 | "file": "src/components/settings/services/EditServiceForm.js", | 343 | "file": "src/components/settings/services/EditServiceForm.js", |
344 | "start": { | 344 | "start": { |
345 | "line": 131, | 345 | "line": 130, |
346 | "column": 20 | 346 | "column": 20 |
347 | }, | 347 | }, |
348 | "end": { | 348 | "end": { |
349 | "line": 134, | 349 | "line": 133, |
350 | "column": 3 | 350 | "column": 3 |
351 | } | 351 | } |
352 | }, | 352 | }, |
@@ -355,11 +355,11 @@ | |||
355 | "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", | 355 | "defaultMessage": "!!!Proxy settings will not be synchronized with the Ferdi servers.", |
356 | "file": "src/components/settings/services/EditServiceForm.js", | 356 | "file": "src/components/settings/services/EditServiceForm.js", |
357 | "start": { | 357 | "start": { |
358 | "line": 135, | 358 | "line": 134, |
359 | "column": 13 | 359 | "column": 13 |
360 | }, | 360 | }, |
361 | "end": { | 361 | "end": { |
362 | "line": 138, | 362 | "line": 137, |
363 | "column": 3 | 363 | "column": 3 |
364 | } | 364 | } |
365 | } | 365 | } |
diff --git a/src/i18n/messages/src/containers/settings/EditServiceScreen.json b/src/i18n/messages/src/containers/settings/EditServiceScreen.json index 5c83085f2..6744a9ff3 100644 --- a/src/i18n/messages/src/containers/settings/EditServiceScreen.json +++ b/src/i18n/messages/src/containers/settings/EditServiceScreen.json | |||
@@ -26,12 +26,12 @@ | |||
26 | } | 26 | } |
27 | }, | 27 | }, |
28 | { | 28 | { |
29 | "id": "settings.service.form.disableHibernation", | 29 | "id": "settings.service.form.enableHibernation", |
30 | "defaultMessage": "!!!Disable hibernation", | 30 | "defaultMessage": "!!!Enable hibernation", |
31 | "file": "src/containers/settings/EditServiceScreen.js", | 31 | "file": "src/containers/settings/EditServiceScreen.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 36, | 33 | "line": 36, |
34 | "column": 22 | 34 | "column": 21 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 39, | 37 | "line": 39, |
diff --git a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json index 7165bd46c..420bf29af 100644 --- a/src/i18n/messages/src/containers/settings/EditSettingsScreen.json +++ b/src/i18n/messages/src/containers/settings/EditSettingsScreen.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Launch Ferdi on start", | 4 | "defaultMessage": "!!!Launch Ferdi on start", |
5 | "file": "src/containers/settings/EditSettingsScreen.js", | 5 | "file": "src/containers/settings/EditSettingsScreen.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 30, | 7 | "line": 31, |
8 | "column": 21 | 8 | "column": 21 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 33, | 11 | "line": 34, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Open in background", | 17 | "defaultMessage": "!!!Open in background", |
18 | "file": "src/containers/settings/EditSettingsScreen.js", | 18 | "file": "src/containers/settings/EditSettingsScreen.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 34, | 20 | "line": 35, |
21 | "column": 26 | 21 | "column": 26 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 37, | 24 | "line": 38, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Keep Ferdi in background when closing the window", | 30 | "defaultMessage": "!!!Keep Ferdi in background when closing the window", |
31 | "file": "src/containers/settings/EditSettingsScreen.js", | 31 | "file": "src/containers/settings/EditSettingsScreen.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 38, | 33 | "line": 39, |
34 | "column": 19 | 34 | "column": 19 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 41, | 37 | "line": 42, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | }, | 40 | }, |
@@ -43,11 +43,11 @@ | |||
43 | "defaultMessage": "!!!Start minimized", | 43 | "defaultMessage": "!!!Start minimized", |
44 | "file": "src/containers/settings/EditSettingsScreen.js", | 44 | "file": "src/containers/settings/EditSettingsScreen.js", |
45 | "start": { | 45 | "start": { |
46 | "line": 42, | 46 | "line": 43, |
47 | "column": 18 | 47 | "column": 18 |
48 | }, | 48 | }, |
49 | "end": { | 49 | "end": { |
50 | "line": 45, | 50 | "line": 46, |
51 | "column": 3 | 51 | "column": 3 |
52 | } | 52 | } |
53 | }, | 53 | }, |
@@ -56,11 +56,11 @@ | |||
56 | "defaultMessage": "!!!Always show Ferdi in system tray", | 56 | "defaultMessage": "!!!Always show Ferdi in system tray", |
57 | "file": "src/containers/settings/EditSettingsScreen.js", | 57 | "file": "src/containers/settings/EditSettingsScreen.js", |
58 | "start": { | 58 | "start": { |
59 | "line": 46, | 59 | "line": 47, |
60 | "column": 20 | 60 | "column": 20 |
61 | }, | 61 | }, |
62 | "end": { | 62 | "end": { |
63 | "line": 49, | 63 | "line": 50, |
64 | "column": 3 | 64 | "column": 3 |
65 | } | 65 | } |
66 | }, | 66 | }, |
@@ -69,11 +69,11 @@ | |||
69 | "defaultMessage": "!!!Reload Ferdi after system resume", | 69 | "defaultMessage": "!!!Reload Ferdi after system resume", |
70 | "file": "src/containers/settings/EditSettingsScreen.js", | 70 | "file": "src/containers/settings/EditSettingsScreen.js", |
71 | "start": { | 71 | "start": { |
72 | "line": 50, | 72 | "line": 51, |
73 | "column": 21 | 73 | "column": 21 |
74 | }, | 74 | }, |
75 | "end": { | 75 | "end": { |
76 | "line": 53, | 76 | "line": 54, |
77 | "column": 3 | 77 | "column": 3 |
78 | } | 78 | } |
79 | }, | 79 | }, |
@@ -82,11 +82,24 @@ | |||
82 | "defaultMessage": "!!!Minimize Ferdi to system tray", | 82 | "defaultMessage": "!!!Minimize Ferdi to system tray", |
83 | "file": "src/containers/settings/EditSettingsScreen.js", | 83 | "file": "src/containers/settings/EditSettingsScreen.js", |
84 | "start": { | 84 | "start": { |
85 | "line": 54, | 85 | "line": 55, |
86 | "column": 24 | 86 | "column": 24 |
87 | }, | 87 | }, |
88 | "end": { | 88 | "end": { |
89 | "line": 57, | 89 | "line": 58, |
90 | "column": 3 | ||
91 | } | ||
92 | }, | ||
93 | { | ||
94 | "id": "settings.app.form.closeToSystemTray", | ||
95 | "defaultMessage": "!!!Close Ferdi to system tray", | ||
96 | "file": "src/containers/settings/EditSettingsScreen.js", | ||
97 | "start": { | ||
98 | "line": 59, | ||
99 | "column": 21 | ||
100 | }, | ||
101 | "end": { | ||
102 | "line": 62, | ||
90 | "column": 3 | 103 | "column": 3 |
91 | } | 104 | } |
92 | }, | 105 | }, |
@@ -95,11 +108,24 @@ | |||
95 | "defaultMessage": "!!!Don't show message content in notifications", | 108 | "defaultMessage": "!!!Don't show message content in notifications", |
96 | "file": "src/containers/settings/EditSettingsScreen.js", | 109 | "file": "src/containers/settings/EditSettingsScreen.js", |
97 | "start": { | 110 | "start": { |
98 | "line": 58, | 111 | "line": 63, |
99 | "column": 24 | 112 | "column": 24 |
100 | }, | 113 | }, |
101 | "end": { | 114 | "end": { |
102 | "line": 61, | 115 | "line": 66, |
116 | "column": 3 | ||
117 | } | ||
118 | }, | ||
119 | { | ||
120 | "id": "settings.app.form.notifyTaskBarOnMessage", | ||
121 | "defaultMessage": "!!!Notify TaskBar/Dock on new message", | ||
122 | "file": "src/containers/settings/EditSettingsScreen.js", | ||
123 | "start": { | ||
124 | "line": 67, | ||
125 | "column": 26 | ||
126 | }, | ||
127 | "end": { | ||
128 | "line": 70, | ||
103 | "column": 3 | 129 | "column": 3 |
104 | } | 130 | } |
105 | }, | 131 | }, |
@@ -108,11 +134,11 @@ | |||
108 | "defaultMessage": "!!!Navigation bar behaviour", | 134 | "defaultMessage": "!!!Navigation bar behaviour", |
109 | "file": "src/containers/settings/EditSettingsScreen.js", | 135 | "file": "src/containers/settings/EditSettingsScreen.js", |
110 | "start": { | 136 | "start": { |
111 | "line": 62, | 137 | "line": 71, |
112 | "column": 26 | 138 | "column": 26 |
113 | }, | 139 | }, |
114 | "end": { | 140 | "end": { |
115 | "line": 65, | 141 | "line": 74, |
116 | "column": 3 | 142 | "column": 3 |
117 | } | 143 | } |
118 | }, | 144 | }, |
@@ -121,11 +147,11 @@ | |||
121 | "defaultMessage": "!!!Send telemetry data", | 147 | "defaultMessage": "!!!Send telemetry data", |
122 | "file": "src/containers/settings/EditSettingsScreen.js", | 148 | "file": "src/containers/settings/EditSettingsScreen.js", |
123 | "start": { | 149 | "start": { |
124 | "line": 66, | 150 | "line": 75, |
125 | "column": 10 | 151 | "column": 10 |
126 | }, | 152 | }, |
127 | "end": { | 153 | "end": { |
128 | "line": 69, | 154 | "line": 78, |
129 | "column": 3 | 155 | "column": 3 |
130 | } | 156 | } |
131 | }, | 157 | }, |
@@ -134,11 +160,11 @@ | |||
134 | "defaultMessage": "!!!Enable service hibernation", | 160 | "defaultMessage": "!!!Enable service hibernation", |
135 | "file": "src/containers/settings/EditSettingsScreen.js", | 161 | "file": "src/containers/settings/EditSettingsScreen.js", |
136 | "start": { | 162 | "start": { |
137 | "line": 70, | 163 | "line": 79, |
138 | "column": 13 | 164 | "column": 13 |
139 | }, | 165 | }, |
140 | "end": { | 166 | "end": { |
141 | "line": 73, | 167 | "line": 82, |
142 | "column": 3 | 168 | "column": 3 |
143 | } | 169 | } |
144 | }, | 170 | }, |
@@ -147,11 +173,11 @@ | |||
147 | "defaultMessage": "!!!Keep services in hibernation on startup", | 173 | "defaultMessage": "!!!Keep services in hibernation on startup", |
148 | "file": "src/containers/settings/EditSettingsScreen.js", | 174 | "file": "src/containers/settings/EditSettingsScreen.js", |
149 | "start": { | 175 | "start": { |
150 | "line": 74, | 176 | "line": 83, |
151 | "column": 22 | 177 | "column": 22 |
152 | }, | 178 | }, |
153 | "end": { | 179 | "end": { |
154 | "line": 77, | 180 | "line": 86, |
155 | "column": 3 | 181 | "column": 3 |
156 | } | 182 | } |
157 | }, | 183 | }, |
@@ -160,11 +186,11 @@ | |||
160 | "defaultMessage": "!!!Hibernation strategy", | 186 | "defaultMessage": "!!!Hibernation strategy", |
161 | "file": "src/containers/settings/EditSettingsScreen.js", | 187 | "file": "src/containers/settings/EditSettingsScreen.js", |
162 | "start": { | 188 | "start": { |
163 | "line": 78, | 189 | "line": 87, |
164 | "column": 23 | 190 | "column": 23 |
165 | }, | 191 | }, |
166 | "end": { | 192 | "end": { |
167 | "line": 81, | 193 | "line": 90, |
168 | "column": 3 | 194 | "column": 3 |
169 | } | 195 | } |
170 | }, | 196 | }, |
@@ -173,11 +199,11 @@ | |||
173 | "defaultMessage": "!!!Todo Server", | 199 | "defaultMessage": "!!!Todo Server", |
174 | "file": "src/containers/settings/EditSettingsScreen.js", | 200 | "file": "src/containers/settings/EditSettingsScreen.js", |
175 | "start": { | 201 | "start": { |
176 | "line": 82, | 202 | "line": 91, |
177 | "column": 24 | 203 | "column": 24 |
178 | }, | 204 | }, |
179 | "end": { | 205 | "end": { |
180 | "line": 85, | 206 | "line": 94, |
181 | "column": 3 | 207 | "column": 3 |
182 | } | 208 | } |
183 | }, | 209 | }, |
@@ -186,11 +212,11 @@ | |||
186 | "defaultMessage": "!!!Custom TodoServer", | 212 | "defaultMessage": "!!!Custom TodoServer", |
187 | "file": "src/containers/settings/EditSettingsScreen.js", | 213 | "file": "src/containers/settings/EditSettingsScreen.js", |
188 | "start": { | 214 | "start": { |
189 | "line": 86, | 215 | "line": 95, |
190 | "column": 20 | 216 | "column": 20 |
191 | }, | 217 | }, |
192 | "end": { | 218 | "end": { |
193 | "line": 89, | 219 | "line": 98, |
194 | "column": 3 | 220 | "column": 3 |
195 | } | 221 | } |
196 | }, | 222 | }, |
@@ -199,11 +225,11 @@ | |||
199 | "defaultMessage": "!!!Enable Password Lock", | 225 | "defaultMessage": "!!!Enable Password Lock", |
200 | "file": "src/containers/settings/EditSettingsScreen.js", | 226 | "file": "src/containers/settings/EditSettingsScreen.js", |
201 | "start": { | 227 | "start": { |
202 | "line": 90, | 228 | "line": 99, |
203 | "column": 14 | 229 | "column": 14 |
204 | }, | 230 | }, |
205 | "end": { | 231 | "end": { |
206 | "line": 93, | 232 | "line": 102, |
207 | "column": 3 | 233 | "column": 3 |
208 | } | 234 | } |
209 | }, | 235 | }, |
@@ -212,11 +238,11 @@ | |||
212 | "defaultMessage": "!!!Password", | 238 | "defaultMessage": "!!!Password", |
213 | "file": "src/containers/settings/EditSettingsScreen.js", | 239 | "file": "src/containers/settings/EditSettingsScreen.js", |
214 | "start": { | 240 | "start": { |
215 | "line": 94, | 241 | "line": 103, |
216 | "column": 16 | 242 | "column": 16 |
217 | }, | 243 | }, |
218 | "end": { | 244 | "end": { |
219 | "line": 97, | 245 | "line": 106, |
220 | "column": 3 | 246 | "column": 3 |
221 | } | 247 | } |
222 | }, | 248 | }, |
@@ -225,11 +251,11 @@ | |||
225 | "defaultMessage": "!!!Allow using Touch ID to unlock", | 251 | "defaultMessage": "!!!Allow using Touch ID to unlock", |
226 | "file": "src/containers/settings/EditSettingsScreen.js", | 252 | "file": "src/containers/settings/EditSettingsScreen.js", |
227 | "start": { | 253 | "start": { |
228 | "line": 98, | 254 | "line": 107, |
229 | "column": 22 | 255 | "column": 22 |
230 | }, | 256 | }, |
231 | "end": { | 257 | "end": { |
232 | "line": 101, | 258 | "line": 110, |
233 | "column": 3 | 259 | "column": 3 |
234 | } | 260 | } |
235 | }, | 261 | }, |
@@ -238,11 +264,11 @@ | |||
238 | "defaultMessage": "!!!Lock after inactivity", | 264 | "defaultMessage": "!!!Lock after inactivity", |
239 | "file": "src/containers/settings/EditSettingsScreen.js", | 265 | "file": "src/containers/settings/EditSettingsScreen.js", |
240 | "start": { | 266 | "start": { |
241 | "line": 102, | 267 | "line": 111, |
242 | "column": 18 | 268 | "column": 18 |
243 | }, | 269 | }, |
244 | "end": { | 270 | "end": { |
245 | "line": 105, | 271 | "line": 114, |
246 | "column": 3 | 272 | "column": 3 |
247 | } | 273 | } |
248 | }, | 274 | }, |
@@ -251,11 +277,11 @@ | |||
251 | "defaultMessage": "!!!Enable scheduled Do-not-Disturb", | 277 | "defaultMessage": "!!!Enable scheduled Do-not-Disturb", |
252 | "file": "src/containers/settings/EditSettingsScreen.js", | 278 | "file": "src/containers/settings/EditSettingsScreen.js", |
253 | "start": { | 279 | "start": { |
254 | "line": 106, | 280 | "line": 115, |
255 | "column": 23 | 281 | "column": 23 |
256 | }, | 282 | }, |
257 | "end": { | 283 | "end": { |
258 | "line": 109, | 284 | "line": 118, |
259 | "column": 3 | 285 | "column": 3 |
260 | } | 286 | } |
261 | }, | 287 | }, |
@@ -264,11 +290,11 @@ | |||
264 | "defaultMessage": "!!!From", | 290 | "defaultMessage": "!!!From", |
265 | "file": "src/containers/settings/EditSettingsScreen.js", | 291 | "file": "src/containers/settings/EditSettingsScreen.js", |
266 | "start": { | 292 | "start": { |
267 | "line": 110, | 293 | "line": 119, |
268 | "column": 21 | 294 | "column": 21 |
269 | }, | 295 | }, |
270 | "end": { | 296 | "end": { |
271 | "line": 113, | 297 | "line": 122, |
272 | "column": 3 | 298 | "column": 3 |
273 | } | 299 | } |
274 | }, | 300 | }, |
@@ -277,11 +303,11 @@ | |||
277 | "defaultMessage": "!!!To", | 303 | "defaultMessage": "!!!To", |
278 | "file": "src/containers/settings/EditSettingsScreen.js", | 304 | "file": "src/containers/settings/EditSettingsScreen.js", |
279 | "start": { | 305 | "start": { |
280 | "line": 114, | 306 | "line": 123, |
281 | "column": 19 | 307 | "column": 19 |
282 | }, | 308 | }, |
283 | "end": { | 309 | "end": { |
284 | "line": 117, | 310 | "line": 126, |
285 | "column": 3 | 311 | "column": 3 |
286 | } | 312 | } |
287 | }, | 313 | }, |
@@ -290,11 +316,11 @@ | |||
290 | "defaultMessage": "!!!Language", | 316 | "defaultMessage": "!!!Language", |
291 | "file": "src/containers/settings/EditSettingsScreen.js", | 317 | "file": "src/containers/settings/EditSettingsScreen.js", |
292 | "start": { | 318 | "start": { |
293 | "line": 118, | 319 | "line": 127, |
294 | "column": 12 | 320 | "column": 12 |
295 | }, | 321 | }, |
296 | "end": { | 322 | "end": { |
297 | "line": 121, | 323 | "line": 130, |
298 | "column": 3 | 324 | "column": 3 |
299 | } | 325 | } |
300 | }, | 326 | }, |
@@ -303,11 +329,11 @@ | |||
303 | "defaultMessage": "!!!Dark Mode", | 329 | "defaultMessage": "!!!Dark Mode", |
304 | "file": "src/containers/settings/EditSettingsScreen.js", | 330 | "file": "src/containers/settings/EditSettingsScreen.js", |
305 | "start": { | 331 | "start": { |
306 | "line": 122, | 332 | "line": 131, |
307 | "column": 12 | 333 | "column": 12 |
308 | }, | 334 | }, |
309 | "end": { | 335 | "end": { |
310 | "line": 125, | 336 | "line": 134, |
311 | "column": 3 | 337 | "column": 3 |
312 | } | 338 | } |
313 | }, | 339 | }, |
@@ -316,11 +342,11 @@ | |||
316 | "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", | 342 | "defaultMessage": "!!!Synchronize dark mode with my OS's dark mode setting", |
317 | "file": "src/containers/settings/EditSettingsScreen.js", | 343 | "file": "src/containers/settings/EditSettingsScreen.js", |
318 | "start": { | 344 | "start": { |
319 | "line": 126, | 345 | "line": 135, |
320 | "column": 21 | 346 | "column": 21 |
321 | }, | 347 | }, |
322 | "end": { | 348 | "end": { |
323 | "line": 129, | 349 | "line": 138, |
324 | "column": 3 | 350 | "column": 3 |
325 | } | 351 | } |
326 | }, | 352 | }, |
@@ -329,11 +355,11 @@ | |||
329 | "defaultMessage": "!!!Enable universal Dark Mode", | 355 | "defaultMessage": "!!!Enable universal Dark Mode", |
330 | "file": "src/containers/settings/EditSettingsScreen.js", | 356 | "file": "src/containers/settings/EditSettingsScreen.js", |
331 | "start": { | 357 | "start": { |
332 | "line": 130, | 358 | "line": 139, |
333 | "column": 21 | 359 | "column": 21 |
334 | }, | 360 | }, |
335 | "end": { | 361 | "end": { |
336 | "line": 133, | 362 | "line": 142, |
337 | "column": 3 | 363 | "column": 3 |
338 | } | 364 | } |
339 | }, | 365 | }, |
@@ -342,11 +368,11 @@ | |||
342 | "defaultMessage": "!!!Sidebar width", | 368 | "defaultMessage": "!!!Sidebar width", |
343 | "file": "src/containers/settings/EditSettingsScreen.js", | 369 | "file": "src/containers/settings/EditSettingsScreen.js", |
344 | "start": { | 370 | "start": { |
345 | "line": 134, | 371 | "line": 143, |
346 | "column": 22 | 372 | "column": 22 |
347 | }, | 373 | }, |
348 | "end": { | 374 | "end": { |
349 | "line": 137, | 375 | "line": 146, |
350 | "column": 3 | 376 | "column": 3 |
351 | } | 377 | } |
352 | }, | 378 | }, |
@@ -355,11 +381,11 @@ | |||
355 | "defaultMessage": "!!!Service icon size", | 381 | "defaultMessage": "!!!Service icon size", |
356 | "file": "src/containers/settings/EditSettingsScreen.js", | 382 | "file": "src/containers/settings/EditSettingsScreen.js", |
357 | "start": { | 383 | "start": { |
358 | "line": 138, | 384 | "line": 147, |
359 | "column": 12 | 385 | "column": 12 |
360 | }, | 386 | }, |
361 | "end": { | 387 | "end": { |
362 | "line": 141, | 388 | "line": 150, |
363 | "column": 3 | 389 | "column": 3 |
364 | } | 390 | } |
365 | }, | 391 | }, |
@@ -368,11 +394,11 @@ | |||
368 | "defaultMessage": "!!!Use vertical style", | 394 | "defaultMessage": "!!!Use vertical style", |
369 | "file": "src/containers/settings/EditSettingsScreen.js", | 395 | "file": "src/containers/settings/EditSettingsScreen.js", |
370 | "start": { | 396 | "start": { |
371 | "line": 142, | 397 | "line": 151, |
372 | "column": 20 | 398 | "column": 20 |
373 | }, | 399 | }, |
374 | "end": { | 400 | "end": { |
375 | "line": 145, | 401 | "line": 154, |
376 | "column": 3 | 402 | "column": 3 |
377 | } | 403 | } |
378 | }, | 404 | }, |
@@ -381,11 +407,11 @@ | |||
381 | "defaultMessage": "!!!Always show workspace drawer", | 407 | "defaultMessage": "!!!Always show workspace drawer", |
382 | "file": "src/containers/settings/EditSettingsScreen.js", | 408 | "file": "src/containers/settings/EditSettingsScreen.js", |
383 | "start": { | 409 | "start": { |
384 | "line": 146, | 410 | "line": 155, |
385 | "column": 24 | 411 | "column": 24 |
386 | }, | 412 | }, |
387 | "end": { | 413 | "end": { |
388 | "line": 149, | 414 | "line": 158, |
389 | "column": 3 | 415 | "column": 3 |
390 | } | 416 | } |
391 | }, | 417 | }, |
@@ -394,11 +420,11 @@ | |||
394 | "defaultMessage": "!!!Accent color", | 420 | "defaultMessage": "!!!Accent color", |
395 | "file": "src/containers/settings/EditSettingsScreen.js", | 421 | "file": "src/containers/settings/EditSettingsScreen.js", |
396 | "start": { | 422 | "start": { |
397 | "line": 150, | 423 | "line": 159, |
398 | "column": 15 | 424 | "column": 15 |
399 | }, | 425 | }, |
400 | "end": { | 426 | "end": { |
401 | "line": 153, | 427 | "line": 162, |
402 | "column": 3 | 428 | "column": 3 |
403 | } | 429 | } |
404 | }, | 430 | }, |
@@ -407,11 +433,11 @@ | |||
407 | "defaultMessage": "!!!Display disabled services tabs", | 433 | "defaultMessage": "!!!Display disabled services tabs", |
408 | "file": "src/containers/settings/EditSettingsScreen.js", | 434 | "file": "src/containers/settings/EditSettingsScreen.js", |
409 | "start": { | 435 | "start": { |
410 | "line": 154, | 436 | "line": 163, |
411 | "column": 24 | 437 | "column": 24 |
412 | }, | 438 | }, |
413 | "end": { | 439 | "end": { |
414 | "line": 157, | 440 | "line": 166, |
415 | "column": 3 | 441 | "column": 3 |
416 | } | 442 | } |
417 | }, | 443 | }, |
@@ -420,11 +446,11 @@ | |||
420 | "defaultMessage": "!!!Show unread message badge when notifications are disabled", | 446 | "defaultMessage": "!!!Show unread message badge when notifications are disabled", |
421 | "file": "src/containers/settings/EditSettingsScreen.js", | 447 | "file": "src/containers/settings/EditSettingsScreen.js", |
422 | "start": { | 448 | "start": { |
423 | "line": 158, | 449 | "line": 167, |
424 | "column": 29 | 450 | "column": 29 |
425 | }, | 451 | }, |
426 | "end": { | 452 | "end": { |
427 | "line": 161, | 453 | "line": 170, |
428 | "column": 3 | 454 | "column": 3 |
429 | } | 455 | } |
430 | }, | 456 | }, |
@@ -433,11 +459,11 @@ | |||
433 | "defaultMessage": "!!!Show draggable area on window", | 459 | "defaultMessage": "!!!Show draggable area on window", |
434 | "file": "src/containers/settings/EditSettingsScreen.js", | 460 | "file": "src/containers/settings/EditSettingsScreen.js", |
435 | "start": { | 461 | "start": { |
436 | "line": 162, | 462 | "line": 171, |
437 | "column": 16 | 463 | "column": 16 |
438 | }, | 464 | }, |
439 | "end": { | 465 | "end": { |
440 | "line": 165, | 466 | "line": 174, |
441 | "column": 3 | 467 | "column": 3 |
442 | } | 468 | } |
443 | }, | 469 | }, |
@@ -446,11 +472,11 @@ | |||
446 | "defaultMessage": "!!!Enable spell checking", | 472 | "defaultMessage": "!!!Enable spell checking", |
447 | "file": "src/containers/settings/EditSettingsScreen.js", | 473 | "file": "src/containers/settings/EditSettingsScreen.js", |
448 | "start": { | 474 | "start": { |
449 | "line": 166, | 475 | "line": 175, |
450 | "column": 23 | 476 | "column": 23 |
451 | }, | 477 | }, |
452 | "end": { | 478 | "end": { |
453 | "line": 169, | 479 | "line": 178, |
454 | "column": 3 | 480 | "column": 3 |
455 | } | 481 | } |
456 | }, | 482 | }, |
@@ -459,11 +485,11 @@ | |||
459 | "defaultMessage": "!!!Enable GPU Acceleration", | 485 | "defaultMessage": "!!!Enable GPU Acceleration", |
460 | "file": "src/containers/settings/EditSettingsScreen.js", | 486 | "file": "src/containers/settings/EditSettingsScreen.js", |
461 | "start": { | 487 | "start": { |
462 | "line": 170, | 488 | "line": 179, |
463 | "column": 25 | 489 | "column": 25 |
464 | }, | 490 | }, |
465 | "end": { | 491 | "end": { |
466 | "line": 173, | 492 | "line": 182, |
467 | "column": 3 | 493 | "column": 3 |
468 | } | 494 | } |
469 | }, | 495 | }, |
@@ -472,11 +498,11 @@ | |||
472 | "defaultMessage": "!!!Include beta versions", | 498 | "defaultMessage": "!!!Include beta versions", |
473 | "file": "src/containers/settings/EditSettingsScreen.js", | 499 | "file": "src/containers/settings/EditSettingsScreen.js", |
474 | "start": { | 500 | "start": { |
475 | "line": 174, | 501 | "line": 183, |
476 | "column": 8 | 502 | "column": 8 |
477 | }, | 503 | }, |
478 | "end": { | 504 | "end": { |
479 | "line": 177, | 505 | "line": 186, |
480 | "column": 3 | 506 | "column": 3 |
481 | } | 507 | } |
482 | }, | 508 | }, |
@@ -485,11 +511,11 @@ | |||
485 | "defaultMessage": "!!!Enable updates", | 511 | "defaultMessage": "!!!Enable updates", |
486 | "file": "src/containers/settings/EditSettingsScreen.js", | 512 | "file": "src/containers/settings/EditSettingsScreen.js", |
487 | "start": { | 513 | "start": { |
488 | "line": 178, | 514 | "line": 187, |
489 | "column": 20 | 515 | "column": 20 |
490 | }, | 516 | }, |
491 | "end": { | 517 | "end": { |
492 | "line": 181, | 518 | "line": 190, |
493 | "column": 3 | 519 | "column": 3 |
494 | } | 520 | } |
495 | }, | 521 | }, |
@@ -498,11 +524,11 @@ | |||
498 | "defaultMessage": "!!!Enable Franz Todos", | 524 | "defaultMessage": "!!!Enable Franz Todos", |
499 | "file": "src/containers/settings/EditSettingsScreen.js", | 525 | "file": "src/containers/settings/EditSettingsScreen.js", |
500 | "start": { | 526 | "start": { |
501 | "line": 182, | 527 | "line": 191, |
502 | "column": 15 | 528 | "column": 15 |
503 | }, | 529 | }, |
504 | "end": { | 530 | "end": { |
505 | "line": 185, | 531 | "line": 194, |
506 | "column": 3 | 532 | "column": 3 |
507 | } | 533 | } |
508 | }, | 534 | }, |
@@ -511,11 +537,11 @@ | |||
511 | "defaultMessage": "!!!Keep all workspaces loaded", | 537 | "defaultMessage": "!!!Keep all workspaces loaded", |
512 | "file": "src/containers/settings/EditSettingsScreen.js", | 538 | "file": "src/containers/settings/EditSettingsScreen.js", |
513 | "start": { | 539 | "start": { |
514 | "line": 186, | 540 | "line": 195, |
515 | "column": 27 | 541 | "column": 27 |
516 | }, | 542 | }, |
517 | "end": { | 543 | "end": { |
518 | "line": 189, | 544 | "line": 198, |
519 | "column": 3 | 545 | "column": 3 |
520 | } | 546 | } |
521 | } | 547 | } |
diff --git a/src/i18n/messages/src/features/todos/components/TodosWebview.json b/src/i18n/messages/src/features/todos/components/TodosWebview.json index ff6e037fc..0652b0a33 100644 --- a/src/i18n/messages/src/features/todos/components/TodosWebview.json +++ b/src/i18n/messages/src/features/todos/components/TodosWebview.json | |||
@@ -4,11 +4,11 @@ | |||
4 | "defaultMessage": "!!!Franz Todos are available to premium users now!", | 4 | "defaultMessage": "!!!Franz Todos are available to premium users now!", |
5 | "file": "src/features/todos/components/TodosWebview.js", | 5 | "file": "src/features/todos/components/TodosWebview.js", |
6 | "start": { | 6 | "start": { |
7 | "line": 31, | 7 | "line": 33, |
8 | "column": 15 | 8 | "column": 15 |
9 | }, | 9 | }, |
10 | "end": { | 10 | "end": { |
11 | "line": 34, | 11 | "line": 36, |
12 | "column": 3 | 12 | "column": 3 |
13 | } | 13 | } |
14 | }, | 14 | }, |
@@ -17,11 +17,11 @@ | |||
17 | "defaultMessage": "!!!Upgrade Account", | 17 | "defaultMessage": "!!!Upgrade Account", |
18 | "file": "src/features/todos/components/TodosWebview.js", | 18 | "file": "src/features/todos/components/TodosWebview.js", |
19 | "start": { | 19 | "start": { |
20 | "line": 35, | 20 | "line": 37, |
21 | "column": 14 | 21 | "column": 14 |
22 | }, | 22 | }, |
23 | "end": { | 23 | "end": { |
24 | "line": 38, | 24 | "line": 40, |
25 | "column": 3 | 25 | "column": 3 |
26 | } | 26 | } |
27 | }, | 27 | }, |
@@ -30,11 +30,11 @@ | |||
30 | "defaultMessage": "!!!Everyone else will have to wait a little longer.", | 30 | "defaultMessage": "!!!Everyone else will have to wait a little longer.", |
31 | "file": "src/features/todos/components/TodosWebview.js", | 31 | "file": "src/features/todos/components/TodosWebview.js", |
32 | "start": { | 32 | "start": { |
33 | "line": 39, | 33 | "line": 41, |
34 | "column": 15 | 34 | "column": 15 |
35 | }, | 35 | }, |
36 | "end": { | 36 | "end": { |
37 | "line": 42, | 37 | "line": 44, |
38 | "column": 3 | 38 | "column": 3 |
39 | } | 39 | } |
40 | } | 40 | } |
diff --git a/src/i18n/messages/src/lib/Menu.json b/src/i18n/messages/src/lib/Menu.json index 08028032d..d9a4e9ad9 100644 --- a/src/i18n/messages/src/lib/Menu.json +++ b/src/i18n/messages/src/lib/Menu.json | |||
@@ -403,15 +403,28 @@ | |||
403 | } | 403 | } |
404 | }, | 404 | }, |
405 | { | 405 | { |
406 | "id": "menu.view.reloadTodos", | ||
407 | "defaultMessage": "!!!Reload ToDos", | ||
408 | "file": "src/lib/Menu.js", | ||
409 | "start": { | ||
410 | "line": 142, | ||
411 | "column": 15 | ||
412 | }, | ||
413 | "end": { | ||
414 | "line": 145, | ||
415 | "column": 3 | ||
416 | } | ||
417 | }, | ||
418 | { | ||
406 | "id": "menu.window.minimize", | 419 | "id": "menu.window.minimize", |
407 | "defaultMessage": "!!!Minimize", | 420 | "defaultMessage": "!!!Minimize", |
408 | "file": "src/lib/Menu.js", | 421 | "file": "src/lib/Menu.js", |
409 | "start": { | 422 | "start": { |
410 | "line": 142, | 423 | "line": 146, |
411 | "column": 12 | 424 | "column": 12 |
412 | }, | 425 | }, |
413 | "end": { | 426 | "end": { |
414 | "line": 145, | 427 | "line": 149, |
415 | "column": 3 | 428 | "column": 3 |
416 | } | 429 | } |
417 | }, | 430 | }, |
@@ -420,11 +433,11 @@ | |||
420 | "defaultMessage": "!!!Close", | 433 | "defaultMessage": "!!!Close", |
421 | "file": "src/lib/Menu.js", | 434 | "file": "src/lib/Menu.js", |
422 | "start": { | 435 | "start": { |
423 | "line": 146, | 436 | "line": 150, |
424 | "column": 9 | 437 | "column": 9 |
425 | }, | 438 | }, |
426 | "end": { | 439 | "end": { |
427 | "line": 149, | 440 | "line": 153, |
428 | "column": 3 | 441 | "column": 3 |
429 | } | 442 | } |
430 | }, | 443 | }, |
@@ -433,11 +446,11 @@ | |||
433 | "defaultMessage": "!!!Learn More", | 446 | "defaultMessage": "!!!Learn More", |
434 | "file": "src/lib/Menu.js", | 447 | "file": "src/lib/Menu.js", |
435 | "start": { | 448 | "start": { |
436 | "line": 150, | 449 | "line": 154, |
437 | "column": 13 | 450 | "column": 13 |
438 | }, | 451 | }, |
439 | "end": { | 452 | "end": { |
440 | "line": 153, | 453 | "line": 157, |
441 | "column": 3 | 454 | "column": 3 |
442 | } | 455 | } |
443 | }, | 456 | }, |
@@ -446,11 +459,11 @@ | |||
446 | "defaultMessage": "!!!Changelog", | 459 | "defaultMessage": "!!!Changelog", |
447 | "file": "src/lib/Menu.js", | 460 | "file": "src/lib/Menu.js", |
448 | "start": { | 461 | "start": { |
449 | "line": 154, | 462 | "line": 158, |
450 | "column": 13 | 463 | "column": 13 |
451 | }, | 464 | }, |
452 | "end": { | 465 | "end": { |
453 | "line": 157, | 466 | "line": 161, |
454 | "column": 3 | 467 | "column": 3 |
455 | } | 468 | } |
456 | }, | 469 | }, |
@@ -459,11 +472,11 @@ | |||
459 | "defaultMessage": "!!!Support", | 472 | "defaultMessage": "!!!Support", |
460 | "file": "src/lib/Menu.js", | 473 | "file": "src/lib/Menu.js", |
461 | "start": { | 474 | "start": { |
462 | "line": 158, | 475 | "line": 162, |
463 | "column": 11 | 476 | "column": 11 |
464 | }, | 477 | }, |
465 | "end": { | 478 | "end": { |
466 | "line": 161, | 479 | "line": 165, |
467 | "column": 3 | 480 | "column": 3 |
468 | } | 481 | } |
469 | }, | 482 | }, |
@@ -472,11 +485,11 @@ | |||
472 | "defaultMessage": "!!!Copy Debug Information", | 485 | "defaultMessage": "!!!Copy Debug Information", |
473 | "file": "src/lib/Menu.js", | 486 | "file": "src/lib/Menu.js", |
474 | "start": { | 487 | "start": { |
475 | "line": 162, | 488 | "line": 166, |
476 | "column": 13 | 489 | "column": 13 |
477 | }, | 490 | }, |
478 | "end": { | 491 | "end": { |
479 | "line": 165, | 492 | "line": 169, |
480 | "column": 3 | 493 | "column": 3 |
481 | } | 494 | } |
482 | }, | 495 | }, |
@@ -485,11 +498,11 @@ | |||
485 | "defaultMessage": "!!!Publish Debug Information", | 498 | "defaultMessage": "!!!Publish Debug Information", |
486 | "file": "src/lib/Menu.js", | 499 | "file": "src/lib/Menu.js", |
487 | "start": { | 500 | "start": { |
488 | "line": 166, | 501 | "line": 170, |
489 | "column": 20 | 502 | "column": 20 |
490 | }, | 503 | }, |
491 | "end": { | 504 | "end": { |
492 | "line": 169, | 505 | "line": 173, |
493 | "column": 3 | 506 | "column": 3 |
494 | } | 507 | } |
495 | }, | 508 | }, |
@@ -498,11 +511,11 @@ | |||
498 | "defaultMessage": "!!!Ferdi Debug Information", | 511 | "defaultMessage": "!!!Ferdi Debug Information", |
499 | "file": "src/lib/Menu.js", | 512 | "file": "src/lib/Menu.js", |
500 | "start": { | 513 | "start": { |
501 | "line": 170, | 514 | "line": 174, |
502 | "column": 27 | 515 | "column": 27 |
503 | }, | 516 | }, |
504 | "end": { | 517 | "end": { |
505 | "line": 173, | 518 | "line": 177, |
506 | "column": 3 | 519 | "column": 3 |
507 | } | 520 | } |
508 | }, | 521 | }, |
@@ -511,11 +524,11 @@ | |||
511 | "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", | 524 | "defaultMessage": "!!!Your Debug Information has been copied to your clipboard.", |
512 | "file": "src/lib/Menu.js", | 525 | "file": "src/lib/Menu.js", |
513 | "start": { | 526 | "start": { |
514 | "line": 174, | 527 | "line": 178, |
515 | "column": 23 | 528 | "column": 23 |
516 | }, | 529 | }, |
517 | "end": { | 530 | "end": { |
518 | "line": 177, | 531 | "line": 181, |
519 | "column": 3 | 532 | "column": 3 |
520 | } | 533 | } |
521 | }, | 534 | }, |
@@ -524,11 +537,11 @@ | |||
524 | "defaultMessage": "!!!Unlock with Touch ID", | 537 | "defaultMessage": "!!!Unlock with Touch ID", |
525 | "file": "src/lib/Menu.js", | 538 | "file": "src/lib/Menu.js", |
526 | "start": { | 539 | "start": { |
527 | "line": 178, | 540 | "line": 182, |
528 | "column": 11 | 541 | "column": 11 |
529 | }, | 542 | }, |
530 | "end": { | 543 | "end": { |
531 | "line": 181, | 544 | "line": 185, |
532 | "column": 3 | 545 | "column": 3 |
533 | } | 546 | } |
534 | }, | 547 | }, |
@@ -537,11 +550,11 @@ | |||
537 | "defaultMessage": "!!!unlock via Touch ID", | 550 | "defaultMessage": "!!!unlock via Touch ID", |
538 | "file": "src/lib/Menu.js", | 551 | "file": "src/lib/Menu.js", |
539 | "start": { | 552 | "start": { |
540 | "line": 182, | 553 | "line": 186, |
541 | "column": 17 | 554 | "column": 17 |
542 | }, | 555 | }, |
543 | "end": { | 556 | "end": { |
544 | "line": 185, | 557 | "line": 189, |
545 | "column": 3 | 558 | "column": 3 |
546 | } | 559 | } |
547 | }, | 560 | }, |
@@ -550,11 +563,11 @@ | |||
550 | "defaultMessage": "!!!Terms of Service", | 563 | "defaultMessage": "!!!Terms of Service", |
551 | "file": "src/lib/Menu.js", | 564 | "file": "src/lib/Menu.js", |
552 | "start": { | 565 | "start": { |
553 | "line": 186, | 566 | "line": 190, |
554 | "column": 7 | 567 | "column": 7 |
555 | }, | 568 | }, |
556 | "end": { | 569 | "end": { |
557 | "line": 189, | 570 | "line": 193, |
558 | "column": 3 | 571 | "column": 3 |
559 | } | 572 | } |
560 | }, | 573 | }, |
@@ -563,11 +576,11 @@ | |||
563 | "defaultMessage": "!!!Privacy Statement", | 576 | "defaultMessage": "!!!Privacy Statement", |
564 | "file": "src/lib/Menu.js", | 577 | "file": "src/lib/Menu.js", |
565 | "start": { | 578 | "start": { |
566 | "line": 190, | 579 | "line": 194, |
567 | "column": 11 | 580 | "column": 11 |
568 | }, | 581 | }, |
569 | "end": { | 582 | "end": { |
570 | "line": 193, | 583 | "line": 197, |
571 | "column": 3 | 584 | "column": 3 |
572 | } | 585 | } |
573 | }, | 586 | }, |
@@ -576,11 +589,11 @@ | |||
576 | "defaultMessage": "!!!File", | 589 | "defaultMessage": "!!!File", |
577 | "file": "src/lib/Menu.js", | 590 | "file": "src/lib/Menu.js", |
578 | "start": { | 591 | "start": { |
579 | "line": 194, | 592 | "line": 198, |
580 | "column": 8 | 593 | "column": 8 |
581 | }, | 594 | }, |
582 | "end": { | 595 | "end": { |
583 | "line": 197, | 596 | "line": 201, |
584 | "column": 3 | 597 | "column": 3 |
585 | } | 598 | } |
586 | }, | 599 | }, |
@@ -589,11 +602,11 @@ | |||
589 | "defaultMessage": "!!!View", | 602 | "defaultMessage": "!!!View", |
590 | "file": "src/lib/Menu.js", | 603 | "file": "src/lib/Menu.js", |
591 | "start": { | 604 | "start": { |
592 | "line": 198, | 605 | "line": 202, |
593 | "column": 8 | 606 | "column": 8 |
594 | }, | 607 | }, |
595 | "end": { | 608 | "end": { |
596 | "line": 201, | 609 | "line": 205, |
597 | "column": 3 | 610 | "column": 3 |
598 | } | 611 | } |
599 | }, | 612 | }, |
@@ -602,11 +615,11 @@ | |||
602 | "defaultMessage": "!!!Services", | 615 | "defaultMessage": "!!!Services", |
603 | "file": "src/lib/Menu.js", | 616 | "file": "src/lib/Menu.js", |
604 | "start": { | 617 | "start": { |
605 | "line": 202, | 618 | "line": 206, |
606 | "column": 12 | 619 | "column": 12 |
607 | }, | 620 | }, |
608 | "end": { | 621 | "end": { |
609 | "line": 205, | 622 | "line": 209, |
610 | "column": 3 | 623 | "column": 3 |
611 | } | 624 | } |
612 | }, | 625 | }, |
@@ -615,11 +628,11 @@ | |||
615 | "defaultMessage": "!!!Window", | 628 | "defaultMessage": "!!!Window", |
616 | "file": "src/lib/Menu.js", | 629 | "file": "src/lib/Menu.js", |
617 | "start": { | 630 | "start": { |
618 | "line": 206, | 631 | "line": 210, |
619 | "column": 10 | 632 | "column": 10 |
620 | }, | 633 | }, |
621 | "end": { | 634 | "end": { |
622 | "line": 209, | 635 | "line": 213, |
623 | "column": 3 | 636 | "column": 3 |
624 | } | 637 | } |
625 | }, | 638 | }, |
@@ -628,11 +641,11 @@ | |||
628 | "defaultMessage": "!!!Help", | 641 | "defaultMessage": "!!!Help", |
629 | "file": "src/lib/Menu.js", | 642 | "file": "src/lib/Menu.js", |
630 | "start": { | 643 | "start": { |
631 | "line": 210, | 644 | "line": 214, |
632 | "column": 8 | 645 | "column": 8 |
633 | }, | 646 | }, |
634 | "end": { | 647 | "end": { |
635 | "line": 213, | 648 | "line": 217, |
636 | "column": 3 | 649 | "column": 3 |
637 | } | 650 | } |
638 | }, | 651 | }, |
@@ -641,11 +654,11 @@ | |||
641 | "defaultMessage": "!!!About Ferdi", | 654 | "defaultMessage": "!!!About Ferdi", |
642 | "file": "src/lib/Menu.js", | 655 | "file": "src/lib/Menu.js", |
643 | "start": { | 656 | "start": { |
644 | "line": 214, | 657 | "line": 218, |
645 | "column": 9 | 658 | "column": 9 |
646 | }, | 659 | }, |
647 | "end": { | 660 | "end": { |
648 | "line": 217, | 661 | "line": 221, |
649 | "column": 3 | 662 | "column": 3 |
650 | } | 663 | } |
651 | }, | 664 | }, |
@@ -654,11 +667,11 @@ | |||
654 | "defaultMessage": "!!!What's new?", | 667 | "defaultMessage": "!!!What's new?", |
655 | "file": "src/lib/Menu.js", | 668 | "file": "src/lib/Menu.js", |
656 | "start": { | 669 | "start": { |
657 | "line": 218, | 670 | "line": 222, |
658 | "column": 16 | 671 | "column": 16 |
659 | }, | 672 | }, |
660 | "end": { | 673 | "end": { |
661 | "line": 221, | 674 | "line": 225, |
662 | "column": 3 | 675 | "column": 3 |
663 | } | 676 | } |
664 | }, | 677 | }, |
@@ -667,11 +680,11 @@ | |||
667 | "defaultMessage": "!!!Settings", | 680 | "defaultMessage": "!!!Settings", |
668 | "file": "src/lib/Menu.js", | 681 | "file": "src/lib/Menu.js", |
669 | "start": { | 682 | "start": { |
670 | "line": 222, | 683 | "line": 226, |
671 | "column": 12 | 684 | "column": 12 |
672 | }, | 685 | }, |
673 | "end": { | 686 | "end": { |
674 | "line": 225, | 687 | "line": 229, |
675 | "column": 3 | 688 | "column": 3 |
676 | } | 689 | } |
677 | }, | 690 | }, |
@@ -680,11 +693,11 @@ | |||
680 | "defaultMessage": "!!!Check for updates", | 693 | "defaultMessage": "!!!Check for updates", |
681 | "file": "src/lib/Menu.js", | 694 | "file": "src/lib/Menu.js", |
682 | "start": { | 695 | "start": { |
683 | "line": 226, | 696 | "line": 230, |
684 | "column": 19 | 697 | "column": 19 |
685 | }, | 698 | }, |
686 | "end": { | 699 | "end": { |
687 | "line": 229, | 700 | "line": 233, |
688 | "column": 3 | 701 | "column": 3 |
689 | } | 702 | } |
690 | }, | 703 | }, |
@@ -693,11 +706,11 @@ | |||
693 | "defaultMessage": "!!!Hide", | 706 | "defaultMessage": "!!!Hide", |
694 | "file": "src/lib/Menu.js", | 707 | "file": "src/lib/Menu.js", |
695 | "start": { | 708 | "start": { |
696 | "line": 230, | 709 | "line": 234, |
697 | "column": 8 | 710 | "column": 8 |
698 | }, | 711 | }, |
699 | "end": { | 712 | "end": { |
700 | "line": 233, | 713 | "line": 237, |
701 | "column": 3 | 714 | "column": 3 |
702 | } | 715 | } |
703 | }, | 716 | }, |
@@ -706,11 +719,11 @@ | |||
706 | "defaultMessage": "!!!Hide Others", | 719 | "defaultMessage": "!!!Hide Others", |
707 | "file": "src/lib/Menu.js", | 720 | "file": "src/lib/Menu.js", |
708 | "start": { | 721 | "start": { |
709 | "line": 234, | 722 | "line": 238, |
710 | "column": 14 | 723 | "column": 14 |
711 | }, | 724 | }, |
712 | "end": { | 725 | "end": { |
713 | "line": 237, | 726 | "line": 241, |
714 | "column": 3 | 727 | "column": 3 |
715 | } | 728 | } |
716 | }, | 729 | }, |
@@ -719,11 +732,11 @@ | |||
719 | "defaultMessage": "!!!Unhide", | 732 | "defaultMessage": "!!!Unhide", |
720 | "file": "src/lib/Menu.js", | 733 | "file": "src/lib/Menu.js", |
721 | "start": { | 734 | "start": { |
722 | "line": 238, | 735 | "line": 242, |
723 | "column": 10 | 736 | "column": 10 |
724 | }, | 737 | }, |
725 | "end": { | 738 | "end": { |
726 | "line": 241, | 739 | "line": 245, |
727 | "column": 3 | 740 | "column": 3 |
728 | } | 741 | } |
729 | }, | 742 | }, |
@@ -732,11 +745,11 @@ | |||
732 | "defaultMessage": "!!!Auto-hide menu bar", | 745 | "defaultMessage": "!!!Auto-hide menu bar", |
733 | "file": "src/lib/Menu.js", | 746 | "file": "src/lib/Menu.js", |
734 | "start": { | 747 | "start": { |
735 | "line": 242, | 748 | "line": 246, |
736 | "column": 19 | 749 | "column": 19 |
737 | }, | 750 | }, |
738 | "end": { | 751 | "end": { |
739 | "line": 245, | 752 | "line": 249, |
740 | "column": 3 | 753 | "column": 3 |
741 | } | 754 | } |
742 | }, | 755 | }, |
@@ -745,11 +758,11 @@ | |||
745 | "defaultMessage": "!!!Quit", | 758 | "defaultMessage": "!!!Quit", |
746 | "file": "src/lib/Menu.js", | 759 | "file": "src/lib/Menu.js", |
747 | "start": { | 760 | "start": { |
748 | "line": 246, | 761 | "line": 250, |
749 | "column": 8 | 762 | "column": 8 |
750 | }, | 763 | }, |
751 | "end": { | 764 | "end": { |
752 | "line": 249, | 765 | "line": 253, |
753 | "column": 3 | 766 | "column": 3 |
754 | } | 767 | } |
755 | }, | 768 | }, |
@@ -758,11 +771,11 @@ | |||
758 | "defaultMessage": "!!!Add New Service...", | 771 | "defaultMessage": "!!!Add New Service...", |
759 | "file": "src/lib/Menu.js", | 772 | "file": "src/lib/Menu.js", |
760 | "start": { | 773 | "start": { |
761 | "line": 250, | 774 | "line": 254, |
762 | "column": 17 | 775 | "column": 17 |
763 | }, | 776 | }, |
764 | "end": { | 777 | "end": { |
765 | "line": 253, | 778 | "line": 257, |
766 | "column": 3 | 779 | "column": 3 |
767 | } | 780 | } |
768 | }, | 781 | }, |
@@ -771,11 +784,11 @@ | |||
771 | "defaultMessage": "!!!Add New Workspace...", | 784 | "defaultMessage": "!!!Add New Workspace...", |
772 | "file": "src/lib/Menu.js", | 785 | "file": "src/lib/Menu.js", |
773 | "start": { | 786 | "start": { |
774 | "line": 254, | 787 | "line": 258, |
775 | "column": 19 | 788 | "column": 19 |
776 | }, | 789 | }, |
777 | "end": { | 790 | "end": { |
778 | "line": 257, | 791 | "line": 261, |
779 | "column": 3 | 792 | "column": 3 |
780 | } | 793 | } |
781 | }, | 794 | }, |
@@ -784,11 +797,11 @@ | |||
784 | "defaultMessage": "!!!Open workspace drawer", | 797 | "defaultMessage": "!!!Open workspace drawer", |
785 | "file": "src/lib/Menu.js", | 798 | "file": "src/lib/Menu.js", |
786 | "start": { | 799 | "start": { |
787 | "line": 258, | 800 | "line": 262, |
788 | "column": 23 | 801 | "column": 23 |
789 | }, | 802 | }, |
790 | "end": { | 803 | "end": { |
791 | "line": 261, | 804 | "line": 265, |
792 | "column": 3 | 805 | "column": 3 |
793 | } | 806 | } |
794 | }, | 807 | }, |
@@ -797,11 +810,11 @@ | |||
797 | "defaultMessage": "!!!Close workspace drawer", | 810 | "defaultMessage": "!!!Close workspace drawer", |
798 | "file": "src/lib/Menu.js", | 811 | "file": "src/lib/Menu.js", |
799 | "start": { | 812 | "start": { |
800 | "line": 262, | 813 | "line": 266, |
801 | "column": 24 | 814 | "column": 24 |
802 | }, | 815 | }, |
803 | "end": { | 816 | "end": { |
804 | "line": 265, | 817 | "line": 269, |
805 | "column": 3 | 818 | "column": 3 |
806 | } | 819 | } |
807 | }, | 820 | }, |
@@ -810,11 +823,11 @@ | |||
810 | "defaultMessage": "!!!Activate next service...", | 823 | "defaultMessage": "!!!Activate next service...", |
811 | "file": "src/lib/Menu.js", | 824 | "file": "src/lib/Menu.js", |
812 | "start": { | 825 | "start": { |
813 | "line": 266, | 826 | "line": 270, |
814 | "column": 23 | 827 | "column": 23 |
815 | }, | 828 | }, |
816 | "end": { | 829 | "end": { |
817 | "line": 269, | 830 | "line": 273, |
818 | "column": 3 | 831 | "column": 3 |
819 | } | 832 | } |
820 | }, | 833 | }, |
@@ -823,11 +836,11 @@ | |||
823 | "defaultMessage": "!!!Activate previous service...", | 836 | "defaultMessage": "!!!Activate previous service...", |
824 | "file": "src/lib/Menu.js", | 837 | "file": "src/lib/Menu.js", |
825 | "start": { | 838 | "start": { |
826 | "line": 270, | 839 | "line": 274, |
827 | "column": 27 | 840 | "column": 27 |
828 | }, | 841 | }, |
829 | "end": { | 842 | "end": { |
830 | "line": 273, | 843 | "line": 277, |
831 | "column": 3 | 844 | "column": 3 |
832 | } | 845 | } |
833 | }, | 846 | }, |
@@ -836,11 +849,11 @@ | |||
836 | "defaultMessage": "!!!Disable notifications & audio", | 849 | "defaultMessage": "!!!Disable notifications & audio", |
837 | "file": "src/lib/Menu.js", | 850 | "file": "src/lib/Menu.js", |
838 | "start": { | 851 | "start": { |
839 | "line": 274, | 852 | "line": 278, |
840 | "column": 11 | 853 | "column": 11 |
841 | }, | 854 | }, |
842 | "end": { | 855 | "end": { |
843 | "line": 277, | 856 | "line": 281, |
844 | "column": 3 | 857 | "column": 3 |
845 | } | 858 | } |
846 | }, | 859 | }, |
@@ -849,11 +862,11 @@ | |||
849 | "defaultMessage": "!!!Enable notifications & audio", | 862 | "defaultMessage": "!!!Enable notifications & audio", |
850 | "file": "src/lib/Menu.js", | 863 | "file": "src/lib/Menu.js", |
851 | "start": { | 864 | "start": { |
852 | "line": 278, | 865 | "line": 282, |
853 | "column": 13 | 866 | "column": 13 |
854 | }, | 867 | }, |
855 | "end": { | 868 | "end": { |
856 | "line": 281, | 869 | "line": 285, |
857 | "column": 3 | 870 | "column": 3 |
858 | } | 871 | } |
859 | }, | 872 | }, |
@@ -862,11 +875,11 @@ | |||
862 | "defaultMessage": "!!!Workspaces", | 875 | "defaultMessage": "!!!Workspaces", |
863 | "file": "src/lib/Menu.js", | 876 | "file": "src/lib/Menu.js", |
864 | "start": { | 877 | "start": { |
865 | "line": 282, | 878 | "line": 286, |
866 | "column": 14 | 879 | "column": 14 |
867 | }, | 880 | }, |
868 | "end": { | 881 | "end": { |
869 | "line": 285, | 882 | "line": 289, |
870 | "column": 3 | 883 | "column": 3 |
871 | } | 884 | } |
872 | }, | 885 | }, |
@@ -875,11 +888,11 @@ | |||
875 | "defaultMessage": "!!!Default", | 888 | "defaultMessage": "!!!Default", |
876 | "file": "src/lib/Menu.js", | 889 | "file": "src/lib/Menu.js", |
877 | "start": { | 890 | "start": { |
878 | "line": 286, | 891 | "line": 290, |
879 | "column": 20 | 892 | "column": 20 |
880 | }, | 893 | }, |
881 | "end": { | 894 | "end": { |
882 | "line": 289, | 895 | "line": 293, |
883 | "column": 3 | 896 | "column": 3 |
884 | } | 897 | } |
885 | }, | 898 | }, |
@@ -888,11 +901,11 @@ | |||
888 | "defaultMessage": "!!!Todos", | 901 | "defaultMessage": "!!!Todos", |
889 | "file": "src/lib/Menu.js", | 902 | "file": "src/lib/Menu.js", |
890 | "start": { | 903 | "start": { |
891 | "line": 290, | 904 | "line": 294, |
892 | "column": 9 | 905 | "column": 9 |
893 | }, | 906 | }, |
894 | "end": { | 907 | "end": { |
895 | "line": 293, | 908 | "line": 297, |
896 | "column": 3 | 909 | "column": 3 |
897 | } | 910 | } |
898 | }, | 911 | }, |
@@ -901,11 +914,11 @@ | |||
901 | "defaultMessage": "!!!Open Todos drawer", | 914 | "defaultMessage": "!!!Open Todos drawer", |
902 | "file": "src/lib/Menu.js", | 915 | "file": "src/lib/Menu.js", |
903 | "start": { | 916 | "start": { |
904 | "line": 294, | 917 | "line": 298, |
905 | "column": 19 | 918 | "column": 19 |
906 | }, | 919 | }, |
907 | "end": { | 920 | "end": { |
908 | "line": 297, | 921 | "line": 301, |
909 | "column": 3 | 922 | "column": 3 |
910 | } | 923 | } |
911 | }, | 924 | }, |
@@ -914,11 +927,11 @@ | |||
914 | "defaultMessage": "!!!Close Todos drawer", | 927 | "defaultMessage": "!!!Close Todos drawer", |
915 | "file": "src/lib/Menu.js", | 928 | "file": "src/lib/Menu.js", |
916 | "start": { | 929 | "start": { |
917 | "line": 298, | 930 | "line": 302, |
918 | "column": 20 | 931 | "column": 20 |
919 | }, | 932 | }, |
920 | "end": { | 933 | "end": { |
921 | "line": 301, | 934 | "line": 305, |
922 | "column": 3 | 935 | "column": 3 |
923 | } | 936 | } |
924 | }, | 937 | }, |
@@ -927,11 +940,11 @@ | |||
927 | "defaultMessage": "!!!Enable Todos", | 940 | "defaultMessage": "!!!Enable Todos", |
928 | "file": "src/lib/Menu.js", | 941 | "file": "src/lib/Menu.js", |
929 | "start": { | 942 | "start": { |
930 | "line": 302, | 943 | "line": 306, |
931 | "column": 15 | 944 | "column": 15 |
932 | }, | 945 | }, |
933 | "end": { | 946 | "end": { |
934 | "line": 305, | 947 | "line": 309, |
935 | "column": 3 | 948 | "column": 3 |
936 | } | 949 | } |
937 | }, | 950 | }, |
@@ -940,11 +953,11 @@ | |||
940 | "defaultMessage": "!!!Home", | 953 | "defaultMessage": "!!!Home", |
941 | "file": "src/lib/Menu.js", | 954 | "file": "src/lib/Menu.js", |
942 | "start": { | 955 | "start": { |
943 | "line": 306, | 956 | "line": 310, |
944 | "column": 17 | 957 | "column": 17 |
945 | }, | 958 | }, |
946 | "end": { | 959 | "end": { |
947 | "line": 309, | 960 | "line": 313, |
948 | "column": 3 | 961 | "column": 3 |
949 | } | 962 | } |
950 | } | 963 | } |
diff --git a/src/index.js b/src/index.js index 28bbe19c1..b297d66d8 100644 --- a/src/index.js +++ b/src/index.js | |||
@@ -9,6 +9,7 @@ import isDevMode from 'electron-is-dev'; | |||
9 | import fs from 'fs-extra'; | 9 | import fs from 'fs-extra'; |
10 | import path from 'path'; | 10 | import path from 'path'; |
11 | import windowStateKeeper from 'electron-window-state'; | 11 | import windowStateKeeper from 'electron-window-state'; |
12 | import { enforceMacOSAppLocation } from 'electron-util'; | ||
12 | 13 | ||
13 | // Set app directory before loading user modules | 14 | // Set app directory before loading user modules |
14 | if (process.env.FERDI_APPDATA_DIR != null) { | 15 | if (process.env.FERDI_APPDATA_DIR != null) { |
@@ -39,7 +40,7 @@ import DBus from './lib/DBus'; | |||
39 | import Settings from './electron/Settings'; | 40 | import Settings from './electron/Settings'; |
40 | import handleDeepLink from './electron/deepLinking'; | 41 | import handleDeepLink from './electron/deepLinking'; |
41 | import { isPositionValid } from './electron/windowUtils'; | 42 | import { isPositionValid } from './electron/windowUtils'; |
42 | // import askFormacOSPermissions from './electron/macOSPermissions'; | 43 | import askFormacOSPermissions from './electron/macOSPermissions'; |
43 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved | 44 | import { appId } from './package.json'; // eslint-disable-line import/no-unresolved |
44 | import './electron/exception'; | 45 | import './electron/exception'; |
45 | 46 | ||
@@ -60,6 +61,9 @@ if (isWindows) { | |||
60 | app.allowRendererProcessReuse = false; | 61 | app.allowRendererProcessReuse = false; |
61 | } | 62 | } |
62 | 63 | ||
64 | // Globally set useragent to fix user agent override in service workers | ||
65 | debug('Set userAgent to ', userAgent()); | ||
66 | app.userAgentFallback = userAgent(); | ||
63 | 67 | ||
64 | // Globally set useragent to fix user agent override in service workers | 68 | // Globally set useragent to fix user agent override in service workers |
65 | debug('Set userAgent to ', userAgent()); | 69 | debug('Set userAgent to ', userAgent()); |
@@ -212,10 +216,11 @@ const createWindow = () => { | |||
212 | mainWindow.webContents.on('did-finish-load', () => { | 216 | mainWindow.webContents.on('did-finish-load', () => { |
213 | const fns = onDidLoadFns; | 217 | const fns = onDidLoadFns; |
214 | onDidLoadFns = null; | 218 | onDidLoadFns = null; |
215 | if (fns) { | 219 | |
216 | for (const fn of fns) { // eslint-disable-line no-unused-vars | 220 | if (!fns) return; |
217 | fn(mainWindow); | 221 | |
218 | } | 222 | for (const fn of fns) { |
223 | fn(mainWindow); | ||
219 | } | 224 | } |
220 | }); | 225 | }); |
221 | 226 | ||
@@ -322,10 +327,9 @@ const createWindow = () => { | |||
322 | } | 327 | } |
323 | }); | 328 | }); |
324 | 329 | ||
325 | // Asking for permissions like this currently crashes Ferdi | 330 | if (isMac) { |
326 | // if (isMac) { | 331 | askFormacOSPermissions(); |
327 | // askFormacOSPermissions(); | 332 | } |
328 | // } | ||
329 | 333 | ||
330 | mainWindow.on('show', () => { | 334 | mainWindow.on('show', () => { |
331 | debug('Skip taskbar: true'); | 335 | debug('Skip taskbar: true'); |
@@ -372,6 +376,9 @@ app.commandLine.appendSwitch('disable-features', 'HardwareMediaKeyHandling,Media | |||
372 | // initialization and is ready to create browser windows. | 376 | // initialization and is ready to create browser windows. |
373 | // Some APIs can only be used after this event occurs. | 377 | // Some APIs can only be used after this event occurs. |
374 | app.on('ready', () => { | 378 | app.on('ready', () => { |
379 | // force app to live in /Applications | ||
380 | enforceMacOSAppLocation(); | ||
381 | |||
375 | // Register App URL | 382 | // Register App URL |
376 | app.setAsDefaultProtocolClient('ferdi'); | 383 | app.setAsDefaultProtocolClient('ferdi'); |
377 | 384 | ||
@@ -482,6 +489,12 @@ app.on('activate', () => { | |||
482 | } | 489 | } |
483 | }); | 490 | }); |
484 | 491 | ||
492 | app.on('web-contents-created', (createdEvent, contents) => { | ||
493 | contents.on('new-window', (event, url, frameNme, disposition) => { | ||
494 | if (disposition === 'foreground-tab') event.preventDefault(); | ||
495 | }); | ||
496 | }); | ||
497 | |||
485 | app.on('will-finish-launching', () => { | 498 | app.on('will-finish-launching', () => { |
486 | // Protocol handler for macOS | 499 | // Protocol handler for macOS |
487 | app.on('open-url', (event, url) => { | 500 | app.on('open-url', (event, url) => { |
diff --git a/src/lib/Menu.js b/src/lib/Menu.js index dde4f694a..d0dc28da6 100644 --- a/src/lib/Menu.js +++ b/src/lib/Menu.js | |||
@@ -139,6 +139,10 @@ const menuItems = defineMessages({ | |||
139 | id: 'menu.view.lockFerdi', | 139 | id: 'menu.view.lockFerdi', |
140 | defaultMessage: '!!!Lock Ferdi', | 140 | defaultMessage: '!!!Lock Ferdi', |
141 | }, | 141 | }, |
142 | reloadTodos: { | ||
143 | id: 'menu.view.reloadTodos', | ||
144 | defaultMessage: '!!!Reload ToDos', | ||
145 | }, | ||
142 | minimize: { | 146 | minimize: { |
143 | id: 'menu.window.minimize', | 147 | id: 'menu.window.minimize', |
144 | defaultMessage: '!!!Minimize', | 148 | defaultMessage: '!!!Minimize', |
@@ -856,6 +860,8 @@ export default class FranzMenu { | |||
856 | accelerator: `${cmdKey}+Shift+Alt+I`, | 860 | accelerator: `${cmdKey}+Shift+Alt+I`, |
857 | click: () => { | 861 | click: () => { |
858 | this.actions.service.openDevToolsForActiveService(); | 862 | this.actions.service.openDevToolsForActiveService(); |
863 | const webview = document.querySelector('#todos-panel webview'); | ||
864 | if (webview) this.actions.todos.openDevTools(); | ||
859 | }, | 865 | }, |
860 | enabled: this.stores.user.isLoggedIn && this.stores.services.enabled.length > 0, | 866 | enabled: this.stores.user.isLoggedIn && this.stores.services.enabled.length > 0, |
861 | }); | 867 | }); |
@@ -894,6 +900,12 @@ export default class FranzMenu { | |||
894 | window.location.reload(); | 900 | window.location.reload(); |
895 | }, | 901 | }, |
896 | }, { | 902 | }, { |
903 | label: intl.formatMessage(menuItems.reloadTodos), | ||
904 | accelerator: `${cmdKey}+Shift+Alt+R`, | ||
905 | click: () => { | ||
906 | this.actions.todos.reload(); | ||
907 | }, | ||
908 | }, { | ||
897 | type: 'separator', | 909 | type: 'separator', |
898 | }, { | 910 | }, { |
899 | label: intl.formatMessage(menuItems.lockFerdi), | 911 | label: intl.formatMessage(menuItems.lockFerdi), |
diff --git a/src/models/Recipe.js b/src/models/Recipe.js index dcb998a19..a20eeb087 100644 --- a/src/models/Recipe.js +++ b/src/models/Recipe.js | |||
@@ -40,6 +40,8 @@ export default class Recipe { | |||
40 | 40 | ||
41 | autoHibernate = false; | 41 | autoHibernate = false; |
42 | 42 | ||
43 | partition = ''; | ||
44 | |||
43 | constructor(data) { | 45 | constructor(data) { |
44 | if (!data) { | 46 | if (!data) { |
45 | throw Error('Recipe config not valid'); | 47 | throw Error('Recipe config not valid'); |
@@ -82,6 +84,8 @@ export default class Recipe { | |||
82 | 84 | ||
83 | this.autoHibernate = data.config.autoHibernate || this.autoHibernate; | 85 | this.autoHibernate = data.config.autoHibernate || this.autoHibernate; |
84 | 86 | ||
87 | this.partition = data.config.partition || this.partition; | ||
88 | |||
85 | this.message = data.config.message || this.message; | 89 | this.message = data.config.message || this.message; |
86 | } | 90 | } |
87 | 91 | ||
diff --git a/src/models/Service.js b/src/models/Service.js index 4b5e8592d..ef1276619 100644 --- a/src/models/Service.js +++ b/src/models/Service.js | |||
@@ -4,8 +4,9 @@ import normalizeUrl from 'normalize-url'; | |||
4 | import path from 'path'; | 4 | import path from 'path'; |
5 | 5 | ||
6 | import userAgent from '../helpers/userAgent-helpers'; | 6 | import userAgent from '../helpers/userAgent-helpers'; |
7 | import { TODOS_RECIPE_ID, todosStore } from '../features/todos'; | ||
7 | 8 | ||
8 | const debug = require('debug')('Ferdi:Service'); | 9 | const debug = require('debug')('Franz:Service'); |
9 | 10 | ||
10 | export const RESTRICTION_TYPES = { | 11 | export const RESTRICTION_TYPES = { |
11 | SERVICE_LIMIT: 0, | 12 | SERVICE_LIMIT: 0, |
@@ -17,7 +18,7 @@ export default class Service { | |||
17 | 18 | ||
18 | recipe = ''; | 19 | recipe = ''; |
19 | 20 | ||
20 | webview = null; | 21 | _webview = null; |
21 | 22 | ||
22 | timer = null; | 23 | timer = null; |
23 | 24 | ||
@@ -77,13 +78,15 @@ export default class Service { | |||
77 | 78 | ||
78 | @observable restrictionType = null; | 79 | @observable restrictionType = null; |
79 | 80 | ||
80 | @observable disableHibernation = false; | 81 | @observable isHibernationEnabled = false; |
82 | |||
83 | @observable isHibernating = false; | ||
81 | 84 | ||
82 | @observable lastUsed = Date.now(); // timestamp | 85 | @observable lastUsed = Date.now(); // timestamp |
83 | 86 | ||
84 | @observable lastPoll = null; | 87 | @observable lastPoll = Date.now(); |
85 | 88 | ||
86 | @observable lastPollAnswer = null; | 89 | @observable lastPollAnswer = Date.now(); |
87 | 90 | ||
88 | @observable lostRecipeConnection = false; | 91 | @observable lostRecipeConnection = false; |
89 | 92 | ||
@@ -136,7 +139,7 @@ export default class Service { | |||
136 | 139 | ||
137 | this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage; | 140 | this.spellcheckerLanguage = data.spellcheckerLanguage !== undefined ? data.spellcheckerLanguage : this.spellcheckerLanguage; |
138 | 141 | ||
139 | this.disableHibernation = data.disableHibernation !== undefined ? data.disableHibernation : this.disableHibernation; | 142 | this.isHibernationEnabled = data.isHibernationEnabled !== undefined ? data.isHibernationEnabled : this.isHibernationEnabled; |
140 | 143 | ||
141 | this.recipe = recipe; | 144 | this.recipe = recipe; |
142 | 145 | ||
@@ -177,6 +180,18 @@ export default class Service { | |||
177 | }; | 180 | }; |
178 | } | 181 | } |
179 | 182 | ||
183 | get webview() { | ||
184 | if (this.recipe.id === TODOS_RECIPE_ID) { | ||
185 | return todosStore.webview; | ||
186 | } | ||
187 | |||
188 | return this._webview; | ||
189 | } | ||
190 | |||
191 | set webview(webview) { | ||
192 | this._webview = webview; | ||
193 | } | ||
194 | |||
180 | @computed get url() { | 195 | @computed get url() { |
181 | if (this.recipe.hasCustomUrl && this.customUrl) { | 196 | if (this.recipe.hasCustomUrl && this.customUrl) { |
182 | let url; | 197 | let url; |
@@ -225,6 +240,10 @@ export default class Service { | |||
225 | return ua; | 240 | return ua; |
226 | } | 241 | } |
227 | 242 | ||
243 | @computed get partition() { | ||
244 | return this.recipe.partition || `persist:service-${this.id}`; | ||
245 | } | ||
246 | |||
228 | 247 | ||
229 | initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { | 248 | initializeWebViewEvents({ handleIPCMessage, openWindow, stores }) { |
230 | const webContents = remote.webContents.fromId(this.webview.getWebContentsId()); | 249 | const webContents = remote.webContents.fromId(this.webview.getWebContentsId()); |
diff --git a/src/routes.js b/src/routes.js index 9986cdde5..046e60cbb 100644 --- a/src/routes.js +++ b/src/routes.js | |||
@@ -24,6 +24,7 @@ import ChangeServerScreen from './containers/auth/ChangeServerScreen'; | |||
24 | import SignupScreen from './containers/auth/SignupScreen'; | 24 | import SignupScreen from './containers/auth/SignupScreen'; |
25 | import ImportScreen from './containers/auth/ImportScreen'; | 25 | import ImportScreen from './containers/auth/ImportScreen'; |
26 | import PricingScreen from './containers/auth/PricingScreen'; | 26 | import PricingScreen from './containers/auth/PricingScreen'; |
27 | import SetupAssistentScreen from './containers/auth/SetupAssistantScreen'; | ||
27 | import InviteScreen from './containers/auth/InviteScreen'; | 28 | import InviteScreen from './containers/auth/InviteScreen'; |
28 | import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; | 29 | import AuthLayoutContainer from './containers/auth/AuthLayoutContainer'; |
29 | import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; | 30 | import SubscriptionPopupScreen from './containers/subscription/SubscriptionPopupScreen'; |
@@ -80,6 +81,7 @@ export default @inject('stores', 'actions') @observer class Routes extends Compo | |||
80 | <Route path="/auth/signup/form" component={SignupScreen} /> | 81 | <Route path="/auth/signup/form" component={SignupScreen} /> |
81 | <Route path="/auth/signup/pricing" component={PricingScreen} /> | 82 | <Route path="/auth/signup/pricing" component={PricingScreen} /> |
82 | <Route path="/auth/signup/import" component={ImportScreen} /> | 83 | <Route path="/auth/signup/import" component={ImportScreen} /> |
84 | <Route path="/auth/signup/setup" component={SetupAssistentScreen} /> | ||
83 | <Route path="/auth/signup/invite" component={InviteScreen} /> | 85 | <Route path="/auth/signup/invite" component={InviteScreen} /> |
84 | </Route> | 86 | </Route> |
85 | <Route path="/auth/password" component={PasswordScreen} /> | 87 | <Route path="/auth/password" component={PasswordScreen} /> |
diff --git a/src/stores/AppStore.js b/src/stores/AppStore.js index 153fdb2c8..869cfa9d6 100644 --- a/src/stores/AppStore.js +++ b/src/stores/AppStore.js | |||
@@ -3,7 +3,6 @@ import { | |||
3 | action, computed, observable, | 3 | action, computed, observable, |
4 | } from 'mobx'; | 4 | } from 'mobx'; |
5 | import moment from 'moment'; | 5 | import moment from 'moment'; |
6 | import { getDoNotDisturb } from '@meetfranz/electron-notification-state'; | ||
7 | import AutoLaunch from 'auto-launch'; | 6 | import AutoLaunch from 'auto-launch'; |
8 | import prettyBytes from 'pretty-bytes'; | 7 | import prettyBytes from 'pretty-bytes'; |
9 | import ms from 'ms'; | 8 | import ms from 'ms'; |
@@ -27,7 +26,10 @@ import { sleep } from '../helpers/async-helpers'; | |||
27 | const debug = require('debug')('Ferdi:AppStore'); | 26 | const debug = require('debug')('Ferdi:AppStore'); |
28 | 27 | ||
29 | const { | 28 | const { |
30 | app, nativeTheme, screen, powerMonitor, | 29 | app, |
30 | screen, | ||
31 | powerMonitor, | ||
32 | nativeTheme, | ||
31 | } = remote; | 33 | } = remote; |
32 | 34 | ||
33 | const mainWindow = remote.getCurrentWindow(); | 35 | const mainWindow = remote.getCurrentWindow(); |
@@ -63,7 +65,7 @@ export default class AppStore extends Store { | |||
63 | 65 | ||
64 | @observable authRequestFailed = false; | 66 | @observable authRequestFailed = false; |
65 | 67 | ||
66 | @observable timeSuspensionStart; | 68 | @observable timeSuspensionStart = moment(); |
67 | 69 | ||
68 | @observable timeOfflineStart; | 70 | @observable timeOfflineStart; |
69 | 71 | ||
@@ -118,11 +120,19 @@ export default class AppStore extends Store { | |||
118 | window.addEventListener('focus', this.actions.service.focusActiveService); | 120 | window.addEventListener('focus', this.actions.service.focusActiveService); |
119 | 121 | ||
120 | // Online/Offline handling | 122 | // Online/Offline handling |
121 | window.addEventListener('online', () => { this.isOnline = true; }); | 123 | window.addEventListener('online', () => { |
122 | window.addEventListener('offline', () => { this.isOnline = false; }); | 124 | this.isOnline = true; |
125 | }); | ||
126 | window.addEventListener('offline', () => { | ||
127 | this.isOnline = false; | ||
128 | }); | ||
123 | 129 | ||
124 | mainWindow.on('enter-full-screen', () => { this.isFullScreen = true; }); | 130 | mainWindow.on('enter-full-screen', () => { |
125 | mainWindow.on('leave-full-screen', () => { this.isFullScreen = false; }); | 131 | this.isFullScreen = true; |
132 | }); | ||
133 | mainWindow.on('leave-full-screen', () => { | ||
134 | this.isFullScreen = false; | ||
135 | }); | ||
126 | 136 | ||
127 | 137 | ||
128 | this.isOnline = navigator.onLine; | 138 | this.isOnline = navigator.onLine; |
@@ -137,10 +147,16 @@ export default class AppStore extends Store { | |||
137 | setInterval(() => this._systemDND(), ms('5s')); | 147 | setInterval(() => this._systemDND(), ms('5s')); |
138 | 148 | ||
139 | this.fetchDataInterval = setInterval(() => { | 149 | this.fetchDataInterval = setInterval(() => { |
140 | this.stores.user.getUserInfoRequest.invalidate({ immediately: true }); | 150 | this.stores.user.getUserInfoRequest.invalidate({ |
141 | this.stores.features.featuresRequest.invalidate({ immediately: true }); | 151 | immediately: true, |
142 | this.stores.news.latestNewsRequest.invalidate({ immediately: true }); | 152 | }); |
143 | }, ms('10m')); | 153 | this.stores.features.featuresRequest.invalidate({ |
154 | immediately: true, | ||
155 | }); | ||
156 | this.stores.news.latestNewsRequest.invalidate({ | ||
157 | immediately: true, | ||
158 | }); | ||
159 | }, ms('60m')); | ||
144 | 160 | ||
145 | // Check for updates once every 4 hours | 161 | // Check for updates once every 4 hours |
146 | setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); | 162 | setInterval(() => this._checkForUpdates(), CHECK_INTERVAL); |
@@ -174,7 +190,9 @@ export default class AppStore extends Store { | |||
174 | // Handle deep linking (franz://) | 190 | // Handle deep linking (franz://) |
175 | ipcRenderer.on('navigateFromDeepLink', (event, data) => { | 191 | ipcRenderer.on('navigateFromDeepLink', (event, data) => { |
176 | debug('Navigate from deep link', data); | 192 | debug('Navigate from deep link', data); |
177 | let { url } = data; | 193 | let { |
194 | url, | ||
195 | } = data; | ||
178 | if (!url) return; | 196 | if (!url) return; |
179 | 197 | ||
180 | url = url.replace(/\/$/, ''); | 198 | url = url.replace(/\/$/, ''); |
@@ -207,13 +225,17 @@ export default class AppStore extends Store { | |||
207 | }); | 225 | }); |
208 | 226 | ||
209 | powerMonitor.on('resume', () => { | 227 | powerMonitor.on('resume', () => { |
210 | debug('System resumed, last suspended on', this.timeSuspensionStart.toString()); | 228 | debug('System resumed, last suspended on', this.timeSuspensionStart); |
229 | this.actions.service.resetLastPollTimer(); | ||
211 | 230 | ||
212 | if (this.timeSuspensionStart.add(10, 'm').isBefore(moment()) && this.stores.settings.app.get('reloadAfterResume')) { | 231 | if (this.timeSuspensionStart.add(10, 'm').isBefore(moment()) && this.stores.settings.app.get('reloadAfterResume')) { |
213 | debug('Reloading services, user info and features'); | 232 | debug('Reloading services, user info and features'); |
214 | 233 | ||
215 | setTimeout(() => { | 234 | setInterval(() => { |
216 | window.location.reload(); | 235 | debug('Reload app interval is starting'); |
236 | if (this.isOnline) { | ||
237 | window.location.reload(); | ||
238 | } | ||
217 | }, ms('2s')); | 239 | }, ms('2s')); |
218 | } | 240 | } |
219 | }); | 241 | }); |
@@ -251,8 +273,14 @@ export default class AppStore extends Store { | |||
251 | ferdi: { | 273 | ferdi: { |
252 | version: app.getVersion(), | 274 | version: app.getVersion(), |
253 | electron: process.versions.electron, | 275 | electron: process.versions.electron, |
254 | installedRecipes: this.stores.recipes.all.map(recipe => ({ id: recipe.id, version: recipe.version })), | 276 | installedRecipes: this.stores.recipes.all.map(recipe => ({ |
255 | devRecipes: this.stores.recipePreviews.dev.map(recipe => ({ id: recipe.id, version: recipe.version })), | 277 | id: recipe.id, |
278 | version: recipe.version, | ||
279 | })), | ||
280 | devRecipes: this.stores.recipePreviews.dev.map(recipe => ({ | ||
281 | id: recipe.id, | ||
282 | version: recipe.version, | ||
283 | })), | ||
256 | services: this.stores.services.all.map(service => ({ | 284 | services: this.stores.services.all.map(service => ({ |
257 | id: service.id, | 285 | id: service.id, |
258 | recipe: service.recipe.id, | 286 | recipe: service.recipe.id, |
@@ -264,7 +292,10 @@ export default class AppStore extends Store { | |||
264 | isDarkModeEnabled: service.isDarkModeEnabled, | 292 | isDarkModeEnabled: service.isDarkModeEnabled, |
265 | })), | 293 | })), |
266 | messages: this.stores.globalError.messages, | 294 | messages: this.stores.globalError.messages, |
267 | workspaces: this.stores.workspaces.workspaces.map(workspace => ({ id: workspace.id, services: workspace.services })), | 295 | workspaces: this.stores.workspaces.workspaces.map(workspace => ({ |
296 | id: workspace.id, | ||
297 | services: workspace.services, | ||
298 | })), | ||
268 | windowSettings: readJsonSync(path.join(app.getPath('userData'), 'window-state.json')), | 299 | windowSettings: readJsonSync(path.join(app.getPath('userData'), 'window-state.json')), |
269 | settings, | 300 | settings, |
270 | features: this.stores.features.features, | 301 | features: this.stores.features.features, |
@@ -275,7 +306,10 @@ export default class AppStore extends Store { | |||
275 | 306 | ||
276 | // Actions | 307 | // Actions |
277 | @action _notify({ | 308 | @action _notify({ |
278 | title, options, notificationId, serviceId = null, | 309 | title, |
310 | options, | ||
311 | notificationId, | ||
312 | serviceId = null, | ||
279 | }) { | 313 | }) { |
280 | if (this.stores.settings.all.app.isAppMuted) return; | 314 | if (this.stores.settings.all.app.isAppMuted) return; |
281 | 315 | ||
@@ -288,15 +322,17 @@ export default class AppStore extends Store { | |||
288 | 322 | ||
289 | debug('New notification', title, options); | 323 | debug('New notification', title, options); |
290 | 324 | ||
291 | notification.onclick = (e) => { | 325 | notification.onclick = () => { |
292 | if (serviceId) { | 326 | if (serviceId) { |
293 | this.actions.service.sendIPCMessage({ | 327 | this.actions.service.sendIPCMessage({ |
294 | channel: `notification-onclick:${notificationId}`, | 328 | channel: `notification-onclick:${notificationId}`, |
295 | args: e, | 329 | args: {}, |
296 | serviceId, | 330 | serviceId, |
297 | }); | 331 | }); |
298 | 332 | ||
299 | this.actions.service.setActive({ serviceId }); | 333 | this.actions.service.setActive({ |
334 | serviceId, | ||
335 | }); | ||
300 | mainWindow.show(); | 336 | mainWindow.show(); |
301 | if (app.mainWindow.isMinimized()) { | 337 | if (app.mainWindow.isMinimized()) { |
302 | mainWindow.restore(); | 338 | mainWindow.restore(); |
@@ -308,7 +344,10 @@ export default class AppStore extends Store { | |||
308 | }; | 344 | }; |
309 | } | 345 | } |
310 | 346 | ||
311 | @action _setBadge({ unreadDirectMessageCount, unreadIndirectMessageCount }) { | 347 | @action _setBadge({ |
348 | unreadDirectMessageCount, | ||
349 | unreadIndirectMessageCount, | ||
350 | }) { | ||
312 | let indicator = unreadDirectMessageCount; | 351 | let indicator = unreadDirectMessageCount; |
313 | 352 | ||
314 | if (indicator === 0 && unreadIndirectMessageCount !== 0) { | 353 | if (indicator === 0 && unreadIndirectMessageCount !== 0) { |
@@ -319,10 +358,14 @@ export default class AppStore extends Store { | |||
319 | indicator = parseInt(indicator, 10); | 358 | indicator = parseInt(indicator, 10); |
320 | } | 359 | } |
321 | 360 | ||
322 | ipcRenderer.send('updateAppIndicator', { indicator }); | 361 | ipcRenderer.send('updateAppIndicator', { |
362 | indicator, | ||
363 | }); | ||
323 | } | 364 | } |
324 | 365 | ||
325 | @action _launchOnStartup({ enable }) { | 366 | @action _launchOnStartup({ |
367 | enable, | ||
368 | }) { | ||
326 | this.autoLaunchOnStart = enable; | 369 | this.autoLaunchOnStart = enable; |
327 | 370 | ||
328 | try { | 371 | try { |
@@ -338,7 +381,9 @@ export default class AppStore extends Store { | |||
338 | } | 381 | } |
339 | } | 382 | } |
340 | 383 | ||
341 | @action _openExternalUrl({ url }) { | 384 | @action _openExternalUrl({ |
385 | url, | ||
386 | }) { | ||
342 | const parsedUrl = new URL(url); | 387 | const parsedUrl = new URL(url); |
343 | debug('open external url', parsedUrl); | 388 | debug('open external url', parsedUrl); |
344 | 389 | ||
@@ -348,14 +393,20 @@ export default class AppStore extends Store { | |||
348 | } | 393 | } |
349 | 394 | ||
350 | @action _checkForUpdates() { | 395 | @action _checkForUpdates() { |
351 | this.updateStatus = this.updateStatusTypes.CHECKING; | 396 | if (this.isOnline) { |
352 | ipcRenderer.send('autoUpdate', { action: 'check' }); | 397 | this.updateStatus = this.updateStatusTypes.CHECKING; |
398 | ipcRenderer.send('autoUpdate', { | ||
399 | action: 'check', | ||
400 | }); | ||
353 | 401 | ||
354 | this.actions.recipe.update(); | 402 | this.actions.recipe.update(); |
403 | } | ||
355 | } | 404 | } |
356 | 405 | ||
357 | @action _installUpdate() { | 406 | @action _installUpdate() { |
358 | ipcRenderer.send('autoUpdate', { action: 'install' }); | 407 | ipcRenderer.send('autoUpdate', { |
408 | action: 'install', | ||
409 | }); | ||
359 | } | 410 | } |
360 | 411 | ||
361 | @action _resetUpdateStatus() { | 412 | @action _resetUpdateStatus() { |
@@ -366,7 +417,10 @@ export default class AppStore extends Store { | |||
366 | this.healthCheckRequest.execute(); | 417 | this.healthCheckRequest.execute(); |
367 | } | 418 | } |
368 | 419 | ||
369 | @action _muteApp({ isMuted, overrideSystemMute = true }) { | 420 | @action _muteApp({ |
421 | isMuted, | ||
422 | overrideSystemMute = true, | ||
423 | }) { | ||
370 | this.isSystemMuteOverridden = overrideSystemMute; | 424 | this.isSystemMuteOverridden = overrideSystemMute; |
371 | this.actions.settings.update({ | 425 | this.actions.settings.update({ |
372 | type: 'app', | 426 | type: 'app', |
@@ -377,7 +431,9 @@ export default class AppStore extends Store { | |||
377 | } | 431 | } |
378 | 432 | ||
379 | @action _toggleMuteApp() { | 433 | @action _toggleMuteApp() { |
380 | this._muteApp({ isMuted: !this.stores.settings.all.app.isAppMuted }); | 434 | this._muteApp({ |
435 | isMuted: !this.stores.settings.all.app.isAppMuted, | ||
436 | }); | ||
381 | } | 437 | } |
382 | 438 | ||
383 | @action async _clearAllCache() { | 439 | @action async _clearAllCache() { |
@@ -391,7 +447,9 @@ export default class AppStore extends Store { | |||
391 | } catch (ex) { | 447 | } catch (ex) { |
392 | console.log('Error while deleting service partition directory - ', ex); | 448 | console.log('Error while deleting service partition directory - ', ex); |
393 | } | 449 | } |
394 | await Promise.all(this.stores.services.all.map(s => this.actions.service.clearCache({ serviceId: s.id }))); | 450 | await Promise.all(this.stores.services.all.map(s => this.actions.service.clearCache({ |
451 | serviceId: s.id, | ||
452 | }))); | ||
395 | 453 | ||
396 | await clearAppCache._promise; | 454 | await clearAppCache._promise; |
397 | 455 | ||
@@ -446,7 +504,10 @@ export default class AppStore extends Store { | |||
446 | const { showMessageBadgesEvenWhenMuted } = this.stores.ui; | 504 | const { showMessageBadgesEvenWhenMuted } = this.stores.ui; |
447 | 505 | ||
448 | if (!showMessageBadgesEvenWhenMuted) { | 506 | if (!showMessageBadgesEvenWhenMuted) { |
449 | this.actions.app.setBadge({ unreadDirectMessageCount: 0, unreadIndirectMessageCount: 0 }); | 507 | this.actions.app.setBadge({ |
508 | unreadDirectMessageCount: 0, | ||
509 | unreadIndirectMessageCount: 0, | ||
510 | }); | ||
450 | } | 511 | } |
451 | } | 512 | } |
452 | 513 | ||
@@ -491,8 +552,11 @@ export default class AppStore extends Store { | |||
491 | return autoLauncher.isEnabled() || false; | 552 | return autoLauncher.isEnabled() || false; |
492 | } | 553 | } |
493 | 554 | ||
494 | _systemDND() { | 555 | async _systemDND() { |
495 | const dnd = getDoNotDisturb(); | 556 | debug('Checking if Do Not Disturb Mode is on'); |
557 | const dnd = await ipcRenderer.invoke('get-dnd'); | ||
558 | debug('Do not disturb mode is', dnd); | ||
559 | // ipcRenderer.on('autoUpdate', (event, data) => { | ||
496 | if (dnd !== this.stores.settings.all.app.isAppMuted && !this.isSystemMuteOverridden) { | 560 | if (dnd !== this.stores.settings.all.app.isAppMuted && !this.isSystemMuteOverridden) { |
497 | this.actions.app.muteApp({ | 561 | this.actions.app.muteApp({ |
498 | isMuted: dnd, | 562 | isMuted: dnd, |
diff --git a/src/stores/RecipesStore.js b/src/stores/RecipesStore.js index cf5d0a074..965aa3a0a 100644 --- a/src/stores/RecipesStore.js +++ b/src/stores/RecipesStore.js | |||
@@ -66,7 +66,7 @@ export default class RecipesStore extends Store { | |||
66 | } | 66 | } |
67 | 67 | ||
68 | // Actions | 68 | // Actions |
69 | @action async _install({ recipeId }) { | 69 | async _install({ recipeId }) { |
70 | const recipe = await this.installRecipeRequest.execute(recipeId)._promise; | 70 | const recipe = await this.installRecipeRequest.execute(recipeId)._promise; |
71 | await this.allRecipesRequest.invalidate({ immediately: true })._promise; | 71 | await this.allRecipesRequest.invalidate({ immediately: true })._promise; |
72 | 72 | ||
diff --git a/src/stores/ServicesStore.js b/src/stores/ServicesStore.js index 448260638..21ed0a234 100644 --- a/src/stores/ServicesStore.js +++ b/src/stores/ServicesStore.js | |||
@@ -20,6 +20,8 @@ import { workspaceStore } from '../features/workspaces'; | |||
20 | import { serviceLimitStore } from '../features/serviceLimit'; | 20 | import { serviceLimitStore } from '../features/serviceLimit'; |
21 | import { RESTRICTION_TYPES } from '../models/Service'; | 21 | import { RESTRICTION_TYPES } from '../models/Service'; |
22 | import { KEEP_WS_LOADED_USID } from '../config'; | 22 | import { KEEP_WS_LOADED_USID } from '../config'; |
23 | import { TODOS_RECIPE_ID } from '../features/todos'; | ||
24 | import { SPELLCHECKER_LOCALES } from '../i18n/languages'; | ||
23 | 25 | ||
24 | const debug = require('debug')('Ferdi:ServiceStore'); | 26 | const debug = require('debug')('Ferdi:ServiceStore'); |
25 | 27 | ||
@@ -82,7 +84,9 @@ export default class ServicesStore extends Store { | |||
82 | this.actions.service.toggleAudio.listen(this._toggleAudio.bind(this)); | 84 | this.actions.service.toggleAudio.listen(this._toggleAudio.bind(this)); |
83 | this.actions.service.openDevTools.listen(this._openDevTools.bind(this)); | 85 | this.actions.service.openDevTools.listen(this._openDevTools.bind(this)); |
84 | this.actions.service.openDevToolsForActiveService.listen(this._openDevToolsForActiveService.bind(this)); | 86 | this.actions.service.openDevToolsForActiveService.listen(this._openDevToolsForActiveService.bind(this)); |
85 | this.actions.service.setHibernation.listen(this._setHibernation.bind(this)); | 87 | this.actions.service.hibernate.listen(this._hibernate.bind(this)); |
88 | this.actions.service.awake.listen(this._awake.bind(this)); | ||
89 | this.actions.service.resetLastPollTimer.listen(this._resetLastPollTimer.bind(this)); | ||
86 | this.actions.service.shareSettingsWithServiceProcess.listen(this._shareSettingsWithServiceProcess.bind(this)); | 90 | this.actions.service.shareSettingsWithServiceProcess.listen(this._shareSettingsWithServiceProcess.bind(this)); |
87 | 91 | ||
88 | this.registerReactions([ | 92 | this.registerReactions([ |
@@ -93,6 +97,7 @@ export default class ServicesStore extends Store { | |||
93 | this._logoutReaction.bind(this), | 97 | this._logoutReaction.bind(this), |
94 | this._handleMuteSettings.bind(this), | 98 | this._handleMuteSettings.bind(this), |
95 | this._restrictServiceAccess.bind(this), | 99 | this._restrictServiceAccess.bind(this), |
100 | this._checkForActiveService.bind(this), | ||
96 | ]); | 101 | ]); |
97 | 102 | ||
98 | // Just bind this | 103 | // Just bind this |
@@ -155,16 +160,24 @@ export default class ServicesStore extends Store { | |||
155 | */ | 160 | */ |
156 | _serviceMaintenance() { | 161 | _serviceMaintenance() { |
157 | this.all.forEach((service) => { | 162 | this.all.forEach((service) => { |
158 | if (service.lastPoll && (service.lastPoll) - service.lastPollAnswer > ms('30s')) { | 163 | // Defines which services should be hibernated. |
159 | // If service did not reply for more than 30s try to reload. | 164 | if (!service.isActive && (Date.now() - service.lastUsed > ms('5m'))) { |
165 | // If service is stale for 5 min, hibernate it. | ||
166 | this._hibernate({ serviceId: service.id }); | ||
167 | } | ||
168 | |||
169 | if (service.lastPoll && (service.lastPoll - service.lastPollAnswer > ms('1m'))) { | ||
170 | // If service did not reply for more than 1m try to reload. | ||
160 | if (!service.isActive) { | 171 | if (!service.isActive) { |
161 | if (this.stores.app.isOnline && service.lostRecipeReloadAttempt < 3) { | 172 | if (this.stores.app.isOnline && service.lostRecipeReloadAttempt < 3) { |
162 | service.webview.reload(); | 173 | debug(`Reloading service: ${service.name} (${service.id}). Attempt: ${service.lostRecipeReloadAttempt}`); |
174 | // service.webview.reload(); | ||
163 | service.lostRecipeReloadAttempt += 1; | 175 | service.lostRecipeReloadAttempt += 1; |
164 | 176 | ||
165 | service.lostRecipeConnection = false; | 177 | service.lostRecipeConnection = false; |
166 | } | 178 | } |
167 | } else { | 179 | } else { |
180 | debug(`Service lost connection: ${service.name} (${service.id}).`); | ||
168 | service.lostRecipeConnection = true; | 181 | service.lostRecipeConnection = true; |
169 | } | 182 | } |
170 | } else { | 183 | } else { |
@@ -256,6 +269,14 @@ export default class ServicesStore extends Store { | |||
256 | return null; | 269 | return null; |
257 | } | 270 | } |
258 | 271 | ||
272 | @computed get isTodosServiceAdded() { | ||
273 | return this.allDisplayed.find(service => service.recipe.id === TODOS_RECIPE_ID && service.isEnabled) || null; | ||
274 | } | ||
275 | |||
276 | @computed get isTodosServiceActive() { | ||
277 | return this.active && this.active.recipe.id === TODOS_RECIPE_ID; | ||
278 | } | ||
279 | |||
259 | one(id) { | 280 | one(id) { |
260 | return this.all.find(service => service.id === id); | 281 | return this.all.find(service => service.id === id); |
261 | } | 282 | } |
@@ -265,10 +286,34 @@ export default class ServicesStore extends Store { | |||
265 | } | 286 | } |
266 | 287 | ||
267 | // Actions | 288 | // Actions |
268 | @action async _createService({ recipeId, serviceData, redirect = true }) { | 289 | async _createService({ |
290 | recipeId, serviceData, redirect = true, skipCleanup = false, | ||
291 | }) { | ||
269 | if (serviceLimitStore.userHasReachedServiceLimit) return; | 292 | if (serviceLimitStore.userHasReachedServiceLimit) return; |
270 | 293 | ||
271 | const data = this._cleanUpTeamIdAndCustomUrl(recipeId, serviceData); | 294 | if (!this.stores.recipes.isInstalled(recipeId)) { |
295 | debug(`Recipe "${recipeId}" is not installed, installing recipe`); | ||
296 | await this.stores.recipes._install({ recipeId }); | ||
297 | debug(`Recipe "${recipeId}" installed`); | ||
298 | } | ||
299 | |||
300 | // set default values for serviceData | ||
301 | Object.assign({ | ||
302 | isEnabled: true, | ||
303 | isHibernationEnabled: false, | ||
304 | isNotificationEnabled: true, | ||
305 | isBadgeEnabled: true, | ||
306 | isMuted: false, | ||
307 | customIcon: false, | ||
308 | isDarkModeEnabled: false, | ||
309 | spellcheckerLanguage: SPELLCHECKER_LOCALES[this.stores.settings.app.spellcheckerLanguage], | ||
310 | }, serviceData); | ||
311 | |||
312 | let data = serviceData; | ||
313 | |||
314 | if (!skipCleanup) { | ||
315 | data = this._cleanUpTeamIdAndCustomUrl(recipeId, serviceData); | ||
316 | } | ||
272 | 317 | ||
273 | const response = await this.createServiceRequest.execute(recipeId, data)._promise; | 318 | const response = await this.createServiceRequest.execute(recipeId, data)._promise; |
274 | 319 | ||
@@ -427,8 +472,13 @@ export default class ServicesStore extends Store { | |||
427 | this.all[index].isActive = false; | 472 | this.all[index].isActive = false; |
428 | }); | 473 | }); |
429 | service.isActive = true; | 474 | service.isActive = true; |
475 | this._awake({ serviceId: service.id }); | ||
430 | service.lastUsed = Date.now(); | 476 | service.lastUsed = Date.now(); |
431 | 477 | ||
478 | if (this.active.recipe.id === TODOS_RECIPE_ID && !this.stores.todos.settings.isFeatureEnabledByUser) { | ||
479 | this.actions.todos.toggleTodosFeatureVisibility(); | ||
480 | } | ||
481 | |||
432 | // Update list of last used services | 482 | // Update list of last used services |
433 | this.lastUsedServices = this.lastUsedServices.filter(id => id !== serviceId); | 483 | this.lastUsedServices = this.lastUsedServices.filter(id => id !== serviceId); |
434 | this.lastUsedServices.unshift(serviceId); | 484 | this.lastUsedServices.unshift(serviceId); |
@@ -617,10 +667,10 @@ export default class ServicesStore extends Store { | |||
617 | @action _sendIPCMessage({ serviceId, channel, args }) { | 667 | @action _sendIPCMessage({ serviceId, channel, args }) { |
618 | const service = this.one(serviceId); | 668 | const service = this.one(serviceId); |
619 | 669 | ||
620 | if (service.webview) { | 670 | // Make sure the args are clean, otherwise ElectronJS can't transmit them |
621 | // Make sure the args are clean, otherwise ElectronJS can't transmit them | 671 | const cleanArgs = JSON.parse(JSON.stringify(args)); |
622 | const cleanArgs = JSON.parse(JSON.stringify(args)); | ||
623 | 672 | ||
673 | if (service.webview) { | ||
624 | service.webview.send(channel, cleanArgs); | 674 | service.webview.send(channel, cleanArgs); |
625 | } | 675 | } |
626 | } | 676 | } |
@@ -659,8 +709,11 @@ export default class ServicesStore extends Store { | |||
659 | service.resetMessageCount(); | 709 | service.resetMessageCount(); |
660 | service.lostRecipeConnection = false; | 710 | service.lostRecipeConnection = false; |
661 | 711 | ||
662 | // service.webview.loadURL(service.url); | 712 | if (service.recipe.id === TODOS_RECIPE_ID) { |
663 | service.webview.reload(); | 713 | return this.actions.todos.reload(); |
714 | } | ||
715 | |||
716 | return service.webview.loadURL(service.url); | ||
664 | } | 717 | } |
665 | 718 | ||
666 | @action _reloadActive() { | 719 | @action _reloadActive() { |
@@ -743,23 +796,57 @@ export default class ServicesStore extends Store { | |||
743 | 796 | ||
744 | @action _openDevTools({ serviceId }) { | 797 | @action _openDevTools({ serviceId }) { |
745 | const service = this.one(serviceId); | 798 | const service = this.one(serviceId); |
746 | 799 | if (service.recipe.id === TODOS_RECIPE_ID) { | |
747 | service.webview.openDevTools(); | 800 | this.actions.todos.openDevTools(); |
801 | } else { | ||
802 | service.webview.openDevTools(); | ||
803 | } | ||
748 | } | 804 | } |
749 | 805 | ||
750 | @action _openDevToolsForActiveService() { | 806 | @action _openDevToolsForActiveService() { |
751 | const service = this.active; | 807 | const service = this.active; |
752 | 808 | ||
753 | if (service) { | 809 | if (service) { |
754 | service.webview.openDevTools(); | 810 | this._openDevTools({ serviceId: service.id }); |
755 | } else { | 811 | } else { |
756 | debug('No service is active'); | 812 | debug('No service is active'); |
757 | } | 813 | } |
758 | } | 814 | } |
759 | 815 | ||
760 | @action _setHibernation({ serviceId, hibernating }) { | 816 | @action _hibernate({ serviceId }) { |
817 | const service = this.one(serviceId); | ||
818 | if (service.isActive || !service.isHibernationEnabled) { | ||
819 | debug('Skipping service hibernation'); | ||
820 | return; | ||
821 | } | ||
822 | |||
823 | debug(`Hibernate ${service.name}`); | ||
824 | |||
825 | service.isHibernating = true; | ||
826 | } | ||
827 | |||
828 | @action _awake({ serviceId }) { | ||
761 | const service = this.one(serviceId); | 829 | const service = this.one(serviceId); |
762 | service.isHibernating = hibernating; | 830 | service.isHibernating = false; |
831 | service.liveFrom = Date.now(); | ||
832 | } | ||
833 | |||
834 | @action _resetLastPollTimer({ serviceId = null }) { | ||
835 | debug(`Reset last poll timer for ${serviceId ? `service: "${serviceId}"` : 'all services'}`); | ||
836 | |||
837 | const resetTimer = (service) => { | ||
838 | service.lastPollAnswer = Date.now(); | ||
839 | service.lastPoll = Date.now(); | ||
840 | }; | ||
841 | |||
842 | if (!serviceId) { | ||
843 | this.allDisplayed.forEach(service => resetTimer(service)); | ||
844 | } else { | ||
845 | const service = this.one(serviceId); | ||
846 | if (service) { | ||
847 | resetTimer(service); | ||
848 | } | ||
849 | } | ||
763 | } | 850 | } |
764 | 851 | ||
765 | // Reactions | 852 | // Reactions |
@@ -893,6 +980,18 @@ export default class ServicesStore extends Store { | |||
893 | }); | 980 | }); |
894 | } | 981 | } |
895 | 982 | ||
983 | _checkForActiveService() { | ||
984 | if (!this.stores.router.location || this.stores.router.location.pathname.includes('auth/signup')) { | ||
985 | return; | ||
986 | } | ||
987 | |||
988 | if (this.allDisplayed.findIndex(service => service.isActive) === -1 && this.allDisplayed.length !== 0) { | ||
989 | debug('No active service found, setting active service to index 0'); | ||
990 | |||
991 | this._setActive({ serviceId: this.allDisplayed[0].id }); | ||
992 | } | ||
993 | } | ||
994 | |||
896 | // Helper | 995 | // Helper |
897 | _initializeServiceRecipeInWebview(serviceId) { | 996 | _initializeServiceRecipeInWebview(serviceId) { |
898 | const service = this.one(serviceId); | 997 | const service = this.one(serviceId); |
diff --git a/src/stores/UserStore.js b/src/stores/UserStore.js index c1ed2944a..7b4d39524 100644 --- a/src/stores/UserStore.js +++ b/src/stores/UserStore.js | |||
@@ -3,6 +3,7 @@ import moment from 'moment'; | |||
3 | import jwt from 'jsonwebtoken'; | 3 | import jwt from 'jsonwebtoken'; |
4 | import localStorage from 'mobx-localstorage'; | 4 | import localStorage from 'mobx-localstorage'; |
5 | import ms from 'ms'; | 5 | import ms from 'ms'; |
6 | import { remote } from 'electron'; | ||
6 | 7 | ||
7 | import { isDevMode } from '../environment'; | 8 | import { isDevMode } from '../environment'; |
8 | import Store from './lib/Store'; | 9 | import Store from './lib/Store'; |
@@ -11,6 +12,9 @@ import CachedRequest from './lib/CachedRequest'; | |||
11 | import { sleep } from '../helpers/async-helpers'; | 12 | import { sleep } from '../helpers/async-helpers'; |
12 | import { getPlan } from '../helpers/plan-helpers'; | 13 | import { getPlan } from '../helpers/plan-helpers'; |
13 | import { PLANS } from '../config'; | 14 | import { PLANS } from '../config'; |
15 | import { TODOS_PARTITION_ID } from '../features/todos'; | ||
16 | |||
17 | const { session } = remote; | ||
14 | 18 | ||
15 | const debug = require('debug')('Ferdi:UserStore'); | 19 | const debug = require('debug')('Ferdi:UserStore'); |
16 | 20 | ||
@@ -28,6 +32,8 @@ export default class UserStore extends Store { | |||
28 | 32 | ||
29 | PRICING_ROUTE = `${this.BASE_ROUTE}/signup/pricing`; | 33 | PRICING_ROUTE = `${this.BASE_ROUTE}/signup/pricing`; |
30 | 34 | ||
35 | SETUP_ROUTE = `${this.BASE_ROUTE}/signup/setup`; | ||
36 | |||
31 | IMPORT_ROUTE = `${this.BASE_ROUTE}/signup/import`; | 37 | IMPORT_ROUTE = `${this.BASE_ROUTE}/signup/import`; |
32 | 38 | ||
33 | INVITE_ROUTE = `${this.BASE_ROUTE}/signup/invite`; | 39 | INVITE_ROUTE = `${this.BASE_ROUTE}/signup/invite`; |
@@ -127,6 +133,10 @@ export default class UserStore extends Store { | |||
127 | return this.PRICING_ROUTE; | 133 | return this.PRICING_ROUTE; |
128 | } | 134 | } |
129 | 135 | ||
136 | get setupRoute() { | ||
137 | return this.SETUP_ROUTE; | ||
138 | } | ||
139 | |||
130 | get inviteRoute() { | 140 | get inviteRoute() { |
131 | return this.INVITE_ROUTE; | 141 | return this.INVITE_ROUTE; |
132 | } | 142 | } |
@@ -227,7 +237,7 @@ export default class UserStore extends Store { | |||
227 | 237 | ||
228 | this._setUserData(authToken); | 238 | this._setUserData(authToken); |
229 | 239 | ||
230 | this.stores.router.push('/'); | 240 | this.stores.router.push(this.SETUP_ROUTE); |
231 | } | 241 | } |
232 | 242 | ||
233 | @action async _retrievePassword({ email }) { | 243 | @action async _retrievePassword({ email }) { |
@@ -285,6 +295,13 @@ export default class UserStore extends Store { | |||
285 | 295 | ||
286 | this.getUserInfoRequest.invalidate().reset(); | 296 | this.getUserInfoRequest.invalidate().reset(); |
287 | this.authToken = null; | 297 | this.authToken = null; |
298 | |||
299 | this.stores.services.allServicesRequest.invalidate().reset(); | ||
300 | |||
301 | if (this.stores.todos.isTodosEnabled) { | ||
302 | const sess = session.fromPartition(TODOS_PARTITION_ID); | ||
303 | sess.clearStorageData(); | ||
304 | } | ||
288 | } | 305 | } |
289 | 306 | ||
290 | @action async _importLegacyServices({ services }) { | 307 | @action async _importLegacyServices({ services }) { |
diff --git a/src/styles/auth.scss b/src/styles/auth.scss index 3efecf324..aee255196 100644 --- a/src/styles/auth.scss +++ b/src/styles/auth.scss | |||
@@ -130,7 +130,7 @@ | |||
130 | img { width: 65px; } | 130 | img { width: 65px; } |
131 | } | 131 | } |
132 | 132 | ||
133 | .auth__letter { margin-bottom: 30px; } | 133 | .auth__letter { margin-bottom: 30px; text-align: left; } |
134 | .scroll-container { z-index: 10; } | 134 | .scroll-container { z-index: 10; } |
135 | .info-bar { position: absolute; } | 135 | .info-bar { position: absolute; } |
136 | 136 | ||
diff --git a/src/styles/layout.scss b/src/styles/layout.scss index b1e163421..ecc305193 100644 --- a/src/styles/layout.scss +++ b/src/styles/layout.scss | |||
@@ -39,6 +39,11 @@ html { overflow: hidden; } | |||
39 | color: $theme-brand-primary; | 39 | color: $theme-brand-primary; |
40 | } | 40 | } |
41 | 41 | ||
42 | &:disabled { | ||
43 | opacity: 0.25; | ||
44 | filter: grayscale(1); | ||
45 | } | ||
46 | |||
42 | .update-available { | 47 | .update-available { |
43 | align-items: center; | 48 | align-items: center; |
44 | background: $theme-brand-danger; | 49 | background: $theme-brand-danger; |
diff --git a/src/styles/services.scss b/src/styles/services.scss index ef1097791..8b8c27e10 100644 --- a/src/styles/services.scss +++ b/src/styles/services.scss | |||
@@ -7,7 +7,7 @@ | |||
7 | 7 | ||
8 | .services__webview, | 8 | .services__webview, |
9 | .services__info-layer { | 9 | .services__info-layer { |
10 | webview { background: $dark-theme-gray-darkest; } | 10 | // webview { background: $dark-theme-gray-darkest; } |
11 | } | 11 | } |
12 | 12 | ||
13 | .services__no-service, | 13 | .services__no-service, |
@@ -48,6 +48,8 @@ | |||
48 | } | 48 | } |
49 | 49 | ||
50 | &--force-repaint webview { z-index: 5; } | 50 | &--force-repaint webview { z-index: 5; } |
51 | |||
52 | &.is-loading webview { background: #FFF } | ||
51 | } | 53 | } |
52 | 54 | ||
53 | .services__no-service, | 55 | .services__no-service, |
diff --git a/src/webview/contextMenu.js b/src/webview/contextMenu.js index d04f90830..679bf5aaa 100644 --- a/src/webview/contextMenu.js +++ b/src/webview/contextMenu.js | |||
@@ -3,12 +3,18 @@ import ContextMenuBuilder from './contextMenuBuilder'; | |||
3 | 3 | ||
4 | const webContents = remote.getCurrentWebContents(); | 4 | const webContents = remote.getCurrentWebContents(); |
5 | 5 | ||
6 | export default async function setupContextMenu() { | 6 | export default async function setupContextMenu(isSpellcheckEnabled, getDefaultSpellcheckerLanguage, getSpellcheckerLanguage) { |
7 | const contextMenuBuilder = new ContextMenuBuilder( | 7 | const contextMenuBuilder = new ContextMenuBuilder( |
8 | webContents, | 8 | webContents, |
9 | ); | 9 | ); |
10 | 10 | ||
11 | webContents.on('context-menu', (event, params) => { | 11 | webContents.on('context-menu', (e, props) => { |
12 | contextMenuBuilder.showPopupMenu(params); | 12 | // TODO?: e.preventDefault(); |
13 | contextMenuBuilder.showPopupMenu( | ||
14 | props, | ||
15 | isSpellcheckEnabled(), | ||
16 | getDefaultSpellcheckerLanguage(), | ||
17 | getSpellcheckerLanguage(), | ||
18 | ); | ||
13 | }); | 19 | }); |
14 | } | 20 | } |
diff --git a/src/webview/contextMenuBuilder.js b/src/webview/contextMenuBuilder.js index 8adc3b432..d99dd6739 100644 --- a/src/webview/contextMenuBuilder.js +++ b/src/webview/contextMenuBuilder.js | |||
@@ -21,19 +21,19 @@ function matchesWord(string) { | |||
21 | } | 21 | } |
22 | 22 | ||
23 | const contextMenuStringTable = { | 23 | const contextMenuStringTable = { |
24 | copyMail: () => 'Copy Email Address', | ||
25 | copyLinkUrl: () => 'Copy Link', | ||
26 | openLinkUrl: () => 'Open Link', | ||
27 | copyImageUrl: () => 'Copy Image URL', | ||
28 | copyImage: () => 'Copy Image', | ||
29 | addToDictionary: () => 'Add to Dictionary', | ||
30 | lookUpDefinition: ({ word }) => `Look Up "${word}"`, | 24 | lookUpDefinition: ({ word }) => `Look Up "${word}"`, |
31 | searchGoogle: () => 'Search with Google', | ||
32 | cut: () => 'Cut', | 25 | cut: () => 'Cut', |
33 | copy: () => 'Copy', | 26 | copy: () => 'Copy', |
34 | paste: () => 'Paste', | 27 | paste: () => 'Paste', |
35 | inspectElement: () => 'Inspect Element', | 28 | searchGoogle: () => 'Search with Google', |
29 | openLinkUrl: () => 'Open Link', | ||
30 | copyLinkUrl: () => 'Copy Link', | ||
31 | copyImageUrl: () => 'Copy Image Address', | ||
32 | copyImage: () => 'Copy Image', | ||
33 | addToDictionary: () => 'Add to Dictionary', | ||
36 | goToHomePage: () => 'Go to Home Page', | 34 | goToHomePage: () => 'Go to Home Page', |
35 | copyMail: () => 'Copy Email Address', | ||
36 | inspectElement: () => 'Inspect Element', | ||
37 | }; | 37 | }; |
38 | 38 | ||
39 | /** | 39 | /** |
@@ -225,13 +225,13 @@ module.exports = class ContextMenuBuilder { | |||
225 | * if so, adds suggested spellings as individual menu items. | 225 | * if so, adds suggested spellings as individual menu items. |
226 | */ | 226 | */ |
227 | addSpellingItems(menu, menuInfo) { | 227 | addSpellingItems(menu, menuInfo) { |
228 | const target = this.getWebContents(); | 228 | const webContents = this.getWebContents(); |
229 | // Add each spelling suggestion | 229 | // Add each spelling suggestion |
230 | for (const suggestion of menuInfo.dictionarySuggestions) { | 230 | for (const suggestion of menuInfo.dictionarySuggestions) { |
231 | menu.append(new MenuItem({ | 231 | menu.append(new MenuItem({ |
232 | label: suggestion, | 232 | label: suggestion, |
233 | // eslint-disable-next-line no-loop-func | 233 | // eslint-disable-next-line no-loop-func |
234 | click: () => target.replaceMisspelling(suggestion), | 234 | click: () => webContents.replaceMisspelling(suggestion), |
235 | })); | 235 | })); |
236 | } | 236 | } |
237 | 237 | ||
@@ -240,7 +240,7 @@ module.exports = class ContextMenuBuilder { | |||
240 | menu.append( | 240 | menu.append( |
241 | new MenuItem({ | 241 | new MenuItem({ |
242 | label: 'Add to dictionary', | 242 | label: 'Add to dictionary', |
243 | click: () => target.session.addWordToSpellCheckerDictionary(menuInfo.misspelledWord), | 243 | click: () => webContents.session.addWordToSpellCheckerDictionary(menuInfo.misspelledWord), |
244 | }), | 244 | }), |
245 | ); | 245 | ); |
246 | } | 246 | } |
@@ -262,11 +262,11 @@ module.exports = class ContextMenuBuilder { | |||
262 | } | 262 | } |
263 | 263 | ||
264 | if (process.platform === 'darwin') { | 264 | if (process.platform === 'darwin') { |
265 | const target = this.getWebContents(); | 265 | const webContents = this.getWebContents(); |
266 | 266 | ||
267 | const lookUpDefinition = new MenuItem({ | 267 | const lookUpDefinition = new MenuItem({ |
268 | label: this.stringTable.lookUpDefinition({ word: menuInfo.selectionText.trim() }), | 268 | label: this.stringTable.lookUpDefinition({ word: menuInfo.selectionText.trim() }), |
269 | click: () => target.showDefinitionForSelection(), | 269 | click: () => webContents.showDefinitionForSelection(), |
270 | }); | 270 | }); |
271 | 271 | ||
272 | menu.append(lookUpDefinition); | 272 | menu.append(lookUpDefinition); |
@@ -316,12 +316,12 @@ module.exports = class ContextMenuBuilder { | |||
316 | * Adds the Cut menu item | 316 | * Adds the Cut menu item |
317 | */ | 317 | */ |
318 | addCut(menu, menuInfo) { | 318 | addCut(menu, menuInfo) { |
319 | const target = this.getWebContents(); | 319 | const webContents = this.getWebContents(); |
320 | menu.append(new MenuItem({ | 320 | menu.append(new MenuItem({ |
321 | label: this.stringTable.cut(), | 321 | label: this.stringTable.cut(), |
322 | accelerator: 'CommandOrControl+X', | 322 | accelerator: 'CommandOrControl+X', |
323 | enabled: menuInfo.editFlags.canCut, | 323 | enabled: menuInfo.editFlags.canCut, |
324 | click: () => target.cut(), | 324 | click: () => webContents.cut(), |
325 | })); | 325 | })); |
326 | 326 | ||
327 | return menu; | 327 | return menu; |
@@ -331,12 +331,12 @@ module.exports = class ContextMenuBuilder { | |||
331 | * Adds the Copy menu item. | 331 | * Adds the Copy menu item. |
332 | */ | 332 | */ |
333 | addCopy(menu, menuInfo) { | 333 | addCopy(menu, menuInfo) { |
334 | const target = this.getWebContents(); | 334 | const webContents = this.getWebContents(); |
335 | menu.append(new MenuItem({ | 335 | menu.append(new MenuItem({ |
336 | label: this.stringTable.copy(), | 336 | label: this.stringTable.copy(), |
337 | accelerator: 'CommandOrControl+C', | 337 | accelerator: 'CommandOrControl+C', |
338 | enabled: menuInfo.editFlags.canCopy, | 338 | enabled: menuInfo.editFlags.canCopy, |
339 | click: () => target.copy(), | 339 | click: () => webContents.copy(), |
340 | })); | 340 | })); |
341 | 341 | ||
342 | return menu; | 342 | return menu; |
@@ -346,12 +346,12 @@ module.exports = class ContextMenuBuilder { | |||
346 | * Adds the Paste menu item. | 346 | * Adds the Paste menu item. |
347 | */ | 347 | */ |
348 | addPaste(menu, menuInfo) { | 348 | addPaste(menu, menuInfo) { |
349 | const target = this.getWebContents(); | 349 | const webContents = this.getWebContents(); |
350 | menu.append(new MenuItem({ | 350 | menu.append(new MenuItem({ |
351 | label: this.stringTable.paste(), | 351 | label: this.stringTable.paste(), |
352 | accelerator: 'CommandOrControl+V', | 352 | accelerator: 'CommandOrControl+V', |
353 | enabled: menuInfo.editFlags.canPaste, | 353 | enabled: menuInfo.editFlags.canPaste, |
354 | click: () => target.paste(), | 354 | click: () => webContents.paste(), |
355 | })); | 355 | })); |
356 | 356 | ||
357 | return menu; | 357 | return menu; |
@@ -363,12 +363,12 @@ module.exports = class ContextMenuBuilder { | |||
363 | && !menuInfo.linkText | 363 | && !menuInfo.linkText |
364 | && !menuInfo.hasImageContents | 364 | && !menuInfo.hasImageContents |
365 | ) { | 365 | ) { |
366 | const target = this.getWebContents(); | 366 | const webContents = this.getWebContents(); |
367 | menu.append( | 367 | menu.append( |
368 | new MenuItem({ | 368 | new MenuItem({ |
369 | label: 'Paste as plain text', | 369 | label: 'Paste as plain text', |
370 | accelerator: 'CommandOrControl+Shift+V', | 370 | accelerator: 'CommandOrControl+Shift+V', |
371 | click: () => target.pasteAndMatchStyle(), | 371 | click: () => webContents.pasteAndMatchStyle(), |
372 | }), | 372 | }), |
373 | ); | 373 | ); |
374 | } | 374 | } |
@@ -386,13 +386,13 @@ module.exports = class ContextMenuBuilder { | |||
386 | * Adds the "Inspect Element" menu item. | 386 | * Adds the "Inspect Element" menu item. |
387 | */ | 387 | */ |
388 | addInspectElement(menu, menuInfo, needsSeparator = true) { | 388 | addInspectElement(menu, menuInfo, needsSeparator = true) { |
389 | const target = this.getWebContents(); | 389 | const webContents = this.getWebContents(); |
390 | if (!this.debugMode) return menu; | 390 | if (!this.debugMode) return menu; |
391 | if (needsSeparator) this.addSeparator(menu); | 391 | if (needsSeparator) this.addSeparator(menu); |
392 | 392 | ||
393 | const inspect = new MenuItem({ | 393 | const inspect = new MenuItem({ |
394 | label: this.stringTable.inspectElement(), | 394 | label: this.stringTable.inspectElement(), |
395 | click: () => target.inspectElement(menuInfo.x, menuInfo.y), | 395 | click: () => webContents.inspectElement(menuInfo.x, menuInfo.y), |
396 | }); | 396 | }); |
397 | 397 | ||
398 | menu.append(inspect); | 398 | menu.append(inspect); |
@@ -436,7 +436,7 @@ module.exports = class ContextMenuBuilder { | |||
436 | accelerator: 'CommandOrControl+Home', | 436 | accelerator: 'CommandOrControl+Home', |
437 | enabled: true, | 437 | enabled: true, |
438 | click: () => { | 438 | click: () => { |
439 | // target.loadURL(baseURL.origin); | 439 | // webContents.loadURL(baseURL.origin); |
440 | window.location.href = baseURL.origin; | 440 | window.location.href = baseURL.origin; |
441 | }, | 441 | }, |
442 | })); | 442 | })); |
diff --git a/src/webview/recipe.js b/src/webview/recipe.js index 675f8e311..d29f3edbd 100644 --- a/src/webview/recipe.js +++ b/src/webview/recipe.js | |||
@@ -3,7 +3,6 @@ import { ipcRenderer, remote, desktopCapturer } from 'electron'; | |||
3 | import path from 'path'; | 3 | import path from 'path'; |
4 | import { autorun, computed, observable } from 'mobx'; | 4 | import { autorun, computed, observable } from 'mobx'; |
5 | import fs from 'fs-extra'; | 5 | import fs from 'fs-extra'; |
6 | import { loadModule } from 'cld3-asm'; | ||
7 | import { debounce } from 'lodash'; | 6 | import { debounce } from 'lodash'; |
8 | import { FindInPage } from 'electron-find'; | 7 | import { FindInPage } from 'electron-find'; |
9 | 8 | ||
@@ -23,8 +22,9 @@ import customDarkModeCss from './darkmode/custom'; | |||
23 | import RecipeWebview from './lib/RecipeWebview'; | 22 | import RecipeWebview from './lib/RecipeWebview'; |
24 | import Userscript from './lib/Userscript'; | 23 | import Userscript from './lib/Userscript'; |
25 | 24 | ||
26 | import spellchecker, { switchDict, disable as disableSpellchecker, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker'; | 25 | import { switchDict, getSpellcheckerLocaleByFuzzyIdentifier } from './spellchecker'; |
27 | import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; | 26 | import { injectDarkModeStyle, isDarkModeStyleInjected, removeDarkModeStyle } from './darkmode'; |
27 | import contextMenu from './contextMenu'; | ||
28 | import './notifications'; | 28 | import './notifications'; |
29 | 29 | ||
30 | import { DEFAULT_APP_SETTINGS } from '../config'; | 30 | import { DEFAULT_APP_SETTINGS } from '../config'; |
@@ -156,7 +156,14 @@ class RecipeController { | |||
156 | 156 | ||
157 | debug('Send "hello" to host'); | 157 | debug('Send "hello" to host'); |
158 | setTimeout(() => ipcRenderer.sendToHost('hello'), 100); | 158 | setTimeout(() => ipcRenderer.sendToHost('hello'), 100); |
159 | await spellchecker(); | 159 | |
160 | this.spellcheckingProvider = null; | ||
161 | contextMenu( | ||
162 | () => this.settings.app.enableSpellchecking, | ||
163 | () => this.settings.app.spellcheckerLanguage, | ||
164 | () => this.spellcheckerLanguage, | ||
165 | ); | ||
166 | |||
160 | autorun(() => this.update()); | 167 | autorun(() => this.update()); |
161 | 168 | ||
162 | document.addEventListener('DOMContentLoaded', () => { | 169 | document.addEventListener('DOMContentLoaded', () => { |
@@ -240,22 +247,15 @@ class RecipeController { | |||
240 | 247 | ||
241 | if (this.settings.app.enableSpellchecking) { | 248 | if (this.settings.app.enableSpellchecking) { |
242 | debug('Setting spellchecker language to', this.spellcheckerLanguage); | 249 | debug('Setting spellchecker language to', this.spellcheckerLanguage); |
243 | const { spellcheckerLanguage } = this; | 250 | let { spellcheckerLanguage } = this; |
244 | if (spellcheckerLanguage.includes('automatic')) { | 251 | if (spellcheckerLanguage.includes('automatic')) { |
245 | this.automaticLanguageDetection(); | 252 | this.automaticLanguageDetection(); |
246 | debug('Found `automatic` locale, falling back to user locale until detected', this.settings.app.locale); | 253 | debug('Found `automatic` locale, falling back to user locale until detected', this.settings.app.locale); |
247 | spellcheckerLanguage.push(this.settings.app.locale); | 254 | spellcheckerLanguage = this.settings.app.locale; |
248 | } else if (this.cldIdentifier) { | ||
249 | this.cldIdentifier.destroy(); | ||
250 | } | 255 | } |
251 | switchDict(spellcheckerLanguage); | 256 | switchDict(spellcheckerLanguage); |
252 | } else { | 257 | } else { |
253 | debug('Disable spellchecker'); | 258 | debug('Disable spellchecker'); |
254 | disableSpellchecker(); | ||
255 | |||
256 | if (this.cldIdentifier) { | ||
257 | this.cldIdentifier.destroy(); | ||
258 | } | ||
259 | } | 259 | } |
260 | 260 | ||
261 | if (!this.recipe) { | 261 | if (!this.recipe) { |
@@ -366,10 +366,7 @@ class RecipeController { | |||
366 | } | 366 | } |
367 | 367 | ||
368 | async automaticLanguageDetection() { | 368 | async automaticLanguageDetection() { |
369 | const cldFactory = await loadModule(); | 369 | window.addEventListener('keyup', debounce(async (e) => { |
370 | this.cldIdentifier = cldFactory.create(0, 1000); | ||
371 | |||
372 | window.addEventListener('keyup', debounce((e) => { | ||
373 | const element = e.target; | 370 | const element = e.target; |
374 | 371 | ||
375 | if (!element) return; | 372 | if (!element) return; |
@@ -382,22 +379,15 @@ class RecipeController { | |||
382 | } | 379 | } |
383 | 380 | ||
384 | // Force a minimum length to get better detection results | 381 | // Force a minimum length to get better detection results |
385 | if (value.length < 30) return; | 382 | if (value.length < 25) return; |
386 | 383 | ||
387 | debug('Detecting language for', value); | 384 | debug('Detecting language for', value); |
388 | const findResult = this.cldIdentifier.findLanguage(value); | 385 | const locale = await ipcRenderer.invoke('detect-language', { sample: value }); |
389 | 386 | ||
390 | debug('Language detection result', findResult); | 387 | const spellcheckerLocale = getSpellcheckerLocaleByFuzzyIdentifier(locale); |
391 | 388 | debug('Language detected reliably, setting spellchecker language to', spellcheckerLocale); | |
392 | if (findResult.is_reliable) { | 389 | if (spellcheckerLocale) { |
393 | const spellcheckerLocale = getSpellcheckerLocaleByFuzzyIdentifier(findResult.language); | 390 | switchDict(spellcheckerLocale); |
394 | debug('Language detected reliably, setting spellchecker language to', spellcheckerLocale); | ||
395 | if (spellcheckerLocale) { | ||
396 | switchDict([ | ||
397 | ...this.spellcheckerLanguage, | ||
398 | spellcheckerLocale, | ||
399 | ]); | ||
400 | } | ||
401 | } | 391 | } |
402 | }, 225)); | 392 | }, 225)); |
403 | } | 393 | } |
@@ -411,7 +401,8 @@ new RecipeController(); | |||
411 | const originalWindowOpen = window.open; | 401 | const originalWindowOpen = window.open; |
412 | 402 | ||
413 | window.open = (url, frameName, features) => { | 403 | window.open = (url, frameName, features) => { |
414 | if (!url && !frameName && !features) { | 404 | debug('window.open', url, frameName, features); |
405 | if (!url) { | ||
415 | // The service hasn't yet supplied a URL (as used in Skype). | 406 | // The service hasn't yet supplied a URL (as used in Skype). |
416 | // Return a new dummy window object and wait for the service to change the properties | 407 | // Return a new dummy window object and wait for the service to change the properties |
417 | const newWindow = { | 408 | const newWindow = { |
@@ -423,8 +414,12 @@ window.open = (url, frameName, features) => { | |||
423 | const checkInterval = setInterval(() => { | 414 | const checkInterval = setInterval(() => { |
424 | // Has the service changed the URL yet? | 415 | // Has the service changed the URL yet? |
425 | if (newWindow.location.href !== '') { | 416 | if (newWindow.location.href !== '') { |
426 | // Open the new URL | 417 | if (features) { |
427 | ipcRenderer.sendToHost('new-window', newWindow.location.href); | 418 | originalWindowOpen(newWindow.location.href, frameName, features); |
419 | } else { | ||
420 | // Open the new URL | ||
421 | ipcRenderer.sendToHost('new-window', newWindow.location.href); | ||
422 | } | ||
428 | clearInterval(checkInterval); | 423 | clearInterval(checkInterval); |
429 | } | 424 | } |
430 | }, 0); | 425 | }, 0); |
diff --git a/src/webview/spellchecker.js b/src/webview/spellchecker.js index 287c9cf11..e7ef102e9 100644 --- a/src/webview/spellchecker.js +++ b/src/webview/spellchecker.js | |||
@@ -1,64 +1,41 @@ | |||
1 | import { webFrame } from 'electron'; | 1 | import { |
2 | remote, | ||
3 | } from 'electron'; | ||
2 | import { SPELLCHECKER_LOCALES } from '../i18n/languages'; | 4 | import { SPELLCHECKER_LOCALES } from '../i18n/languages'; |
3 | import setupContextMenu from './contextMenu'; | 5 | import { isMac } from '../environment'; |
4 | 6 | ||
5 | const debug = require('debug')('Franz:spellchecker'); | 7 | const debug = require('debug')('Franz:spellchecker'); |
6 | 8 | ||
7 | let _isEnabled = false; | 9 | const webContents = remote.getCurrentWebContents(); |
10 | const [defaultLocale] = webContents.session.getSpellCheckerLanguages(); | ||
11 | debug('Spellchecker default locale is', defaultLocale); | ||
8 | 12 | ||
9 | export async function switchDict(locales) { | 13 | export function getSpellcheckerLocaleByFuzzyIdentifier(identifier) { |
10 | const { platform } = process; | 14 | const locales = Object.keys(SPELLCHECKER_LOCALES).filter(key => key.toLocaleLowerCase() === identifier.toLowerCase() || key.split('-')[0] === identifier.toLowerCase()); |
11 | if (platform === 'darwin') { | ||
12 | // MacOS uses the build-in languages which cannot be changed | ||
13 | return; | ||
14 | } | ||
15 | |||
16 | try { | ||
17 | debug('Trying to load dictionary', locales); | ||
18 | |||
19 | webFrame.session.setSpellCheckerLanguages([...locales, 'en-US']); | ||
20 | |||
21 | debug('Switched dictionary to', locales); | ||
22 | |||
23 | _isEnabled = true; | ||
24 | } catch (err) { | ||
25 | console.error(err); | ||
26 | } | ||
27 | } | ||
28 | |||
29 | export default async function initialize(languages = ['en-us']) { | ||
30 | try { | ||
31 | debug('Init spellchecker'); | ||
32 | |||
33 | switchDict([ | ||
34 | navigator.language, | ||
35 | ...languages, | ||
36 | ]); | ||
37 | setupContextMenu(); | ||
38 | 15 | ||
39 | return true; | 16 | if (locales.length >= 1) { |
40 | } catch (err) { | 17 | return locales[0]; |
41 | console.error(err); | ||
42 | return false; | ||
43 | } | 18 | } |
44 | } | ||
45 | 19 | ||
46 | export function isEnabled() { | 20 | return null; |
47 | return _isEnabled; | ||
48 | } | 21 | } |
49 | 22 | ||
50 | export function disable() { | 23 | export function switchDict(locale) { |
51 | if (isEnabled()) { | 24 | if (isMac) { |
52 | // TODO: How to disable build-in spellchecker? | 25 | debug('Ignoring dictionary changes on macOS'); |
26 | return; | ||
53 | } | 27 | } |
54 | } | ||
55 | 28 | ||
56 | export function getSpellcheckerLocaleByFuzzyIdentifier(identifier) { | 29 | debug('Setting spellchecker locale to', locale); |
57 | const locales = Object.keys(SPELLCHECKER_LOCALES).filter(key => key === identifier.toLowerCase() || key.split('-')[0] === identifier.toLowerCase()); | ||
58 | 30 | ||
59 | if (locales.length >= 1) { | 31 | const locales = []; |
60 | return locales[0]; | 32 | const foundLocale = getSpellcheckerLocaleByFuzzyIdentifier(locale); |
33 | |||
34 | if (foundLocale) { | ||
35 | locales.push(foundLocale); | ||
61 | } | 36 | } |
62 | 37 | ||
63 | return null; | 38 | locales.push(defaultLocale, 'de'); |
39 | |||
40 | webContents.session.setSpellCheckerLanguages(locales); | ||
64 | } | 41 | } |
diff --git a/tsconfig.settings.json b/tsconfig.settings.json index 19d0906d9..ccd0927ab 100644 --- a/tsconfig.settings.json +++ b/tsconfig.settings.json | |||
@@ -1,7 +1,7 @@ | |||
1 | { | 1 | { |
2 | "compilerOptions": { | 2 | "compilerOptions": { |
3 | "baseUrl": ".", | 3 | "baseUrl": ".", |
4 | "target": "es5", | 4 | "target": "esnext", |
5 | "module": "commonjs", | 5 | "module": "commonjs", |
6 | "lib": [ | 6 | "lib": [ |
7 | "es2015", | 7 | "es2015", |
diff --git a/uidev/src/app.tsx b/uidev/src/app.tsx index cef22e7a7..593019c35 100644 --- a/uidev/src/app.tsx +++ b/uidev/src/app.tsx | |||
@@ -15,6 +15,7 @@ import './stories/infobox.stories'; | |||
15 | import './stories/input.stories'; | 15 | import './stories/input.stories'; |
16 | import './stories/loader.stories'; | 16 | import './stories/loader.stories'; |
17 | import './stories/select.stories'; | 17 | import './stories/select.stories'; |
18 | import './stories/textarea.stories'; | ||
18 | import './stories/toggle.stories'; | 19 | import './stories/toggle.stories'; |
19 | 20 | ||
20 | import { store } from './stores'; | 21 | import { store } from './stores'; |
diff --git a/uidev/src/stories/textarea.stories.tsx b/uidev/src/stories/textarea.stories.tsx new file mode 100644 index 000000000..c2dd74e24 --- /dev/null +++ b/uidev/src/stories/textarea.stories.tsx | |||
@@ -0,0 +1,43 @@ | |||
1 | import React from 'react'; | ||
2 | import uuid from 'uuid/v4'; | ||
3 | |||
4 | import { Textarea } from '@meetfranz/forms'; | ||
5 | import { storiesOf } from '../stores/stories'; | ||
6 | |||
7 | const defaultProps = () => { | ||
8 | const id = uuid(); | ||
9 | return { | ||
10 | label: 'Label', | ||
11 | id: `test-${id}`, | ||
12 | name: `test-${id}`, | ||
13 | rows: 5, | ||
14 | onChange: (e: React.ChangeEvent<HTMLInputElement>) => console.log('changed event', e), | ||
15 | }; | ||
16 | }; | ||
17 | |||
18 | storiesOf('Textarea') | ||
19 | .add('Basic', () => ( | ||
20 | <Textarea | ||
21 | {...defaultProps()} | ||
22 | // placeholder="Placeholder text" | ||
23 | /> | ||
24 | )) | ||
25 | .add('10 rows', () => ( | ||
26 | <Textarea | ||
27 | {...defaultProps()} | ||
28 | rows={10} | ||
29 | /> | ||
30 | )) | ||
31 | .add('With error', () => ( | ||
32 | <Textarea | ||
33 | {...defaultProps()} | ||
34 | error="This is a generic error message." | ||
35 | /> | ||
36 | )) | ||
37 | .add('Disabled', () => ( | ||
38 | <Textarea | ||
39 | {...defaultProps()} | ||
40 | rows={2} | ||
41 | disabled | ||
42 | /> | ||
43 | )); | ||