diff --git a/.npmignore b/.npmignore index 84eab2179..04980978a 100644 --- a/.npmignore +++ b/.npmignore @@ -7,7 +7,6 @@ .storybook Gruntfile.js crowdin.yml -demo node_modules src/css src/less @@ -18,8 +17,6 @@ src/img/screenshots scripts storybook-static webpack-api.config.js -webpack-ext.config.js -webpack-in-form-menu.config.js #jest test coverage ###################### diff --git a/README.md b/README.md index 5fde9b48b..d4c30df3f 100644 --- a/README.md +++ b/README.md @@ -37,10 +37,6 @@ This is the official styleguide for Passbolt the open source password manager fo This styleguide is used to extend, minify and test the stylesheets used by the different passbolt components such as the website, the firefox addon, etc. -In /demo you can find a copy of each of the page HTML (or main states in case of the one page client) -so that you can test them out. You will need a simple php webserver, since we use it to factorise -some of the includes. Apart from this the HTML is static. - In /src and /build you can find the assets that are used by other projects, like the images the less files, the minified css files, fonts, etc. @@ -71,21 +67,6 @@ grunt watch Edit one LESS file to see if it works! -Quick how-to for developers -========================== - -## Starting the demo -After running this commands, the demo will be accessible from -[http://localhost:3000](http://localhost:3000) - -``` -npm run start-app-dev-server -``` - -Each change made on the js applications source code will trigger a build and refresh the browser tab where the demo has -been started. - - How to publish the styleguide? ============================= diff --git a/package-lock.json b/package-lock.json index 29e710af6..72ed204af 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "passbolt-styleguide", - "version": "4.2.1", + "version": "4.3.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "passbolt-styleguide", - "version": "4.2.1", + "version": "4.3.0", "license": "AGPL-3.0", "dependencies": { "@testing-library/dom": "^8.11.3", @@ -17,6 +17,7 @@ "ip-regex": "^4.3.0", "jssha": "^3.2.0", "luxon": "^2.3.1", + "otpauth": "^9.1.4", "prop-types": "^15.7.2", "qrcode": "^1.5.0", "react": "17.0.2", @@ -26,7 +27,6 @@ "react-list": "^0.8.15", "react-router-dom": "^5.2.0", "react-transition-group": "^4.4.1", - "simplebar": "^5.2.1", "uuid": "^8.3.0", "validator": "^13.9.0", "webextension-polyfill": "^0.9.0", @@ -43,8 +43,6 @@ "@testing-library/react": "^12.1.4", "babel-jest": "^29.6.2", "babel-loader": "^9.1.3", - "copy-webpack-plugin": "^10.2.4", - "cross-fetch": "^3.1.5", "eslint": "^8.46.0", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jest": "^27.2.3", @@ -68,7 +66,6 @@ "jest-junit": "^16.0.0", "jest-useragent-mock": "^0.1.1", "jest-webextension-mock": "^3.8.9", - "jquery": "^3.5.0", "webpack": "^5.74.0", "webpack-cli": "^4.9.1" }, @@ -2928,11 +2925,6 @@ "integrity": "sha512-XPSJHWmi394fuUuzDnGz1wiKqWfo1yXecHQMRf2l6hztTO+nPru658AyDngaBe7isIxEkRsPR3FZh+s7iVa4Uw==", "dev": true }, - "node_modules/@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" - }, "node_modules/@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", @@ -4000,18 +3992,6 @@ "node": ">=0.10.0" } }, - "node_modules/array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/array.prototype.findlastindex": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", @@ -4578,11 +4558,6 @@ "node": ">=6" } }, - "node_modules/can-use-dom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", - "integrity": "sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==" - }, "node_modules/caniuse-lite": { "version": "1.0.30001519", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", @@ -4948,46 +4923,11 @@ "url": "https://github.com/sponsors/mesqueeb" } }, - "node_modules/copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", - "dev": true, - "dependencies": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^12.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "engines": { - "node": ">= 12.20.0" - }, - "funding": { - "type": "opencollective", - "url": "https://opencollective.com/webpack" - }, - "peerDependencies": { - "webpack": "^5.1.0" - } - }, - "node_modules/copy-webpack-plugin/node_modules/glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "dependencies": { - "is-glob": "^4.0.3" - }, - "engines": { - "node": ">=10.13.0" - } - }, "node_modules/core-js": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", + "dev": true, "hasInstallScript": true, "funding": { "type": "opencollective", @@ -7214,38 +7154,6 @@ "url": "https://github.com/sponsors/ljharb" } }, - "node_modules/globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "dependencies": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "engines": { - "node": "^12.20.0 || ^14.13.1 || >=16.0.0" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, - "node_modules/globby/node_modules/slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true, - "engines": { - "node": ">=12" - }, - "funding": { - "url": "https://github.com/sponsors/sindresorhus" - } - }, "node_modules/globule": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", @@ -11079,12 +10987,6 @@ "url": "https://github.com/chalk/supports-color?sponsor=1" } }, - "node_modules/jquery": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", - "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==", - "dev": true - }, "node_modules/js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -11455,7 +11357,8 @@ "node_modules/lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "node_modules/lodash.isequal": { "version": "4.5.0", @@ -11463,11 +11366,6 @@ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, - "node_modules/lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, "node_modules/lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -11480,11 +11378,6 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "node_modules/lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, "node_modules/loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -12271,6 +12164,17 @@ "os-tmpdir": "^1.0.0" } }, + "node_modules/otpauth": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.1.4.tgz", + "integrity": "sha512-T6T0E1WlzwKWESq8K0Ja47u01XjmDmRY/AiUoMAc6xZI/OsTsD4cqBrfpt2WfJ29W5pRiWkuUuyHdNQl0/Ic+Q==", + "dependencies": { + "jssha": "~3.3.0" + }, + "funding": { + "url": "https://github.com/hectorm/otpauth?sponsor=1" + } + }, "node_modules/p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -13741,19 +13645,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "node_modules/simplebar": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz", - "integrity": "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==", - "dependencies": { - "@juggle/resize-observer": "^3.3.1", - "can-use-dom": "^0.1.0", - "core-js": "^3.0.1", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.throttle": "^4.1.1" - } - }, "node_modules/sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", @@ -17565,11 +17456,6 @@ } } }, - "@juggle/resize-observer": { - "version": "3.4.0", - "resolved": "https://registry.npmjs.org/@juggle/resize-observer/-/resize-observer-3.4.0.tgz", - "integrity": "sha512-dfLbk+PwWvFzSxwk3n5ySL0hfBog779o8h68wK/7/APo/7cgyWp5jcXockbxdk5kFRkbeXWm4Fbi9FrdN381sA==" - }, "@nicolo-ribaudo/chokidar-2": { "version": "2.1.8-no-fsevents.3", "resolved": "https://registry.npmjs.org/@nicolo-ribaudo/chokidar-2/-/chokidar-2-2.1.8-no-fsevents.3.tgz", @@ -17951,7 +17837,7 @@ "debug": "^4.3.4", "globby": "^11.1.0", "is-glob": "^4.0.3", - "semver": "7.5.4", + "semver": "^7.3.7", "tsutils": "^3.21.0" }, "dependencies": { @@ -18020,7 +17906,7 @@ "@typescript-eslint/types": "5.62.0", "@typescript-eslint/typescript-estree": "5.62.0", "eslint-scope": "^5.1.1", - "semver": "7.5.4" + "semver": "^7.3.7" }, "dependencies": { "lru-cache": { @@ -18445,12 +18331,6 @@ "integrity": "sha512-B1qMD3RBP7O8o0H2KbrXDyB0IccejMF15+87Lvlor12ONPRHP6gTjXMNkt/d3ZuOGbAe66hFmaCfECI24Ufp6w==", "dev": true }, - "array-union": { - "version": "3.0.1", - "resolved": "https://registry.npmjs.org/array-union/-/array-union-3.0.1.tgz", - "integrity": "sha512-1OvF9IbWwaeiM9VhzYXVQacMibxpXOMYVNIvMtKRyX9SImBXpKcFr8XvFDeEslCyuH/t6KRt7HEO94AlP8Iatw==", - "dev": true - }, "array.prototype.findlastindex": { "version": "1.2.2", "resolved": "https://registry.npmjs.org/array.prototype.findlastindex/-/array.prototype.findlastindex-1.2.2.tgz", @@ -18874,11 +18754,6 @@ "resolved": "https://registry.npmjs.org/camelcase/-/camelcase-5.3.1.tgz", "integrity": "sha512-L28STB170nwWS63UjtlEOE3dldQApaJXZkOI1uMFfzf3rRuPegHaHesyee+YxQ+W6SvRDQV6UrdOdRiR153wJg==" }, - "can-use-dom": { - "version": "0.1.0", - "resolved": "https://registry.npmjs.org/can-use-dom/-/can-use-dom-0.1.0.tgz", - "integrity": "sha512-ceOhN1DL7Y4O6M0j9ICgmTYziV89WMd96SvSl0REd8PMgrY0B/WBOPoed5S1KUmJqXgUXh8gzSe6E3ae27upsQ==" - }, "caniuse-lite": { "version": "1.0.30001519", "resolved": "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001519.tgz", @@ -19160,35 +19035,11 @@ "is-what": "^3.14.1" } }, - "copy-webpack-plugin": { - "version": "10.2.4", - "resolved": "https://registry.npmjs.org/copy-webpack-plugin/-/copy-webpack-plugin-10.2.4.tgz", - "integrity": "sha512-xFVltahqlsRcyyJqQbDY6EYTtyQZF9rf+JPjwHObLdPFMEISqkFkr7mFoVOC6BfYS/dNThyoQKvziugm+OnwBg==", - "dev": true, - "requires": { - "fast-glob": "^3.2.7", - "glob-parent": "^6.0.1", - "globby": "^12.0.2", - "normalize-path": "^3.0.0", - "schema-utils": "^4.0.0", - "serialize-javascript": "^6.0.0" - }, - "dependencies": { - "glob-parent": { - "version": "6.0.2", - "resolved": "https://registry.npmjs.org/glob-parent/-/glob-parent-6.0.2.tgz", - "integrity": "sha512-XxwI8EOhVQgWp6iDL+3b0r86f4d6AX6zSU55HfB4ydCEuXLXc5FcYeOu+nnGftS4TEju/11rt4KJPTMgbfmv4A==", - "dev": true, - "requires": { - "is-glob": "^4.0.3" - } - } - } - }, "core-js": { "version": "3.32.0", "resolved": "https://registry.npmjs.org/core-js/-/core-js-3.32.0.tgz", - "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==" + "integrity": "sha512-rd4rYZNlF3WuoYuRIDEmbR/ga9CeuWX9U05umAvgrrZoHY4Z++cp/xwPQMvUpBB4Ag6J8KfD80G0zwCyaSxDww==", + "dev": true }, "core-js-compat": { "version": "3.32.0", @@ -20803,7 +20654,7 @@ "requires": { "extend": "^3.0.0", "glob": "^7.1.1", - "glob-parent": "5.1.2", + "glob-parent": "^3.1.0", "is-negated-glob": "^1.0.0", "ordered-read-streams": "^1.0.0", "pumpify": "^1.3.5", @@ -20907,28 +20758,6 @@ "define-properties": "^1.1.3" } }, - "globby": { - "version": "12.2.0", - "resolved": "https://registry.npmjs.org/globby/-/globby-12.2.0.tgz", - "integrity": "sha512-wiSuFQLZ+urS9x2gGPl1H5drc5twabmm4m2gTR27XDFyjUHJUNsS8o/2aKyIF6IoBaR630atdher0XJ5g6OMmA==", - "dev": true, - "requires": { - "array-union": "^3.0.1", - "dir-glob": "^3.0.1", - "fast-glob": "^3.2.7", - "ignore": "^5.1.9", - "merge2": "^1.4.1", - "slash": "^4.0.0" - }, - "dependencies": { - "slash": { - "version": "4.0.0", - "resolved": "https://registry.npmjs.org/slash/-/slash-4.0.0.tgz", - "integrity": "sha512-3dOsAHXXUkQTpOYcoAxLIorMTp4gIQr5IW3iVb7A7lFIp0VHhnynm9izx6TssdrIcVIESAlVjtnO2K8bg+Coew==", - "dev": true - } - } - }, "globule": { "version": "1.3.4", "resolved": "https://registry.npmjs.org/globule/-/globule-1.3.4.tgz", @@ -22263,7 +22092,7 @@ "integrity": "sha512-hXdUTZYIVOt1Ex//jAQi+wTZZpUpwBj/0QsOzqegb3rGMMeJiSEu5xLHnYfBrRV4RH2+OCSOO95Is/7x1WJ4bw==", "dev": true, "requires": { - "semver": "7.5.4" + "semver": "^7.5.3" } }, "semver": { @@ -23794,12 +23623,6 @@ } } }, - "jquery": { - "version": "3.7.0", - "resolved": "https://registry.npmjs.org/jquery/-/jquery-3.7.0.tgz", - "integrity": "sha512-umpJ0/k8X0MvD1ds0P9SfowREz2LenHsQaxSohMZ5OMNEU2r0tf8pdeEFTHMFxWVxKNyU9rTtK3CWzUCTKJUeQ==", - "dev": true - }, "js-tokens": { "version": "4.0.0", "resolved": "https://registry.npmjs.org/js-tokens/-/js-tokens-4.0.0.tgz", @@ -24098,7 +23921,8 @@ "lodash.debounce": { "version": "4.0.8", "resolved": "https://registry.npmjs.org/lodash.debounce/-/lodash.debounce-4.0.8.tgz", - "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==" + "integrity": "sha512-FT1yDzDYEoYWhnSGnpE/4Kj1fLZkDFyqRb7fNt6FdYOSxlUWAtp42Eh6Wb0rGIv/m9Bgo7x4GhQbm5Ys4SG5ow==", + "dev": true }, "lodash.isequal": { "version": "4.5.0", @@ -24106,11 +23930,6 @@ "integrity": "sha512-pDo3lu8Jhfjqls6GkMgpahsF9kCyayhgykjyLMNFTKWrpVdAQtYyB4muAMWozBB4ig/dtWAmsMxLEI8wuz+DYQ==", "dev": true }, - "lodash.memoize": { - "version": "4.1.2", - "resolved": "https://registry.npmjs.org/lodash.memoize/-/lodash.memoize-4.1.2.tgz", - "integrity": "sha512-t7j+NzmgnQzTAYXcsHYLgimltOV1MXHtlOWf6GjL9Kj8GK5FInw5JotxvbOs+IvV1/Dzo04/fCGfLVs7aXb4Ag==" - }, "lodash.merge": { "version": "4.6.2", "resolved": "https://registry.npmjs.org/lodash.merge/-/lodash.merge-4.6.2.tgz", @@ -24123,11 +23942,6 @@ "integrity": "sha512-HDWXG8isMntAyRF5vZ7xKuEvOhT4AhlRt/3czTSjvGUxjYCBVRQY48ViDHyfYz9VIoBkW4TMGQNapx+l3RUwdA==", "dev": true }, - "lodash.throttle": { - "version": "4.1.1", - "resolved": "https://registry.npmjs.org/lodash.throttle/-/lodash.throttle-4.1.1.tgz", - "integrity": "sha512-wIkUCfVKpVsWo3JSZlc+8MB5it+2AN5W8J7YVMST30UrvcQNZ1Okbj+rbVniijTWE6FGYy4XJq/rHkas8qJMLQ==" - }, "loose-envify": { "version": "1.4.0", "resolved": "https://registry.npmjs.org/loose-envify/-/loose-envify-1.4.0.tgz", @@ -24735,6 +24549,14 @@ "os-tmpdir": "^1.0.0" } }, + "otpauth": { + "version": "9.1.4", + "resolved": "https://registry.npmjs.org/otpauth/-/otpauth-9.1.4.tgz", + "integrity": "sha512-T6T0E1WlzwKWESq8K0Ja47u01XjmDmRY/AiUoMAc6xZI/OsTsD4cqBrfpt2WfJ29W5pRiWkuUuyHdNQl0/Ic+Q==", + "requires": { + "jssha": "~3.3.0" + } + }, "p-limit": { "version": "3.1.0", "resolved": "https://registry.npmjs.org/p-limit/-/p-limit-3.1.0.tgz", @@ -25843,19 +25665,6 @@ "integrity": "sha512-wnD2ZE+l+SPC/uoS0vXeE9L1+0wuaMqKlfz9AMUo38JsyLSBWSFcHR1Rri62LZc12vLr1gb3jl7iwQhgwpAbGQ==", "dev": true }, - "simplebar": { - "version": "5.3.9", - "resolved": "https://registry.npmjs.org/simplebar/-/simplebar-5.3.9.tgz", - "integrity": "sha512-1vIIpjDvY9sVH14e0LGeiCiTFU3ILqAghzO6OI9axeG+mvU/vMSrvXeAXkBolqFFz3XYaY8n5ahH9MeP3sp2Ag==", - "requires": { - "@juggle/resize-observer": "^3.3.1", - "can-use-dom": "^0.1.0", - "core-js": "^3.0.1", - "lodash.debounce": "^4.0.8", - "lodash.memoize": "^4.1.2", - "lodash.throttle": "^4.1.1" - } - }, "sisteransi": { "version": "1.0.5", "resolved": "https://registry.npmjs.org/sisteransi/-/sisteransi-1.0.5.tgz", diff --git a/package.json b/package.json index 03182f0c2..a56e6f05a 100755 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "passbolt-styleguide", - "version": "4.2.1", + "version": "4.3.0", "license": "AGPL-3.0", "copyright": "Copyright 2023 Passbolt SA", "description": "Passbolt styleguide contains common styling assets used by the different sites, plugin, etc.", @@ -21,8 +21,6 @@ "@testing-library/react": "^12.1.4", "babel-jest": "^29.6.2", "babel-loader": "^9.1.3", - "copy-webpack-plugin": "^10.2.4", - "cross-fetch": "^3.1.5", "eslint": "^8.46.0", "eslint-plugin-import": "^2.28.0", "eslint-plugin-jest": "^27.2.3", @@ -46,7 +44,6 @@ "jest-junit": "^16.0.0", "jest-useragent-mock": "^0.1.1", "jest-webextension-mock": "^3.8.9", - "jquery": "^3.5.0", "webpack": "^5.74.0", "webpack-cli": "^4.9.1" }, @@ -59,6 +56,7 @@ "ip-regex": "^4.3.0", "jssha": "^3.2.0", "luxon": "^2.3.1", + "otpauth": "^9.1.4", "prop-types": "^15.7.2", "qrcode": "^1.5.0", "react": "17.0.2", @@ -68,7 +66,6 @@ "react-list": "^0.8.15", "react-router-dom": "^5.2.0", "react-transition-group": "^4.4.1", - "simplebar": "^5.2.1", "uuid": "^8.3.0", "validator": "^13.9.0", "webextension-polyfill": "^0.9.0", diff --git a/src/img/third_party/windowsstore.svg b/src/img/third_party/windowsstore.svg deleted file mode 100644 index a55510f59..000000000 --- a/src/img/third_party/windowsstore.svg +++ /dev/null @@ -1,32 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/src/less/abstractions/colors.less b/src/less/abstractions/colors.less index db83d3475..260746177 100644 --- a/src/less/abstractions/colors.less +++ b/src/less/abstractions/colors.less @@ -3,6 +3,7 @@ /* palette */ @white: #FFFFFF; @black: #000000; +@vampire-black: #070707; @dark-charcoal: #333333; @button-blue: #2A9CEB; @@ -431,6 +432,11 @@ @icon-spinner-warning-color: @white; @icon-spinner-warning-background: @white; +/* timer icon fill */ +@icon-timer-color: @vampire-black; +@icon-timer-alert-color: @rosso-corsa; +@icon-timer-background: @quick-silver-2; + /* failed icon fill */ @icon-failed-color: @rosso-corsa; diff --git a/src/less/abstractions/colors_custom.sample.less b/src/less/abstractions/colors_custom.sample.less index 4a7392fbe..946a19f3b 100644 --- a/src/less/abstractions/colors_custom.sample.less +++ b/src/less/abstractions/colors_custom.sample.less @@ -426,6 +426,11 @@ @icon-spinner-warning-color: @main-color; @icon-spinner-warning-background: @main-color; +/* timer icon fill */ +@icon-timer-color: @main-color-gradient-2; +@icon-timer-alert-color: @alert-1; +@icon-timer-background: @text-icon-main-color; + /* failed icon fill */ @icon-failed-color: @alert-1; diff --git a/src/less/abstractions/colors_migdar.less b/src/less/abstractions/colors_migdar.less index 961e0ad3b..2a66226c9 100644 --- a/src/less/abstractions/colors_migdar.less +++ b/src/less/abstractions/colors_migdar.less @@ -54,7 +54,6 @@ @bright-gray: #EBEBE9; @cultured-2: #F8F8F8; @chinese-white: #E0E0E0; - @cornflower-blue: #6895fa; @fire-opal: #ef6157; @@ -433,6 +432,11 @@ @icon-spinner-warning-color: @white; @icon-spinner-warning-background: @white; +/* timer icon fill */ +@icon-timer-color: @white; +@icon-timer-alert-color: @rosso-corsa; +@icon-timer-background: rgba(@white, 0.25); + /* failed icon fill */ @icon-failed-color: @rosso-corsa; diff --git a/src/less/abstractions/colors_solarized-dark.less b/src/less/abstractions/colors_solarized-dark.less index ec9eb49eb..b79ba2d04 100644 --- a/src/less/abstractions/colors_solarized-dark.less +++ b/src/less/abstractions/colors_solarized-dark.less @@ -432,12 +432,18 @@ /* spinner icon fill */ @icon-spinner-color: @text-icon-main-color; +@icon-spinner-color-alert: @alert-1; @icon-spinner-background: @main-color-gradient-2; @icon-spinner-primary-color: @main-color; @icon-spinner-primary-background: @text-icon-main-color; @icon-spinner-warning-color: @text-icon-main-color; @icon-spinner-warning-background: @text-icon-main-color; +/* timer icon fill */ +@icon-timer-color: @text-icon-main-color; +@icon-timer-alert-color: @alert-1; +@icon-timer-background: @main-color-gradient-2; + /* failed icon fill */ @icon-failed-color: @alert-1; diff --git a/src/less/abstractions/colors_solarized-light.less b/src/less/abstractions/colors_solarized-light.less index 18b074c5e..993d5ec85 100644 --- a/src/less/abstractions/colors_solarized-light.less +++ b/src/less/abstractions/colors_solarized-light.less @@ -435,12 +435,18 @@ /* spinner icon fill */ @icon-spinner-color: @text-icon-main-color; +@icon-spinner-color-alert: @alert-1; @icon-spinner-background: @main-color-gradient-2; @icon-spinner-primary-color: @main-color; @icon-spinner-primary-background: @main-color; @icon-spinner-warning-color: @main-color; @icon-spinner-warning-background: @main-color; +/* timer icon fill */ +@icon-timer-color: @text-icon-main-color; +@icon-timer-alert-color: @alert-1; +@icon-timer-background: @main-color-gradient-2; + /* failed icon fill */ @icon-failed-color: @alert-1; diff --git a/src/less/base/icons/icons-svg.less b/src/less/base/icons/icons-svg.less index 4cb38a0c3..76ffbec0a 100644 --- a/src/less/base/icons/icons-svg.less +++ b/src/less/base/icons/icons-svg.less @@ -17,6 +17,12 @@ --spinner-color: @icon-spinner-color; --spinner-background: @icon-spinner-background; --spinner-stroke-width: .15rem; + // default icon timer color, background color and stroke width + --timer-color: @icon-timer-color; + --timer-background: @icon-timer-background; + --timer-stroke-width: .3rem; + --timer-duration: 30s; + --timer-delay: 0s; } .svg-baseline() { @@ -30,18 +36,16 @@ &.spinner { #loading { - animation: spin 2s forwards infinite; + animation: spin 2s cubic-bezier(0.77, 0, 0.175, 1) forwards infinite; stroke-dashoffset: 50.25; stroke-dasharray: 50.27; @keyframes spin { 0% { stroke-dashoffset: 50.25; - animation-timing-function: cubicBezier(0.77, 0, 0.175, 1); } 50% { stroke-dashoffset: 0; - animation-timing-function: cubicBezier(0.77, 0, 0.175, 1); } 100% { stroke-dashoffset: -50.25; @@ -50,6 +54,32 @@ } } + &.timer { + #timer-progress { + animation: timer-progress linear forwards infinite; + animation-duration: var(--timer-duration); + animation-delay: var(--timer-delay); + stroke-dashoffset: -100.54; + stroke-dasharray: 50.27; + } + @keyframes timer-progress { + 0% { + stroke-dashoffset: -100.54; + stroke: @icon-timer-color; + } + 65% { + stroke: @icon-timer-color; + } + 75% { + stroke: @icon-timer-alert-color; + } + 100% { + stroke-dashoffset: -50.27; + stroke: @icon-timer-alert-color; + } + } + } + &.baseline svg { .svg-baseline(); } diff --git a/src/less/base/typography.less b/src/less/base/typography.less index 9ad812d19..20149e204 100644 --- a/src/less/base/typography.less +++ b/src/less/base/typography.less @@ -39,6 +39,7 @@ body { .password-typography { font-family: 'Inconsolata', 'Open Sans', Verdana, sans-serif; + font-size: 1.6rem; } // diff --git a/src/less/components/form/password-complexity-with-goal.less b/src/less/components/form/password-complexity-with-goal.less new file mode 100644 index 000000000..2f40c7335 --- /dev/null +++ b/src/less/components/form/password-complexity-with-goal.less @@ -0,0 +1,88 @@ +.password-complexity.with-goal { + position: relative; + margin-bottom: 1.2rem; + .complexity-text { + display: flex; + font-size: 1rem; + line-height: 1.4rem; + color: @complexity-text-color; + } + + .progress { + box-sizing: border-box; + display: block; + position: relative; + height: 1rem; + width: 100%; + } + + .progress-bar { + position: absolute; + border-radius: .1rem; + height: .2rem; + margin-top: .3rem; + display: block; + top: 0; + + &.background { + width: 100%; + background: @complexity-bar-default-background; + z-index: 0; + } + + &.foreground { + width: 0; + background: @hint-warning-color; + z-index: 10; + + &.required { + background: @hint-error-color; + } + + &.reached { + background: @hint-success-color; + } + } + + &.target { + width: 0; + background: @table-warning-background; + z-index: 5; + + &.required { + background: @table-error-background; + } + } + } + + .target-entropy { + position: absolute; + top: 0.7rem; + width: 0; + height: 0; + border: 6px solid transparent; + border-top: 0; + border-bottom-color: @complexity-bar-default-background; + + &.recommended { + border-bottom-color: @hint-warning-color; + } + + &.required { + border-bottom-color: @hint-error-color; + } + + &.reached { + border-bottom-color: @hint-success-color; + } + + .tooltip { + position: absolute; + top: -0.3rem; + left: -1rem; + width: 2rem; + height: 1.2rem; + z-index: 20; + } + } +} \ No newline at end of file diff --git a/src/less/components/form/password-complexity.less b/src/less/components/form/password-complexity.less index 20c4dd31e..209d56f36 100644 --- a/src/less/components/form/password-complexity.less +++ b/src/less/components/form/password-complexity.less @@ -27,4 +27,4 @@ background: @complexity-bar-default-background; } } -} \ No newline at end of file +} diff --git a/src/less/components/get-started-desktop.less b/src/less/components/get-started-desktop.less new file mode 100644 index 000000000..117540c9e --- /dev/null +++ b/src/less/components/get-started-desktop.less @@ -0,0 +1,56 @@ +.get-started-desktop { + .step { + width: 24px; + height: 24px; + display: inline-flex; + box-sizing: border-box; + border: 2px solid #000000; + border-radius: 1000px; + line-height: 20px; + font-size: 15px; + flex-direction: column; + align-items: center; + color: @black; + margin-right: 15px; + } +} + +.import-account-kit { + .big.avatar { + text-align: center; + justify-content: center; + margin-bottom: 1.6rem; + } +} + + +.import-account-kit-details { + + .user { + width: 100%; + margin: auto; + + &>* { + text-align: center; + justify-content: center; + margin-bottom: 1.6rem; + } + + .user-name { + font-weight: bold; + font-size: 1.6rem; + line-height: 2rem; + margin-top: 1.6rem; + margin-bottom: 1rem; + } + + .user-email { + font-size: 1.5rem; + margin-bottom: 1rem; + } + .user-domain { + font-size: 1.5rem; + line-height: 1.9rem; + } + } +} \ No newline at end of file diff --git a/src/less/components/range.less b/src/less/components/range.less new file mode 100644 index 000000000..046dbd008 --- /dev/null +++ b/src/less/components/range.less @@ -0,0 +1,136 @@ +.range-wrapper { + width: 100%; + display: flex; + flex-direction: column; + gap: 0.8rem; + padding-bottom: 2rem; + + .range-labels { + display: flex; + width: 100%; + } + + .range-labels label { + font-size: 1.4rem; + font-weight: 700; + flex: 1 1 0; + } + + .range-labels label:first-child { + color: @complexity-bar-low-color; + text-align: left; + } + + .range-labels label:last-child { + color: @complexity-bar-high-color; + text-align: right; + } + + .range-input-wrapper { + position: relative; + display: flex; + flex-direction: column; + gap: 1.6rem; + + .range-input { + height: 1rem; + width: 100%; + background: @complexity-bar-gradient-background; + border-radius: 0.5rem; + appearance: none; + outline: none; + } + + .range-input::-webkit-slider-container { + min-block-size: 1rem; + } + + .range-input::-webkit-slider-runnable-track { + height: 1rem; + } + + .range-input::-webkit-slider-thumb { + appearance: none; + position: relative; + z-index: 1; + width: 1.6rem; + height: 1.6rem; + border-radius: .8rem; + background: @cultured-2; + border: .1rem solid @chinese-white; + transform: translate(-0.2rem, -0.3rem); + cursor: pointer; + } + + .range-options { + display: flex; + justify-content: space-around; + writing-mode: horizontal-tb; + width: inherit; + text-align: center; + + .range-option { + position: absolute; + padding: 0; + transform: translateX(-50%); + cursor: pointer; + white-space: nowrap; + + &:hover { + font-weight: 700; + } + + &::before { + content: ''; + position: absolute; + display: block; + top: -2.5rem; + left: 50%; + width: .8rem; + height: .8rem; + border-radius: .4rem; + background: rgba(255,255,255,.5); + z-index: 0; + transform: translateX(-50%); + } + + &.range-option--active { + font-weight: 700; + color: @black; + padding: .3rem .6rem; + background: @cultured-2; + border: .1rem solid @chinese-white; + margin-top: -.4rem; + border-radius: .3rem; + } + + &.range-option--active::before { + display: none; + } + } + + .range-option:first-child { + text-align: left; + transform: translateX(0%); + + &::before { + content: ''; + left: .1rem; + transform: translateX(0); + } + } + + .range-option:last-child { + text-align: right; + transform: translateX(-100%); + + &::before { + content: ''; + left: unset; + right: .1rem; + transform: translateX(0); + } + } + } + } +} diff --git a/src/less/components/secretcopy.less b/src/less/components/secretcopy.less index 84a2c67d1..262d98853 100644 --- a/src/less/components/secretcopy.less +++ b/src/less/components/secretcopy.less @@ -3,14 +3,8 @@ This is what is used to copy a secret in the clipboard */ .secret-copy { - overflow: visible; - display: table-cell; - vertical-align: middle; - .clearfix(); - > button { - display: inline-block; - float: left; + display: block; border: 0; &:hover { @@ -20,8 +14,7 @@ display: none; } - &:before { - content: 'BBBBBBBBB'; + &:before, &:after { font-family: 'Passbolt', sans-serif; font-style: normal; font-weight: 400; @@ -33,4 +26,22 @@ > pre { display: none; } + + &.secret-password { + > button:before { + content: 'BBBBBBBBB'; + } + } + + &.secret-totp { + > button { + &:before { + content: 'BBB'; + } + &:after { + margin-left: .5rem; + content: 'BBB'; + } + } + } } diff --git a/src/less/components/sidebar.less b/src/less/components/sidebar.less index 2877083b7..41f6612e4 100644 --- a/src/less/components/sidebar.less +++ b/src/less/components/sidebar.less @@ -183,16 +183,20 @@ } } } - &.password { + &.password, &.totp { .value { .secret { float: left; max-width: calc(100% - 3rem); // password field - password preview button overflow: hidden; text-overflow: ellipsis; + + .svg-icon.timer { + margin-left: .5rem; + } } } - .password-view { + .password-view, .totp-view { display: flex; align-items: center; width: 2.2rem; diff --git a/src/less/components/tableview.less b/src/less/components/tableview.less index 3d82ae83f..def19810e 100644 --- a/src/less/components/tableview.less +++ b/src/less/components/tableview.less @@ -187,7 +187,7 @@ tbody tr { height: 3.2rem; - &:nth-child(even) { + &.even { background: @tableview-even-background; color: @tableview-content-even-text-color; @@ -297,12 +297,16 @@ } } - td.cell-password { + td.cell-password, td.cell-totp { .secret { float: left; - max-width: calc(100% - 3rem); // password field - password preview button + max-width: calc(100% - 3rem); // secret field - secret preview button + + .svg-icon.timer { + margin-left: .5rem; + } } - .password-view { + .password-view, .totp-view { display: none; align-items: center; width: 2.2rem; @@ -317,7 +321,7 @@ } } &:hover { - .password-view { + .password-view, .totp-view { display: flex; } } diff --git a/src/less/pages/settings.less b/src/less/pages/settings.less index 2cb70710f..b7cf520e5 100644 --- a/src/less/pages/settings.less +++ b/src/less/pages/settings.less @@ -134,7 +134,7 @@ .profile-desktop-export { .windows-store { display: block; - height: 4.4rem; + height: 5.4rem; border: 0; } } diff --git a/src/less/themes/common/ext_app.less b/src/less/themes/common/ext_app.less index 9dac130e4..749503f24 100644 --- a/src/less/themes/common/ext_app.less +++ b/src/less/themes/common/ext_app.less @@ -26,6 +26,7 @@ @import "../../components/iframe.less"; @import "../../components/sidebar-help.less"; @import "../../components/chips.less"; +@import "../../components/range.less"; // Extra components @import "../../components/activity.less"; @@ -36,6 +37,7 @@ @import "../../components/form/password.less"; @import "../../components/form/connection_info_field.less"; @import "../../components/form/password-complexity"; +@import "../../components/form/password-complexity-with-goal"; @import "../../components/form/password-hints"; @import "../../components/permission/permissions.less"; @import "../../components/secretcopy.less"; diff --git a/src/less/themes/common/ext_authentication.less b/src/less/themes/common/ext_authentication.less index c444c9653..9bd0713c4 100644 --- a/src/less/themes/common/ext_authentication.less +++ b/src/less/themes/common/ext_authentication.less @@ -6,6 +6,7 @@ @import "../../components/form/openpgp-key"; @import "../../components/form/password"; @import "../../components/form/password-complexity"; +@import "../../components/form/password-complexity-with-goal"; @import "../../components/form/password-hints"; @import "../../components/dialog"; @import "../../components/accordion.less"; @@ -14,6 +15,7 @@ @import "../../components/avatar"; @import "../../components/iframe.less"; @import "../../components/sso-buttons.less"; +@import "../../components/get-started-desktop.less"; // Pages @import "../../pages/authentication.less"; diff --git a/src/locales/de-DE/common.json b/src/locales/de-DE/common.json index bd6cb083b..568d05d53 100644 --- a/src/locales/de-DE/common.json +++ b/src/locales/de-DE/common.json @@ -33,7 +33,7 @@ "2. Install the application from the store.": "2. App aus dem Store installieren.", "2. Open the application on your phone.": "2. App auf Ihrem Telefon öffnen.", "3. Click start, here, in your browser.": "3. Klicken Sie Starten hier in Ihrem Browser.", - "3. Open the application.": "3. Open the application.", + "3. Open the application.": "3. Öffnen Sie die Anwendung.", "4. Scan the QR codes with your phone.": "4. Scannen Sie den QR-Code mit Ihrem Telefon.", "4. Upload the account kit on the desktop app.": "4. Upload the account kit on the desktop app.", "5. And you are done!": "5. Und Sie sind fertig!", @@ -62,6 +62,7 @@ "Accept new key": "Neuen Schlüssel akzeptieren", "Accept the new SSO provider": "Neuen SSO-Anbieter akzeptieren", "Access to this service requires an invitation.": "Der Zugriff auf diesen Service erfordert eine Einladung.", + "Account kit": "Account kit", "Account recovery": "Kontowiederherstellung", "Account Recovery": "Kontowiederherstellung", "Account recovery enrollment": "Anmeldung zur Kontowiederherstellung", @@ -95,13 +96,14 @@ "All users": "Alle Benutzer", "Allow": "Erlauben", "Allow “Remember this device for a month.“ option during MFA.": "Erlaube die “Dieses Gerät einen Monat lang merken“-Option während der MFA.", - "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if a password has been compromised.": "Erlaube Passbolt auf externe Dienste zuzugreifen, um zu überprüfen, ob ein Passwort kompromittiert wurde.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Erlaubte Domains", "Allows Azure and Passbolt API to securely share information.": "Ermöglicht Azure und der Passbolt-API den sicheren Austausch von Informationen.", "Allows Google and Passbolt API to securely share information.": "Ermöglicht Google und der Passbolt API den sicheren Austausch von Informationen.", "Also delete items inside this folder.": "Elemente auch in diesem Ordner löschen.", "Alternatively you can also get in touch with support on community forum or via the paid support channels.": "Alternativ können Sie sich auch mit dem Support im Community-Forum oder über die kostenpflichtigen Support-Kanäle in Verbindung setzen.", - "An account kit is required to transfer your profile and private key to the desktop app.": "An account kit is required to transfer your profile and private key to the desktop app.", + "An account kit is required to transfer your profile and private key to the desktop app.": "Ein Konto-Kit wird benötigt, um Ihr Profil und Ihren privaten Schlüssel in die Desktop-App zu übertragen.", "An email is required.": "Eine E-Mail ist erforderlich.", "An error occured during the sign-in via SSO.": "Beim Anmelden per SSO ist ein Fehler aufgetreten.", "An organization key is required.": "Ein Organisationsschlüssel ist erforderlich.", @@ -119,7 +121,7 @@ "Are you sure you want to disable the current Single Sign-On settings?": "Sind Sie sicher, dass Sie die aktuellen Single-Sign-On-Einstellungen deaktivieren möchten?", "Are you sure?": "Sind Sie sicher?", "As soon as an administrator validates your request you will receive an email link to complete the process.": "Sobald ein Administrator Ihre Anfrage überprüft, erhalten Sie einen E-Mail-Link, um den Vorgang abzuschließen.", - "At least 1 set of characters must be selected": "At least 1 set of characters must be selected", + "At least 1 set of characters must be selected": "Mindestens ein Satz von Zeichen muss ausgewählt sein", "Authentication method": "Authentifizierungsmethode", "Authentication token is missing from server response.": "Der Authentifizierungstoken fehlt in der Antwort des Servers.", "Avatar": "Profilbild", @@ -223,11 +225,12 @@ "currently:": "aktuell: ", "Customer id:": "Kunden-Id:", "Decrypting": "Entschlüsselung", + "Decrypting secret": "Geheimnis wird entschlüsselt", "Decryption failed, click here to retry": "Entschlüsselung fehlgeschlagen, klicken Sie hier, um es erneut zu versuchen", "Default": "Standard", "Default admin": "Standard Admin", "Default group admin": "Standard Gruppen-Admin", - "Default password type": "Default password type", + "Default password type": "Standard-Passwort-Typ", "Default users multi factor authentication policy": "Standardrichtlinie für die Multi-Faktor-Authentifizierung von Benutzern", "Defines the Azure login behaviour by prompting the user to fully login each time or not.": "Definiert das Azure-Anmeldeverhalten, indem der Benutzer jedes Mal aufgefordert wird, sich vollständig anzumelden oder nicht.", "Defines which Azure field needs to be used as Passbolt username.": "Definiert, welches Azure-Feld als Passbolt-Benutzername verwendet werden soll.", @@ -244,7 +247,7 @@ "deleted": "gelöscht", "Deny": "Ablehnen", "Description": "Beschreibung", - "Desktop app setup": "Desktop app setup", + "Desktop app setup": "Desktop-App-Setup", "Directory (tenant) ID": "Verzeichnis (tenant) ID", "Directory configuration": "Verzeichniskonfiguration", "Directory group's users field to map to Passbolt group's field.": "Zuordnung von Verzeichnisgruppenbenutzerfeld zu Passbolt-Gruppenfeld.", @@ -267,10 +270,10 @@ "Download again": "Erneut herunterladen", "Download backup": "Backup herunterladen", "Download extension": "Erweiterung herunterladen", - "Download the desktop app": "Download the desktop app", + "Download the desktop app": "Desktop-App herunterladen", "Download the kit again!": "Das Kit erneut herunterladen!", "Download the mobile app": "Mobile App herunterladen", - "Download your account kit": "Download your account kit", + "Download your account kit": "Account-Kit herunterladen", "Edit": "Bearbeiten", "Edit Avatar": "Profilbild bearbeiten", "Edit group": "Gruppe bearbeiten", @@ -304,11 +307,12 @@ "Enter the password and/or key file": "Passwort und/oder Schlüsseldatei eingeben", "Enter the private key used by your organization for account recovery": "Geben Sie den privaten Schlüssel ein, der von Ihrer Organisation für die Kontowiederherstellung verwendet wird", "entropy:": "entropie:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Fehler", "Error details": "Fehlerdetails", "Error, this is not the current organization recovery key.": "Fehler, dies ist nicht der aktuelle Organisations-Wiederherstellungsschlüssel.", "Errors:": "Fehler", - "Estimated entropy": "Estimated entropy", + "Estimated entropy": "Geschätzte Entropie", "Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in.": "Jeder Benutzer kann sich entscheiden, eine Kopie seines privaten Schlüssels und der Passphrase standardmäßig während der Einrichtung zur Verfügung zu stellen, aber er kann sich dafür entscheiden.", "Every user is required to provide a copy of their private key and passphrase during setup.": "Jeder Benutzer muss während der Einrichtung eine Kopie seines privaten Schlüssels und seiner Passphrase angeben.", "Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out.": "Jeder Benutzer wird standardmäßig während der Einrichtung dazu aufgefordert, eine Kopie seines privaten Schlüssels und der Passphrase anzugeben, aber er kann sich dagegen entscheiden.", @@ -321,7 +325,8 @@ "Export": "Exportieren", "Export all": "Alle exportieren", "Export passwords": "Passwörter exportieren", - "External services": "External services", + "External password dictionary check": "External password dictionary check", + "External services": "Externe Dienste", "Fair": "Fair", "FAQ: Why are my emails not sent?": "FAQ: Warum werden meine E-Mails nicht versendet?", "Favorite": "Favorit", @@ -341,7 +346,8 @@ "For more information about email notification, checkout the dedicated page on the help website.": "Für weitere Informationen über E-Mail-Benachrichtigungen, schauen Sie sich gerne die entsprechende Seite auf der Hilfeseite an.", "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Weitere Informationen zu MFA-Richtlinieneinstellungen finden Sie auf der entsprechenden Seite auf der Hilfe-Website.", "For more information about SSO, checkout the dedicated page on the help website.": "Weitere Informationen zu SSO finden Sie auf der entsprechenden Seite auf der Hilfe-Website.", - "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the password policy settings, checkout the dedicated page on the help website.": "Für weitere Informationen zu den Passwort-Richtlinien-Einstellungen schauen Sie sich die entsprechende Seite auf der Hilfe-Website an.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Legt nur für Open Ldap fest, welche Gruppen-Objekt verwendet werden soll.", "For Openldap only. Defines which user object to use.": "Legt nur für Open Ldap fest, welches Benutzerobjekt verwendet werden soll.", "For security reasons please check with your administrator that this is a change that they initiated.": "Bitte überprüfen Sie aus Sicherheitsgründen mit Ihrem Administrator, ob diese Änderung von ihm initiiert wurde.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Neues Passwort sicher erzeugen", "Generate new key instead": "Neuen Schlüssel generieren", "Generate password": "Passwort generieren", + "Get started !": "Starten !", "Get started in 5 easy steps": "In 5 einfachen Schritten anfangen", "Go back": "Zurück", "Go to MFA settings": "Gehe zu den MFA-Einstellungen", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Wenn Sie noch Ihr Konto wiederherstellen müssen, müssen Sie den Prozess von Grund auf starten.", "Ignored:": "Ignoriert", "Import": "Importieren", + "Import account": "Import account", "Import an OpenPGP Public key": "Einen öffentlichen OpenPGP-Schlüssel importieren", + "Import another account": "Import another account", "Import folders": "Ordner importieren", "Import passwords": "Passwörter importieren", "Import success!": "Importieren erfolgreich!", "Import/Export": "Import/Export", "Important notice:": "Wichtiger Hinweis:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "Um die "Benutzername & Passwort" Authentifizierungsmethode mit Google zu verwenden, müssen Sie MFA in Ihrem Google-Konto aktivieren. Das Passwort sollte nicht Ihrem Login-Passwort entsprechen, Sie müssen ein "App-Passwort" erstellen, das von Google generiert wurde. Die E-Mail bleibt jedoch die gleiche.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "Hier können Sie den Inhalt der E-Mails konfigurieren, z.B. welche Informationen in die Benachrichtigung aufgenommen werden.", "In this section you can choose the default behavior of account recovery for all users.": "In diesem Abschnitt können Sie das Standardverhalten der Kontowiederherstellung für alle Benutzer festlegen.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Ungültiger Berechtigungstyp für Freigabe-Berechtigung.", "is owner": "ist Eigentümer*in", "Is owner": "Ist Eigentümer", - "It contains letters and numbers": "Buchstaben und Zahlen enthalten", - "It contains lower and uppercase characters": "Klein- und Großbuchstaben enthalten", - "It contains special characters (like / or * or %)": "Sonderzeichen (z. B. / oder * oder %) enthalten", "It does feel a bit empty here.": "Es fühlt sich hier ein wenig leer an.", - "It is at least 8 characters in length": "Die Länge beträgt mindestens 8 Zeichen", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Es ist zwingend erforderlich, eine Kopie Ihres privaten Schlüssels mit Ihren Kontakten zur Wiederherstellung Ihrer Organisation zu teilen. Möchten Sie fortfahren?", - "It is not part of an exposed data breach": "Es ist nicht Teil eines offengelegten Datenbruchs", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Es ist nicht möglich, ein neues Konto einzurichten, da Sie noch angemeldet sind. Sie müssen sich zuerst abmelden, bevor Sie fortfahren.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Es ist nicht möglich, die Wiederherstellung Ihres Kontos durchzuführen, da Sie noch angemeldet sind. Sie müssen sich zuerst abmelden, bevor Sie fortfahren.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Es ist nicht möglich, den privaten Schlüssel Ihres Kontos wiederherzustellen, da Sie noch angemeldet sind. Sie müssen sich zuerst abmelden, bevor Sie fortfahren.", @@ -477,6 +482,8 @@ "Metadata": "Metadaten", "MFA": "MFA", "MFA Policy": "MFA-Richtlinie", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobile Apps", "Mobile setup": "Mobile-Einrichtung", "Mobile transfer": "Mobile-Transfer", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Noch keines Ihrer Passwörter ist als Favorit markiert. Fügen Sie den Passwörtern Sternchen hinzu, die Sie später einfach finden möchten.", "None of your passwords matched this search.": "Keines Ihrer Passwörter entsprach dieser Suche.", "not available": "nicht verfügbar", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Hinweis: Administratoren können Benutzer hinzufügen und löschen; Sie können auch Gruppen erstellen und Gruppen Manager zuordnen; Standardmäßig können sie nicht alle Passwörter sehen.", "Number of recovery": "Anzahl der Wiederherstellung", "Number of words": "Anzahl der Wörter", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Nur Administratoren können Benutzer zur Registrierung einladen.", "Only administrators would be able to invite users to register. ": "Nur Administratoren könnten Benutzer zur Registrierung einladen. ", "Only numeric characters allowed.": "Nur numerische Zeichen erlaubt.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Nur aktivierte Benutzer (AD) synchronisieren", "Only the group manager can add new people to a group.": "Nur der Gruppenmanager kann neue Personen zu einer Gruppe hinzufügen.", "Oops, something went wrong": "Hoppla, etwas ist schief gelaufen", @@ -570,26 +579,29 @@ "Otherwise, you may lose access to your data.": "Andernfalls können Sie den Zugriff auf Ihre Daten verlieren.", "Owned by me": "Gehört mir", "Passbolt is available on AppStore & PlayStore": "Passbolt ist im AppStore & PlayStore erhältlich", - "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", + "Passbolt is available on the Windows store.": "Passbolt ist im Windows Store verfügbar.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt benötigt einen SMTP-Server, um Einladungs-E-Mails nach der Erstellung eines Kontos zu versenden und E-Mail-Benachrichtigungen zu senden.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Passphrase", "Passphrase required": "Passphrase erforderlich", - "Passphrase settings": "Passphrase settings", + "Passphrase settings": "Passphrase-Einstellungen", "Password": "Passwort", "Password Generator": "Passwort-Generator", - "Password generator default settings": "Password generator default settings", + "Password generator default settings": "Passwort-Generator Standardeinstellungen", "Password must be a valid string": "Passwort muss ein gültiger String sein", - "Password Policy": "Password Policy", + "Password Policy": "Passwortrichtlinie", "passwords": "Passwörter", "Passwords": "Passwörter", - "Passwords settings": "Passwords settings", + "Passwords settings": "Passwörter Einstellungen", "Paste the OpenPGP Private key here": "Den privaten OpenPGP Schlüssel hier einfügen", "Pending": "Ausstehend", "Pick a color and enter three characters.": "Wählen Sie eine Farbe und geben Sie drei Zeichen ein.", "Please authenticate with the Single Sign-On provider to continue.": "Bitte authentifizieren Sie sich beim Single Sign-On-Anbieter, um fortzufahren.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.", + "Please contact your administrator to enable multi-factor authentication.": "Bitte kontaktieren Sie Ihren Administrator, um die Multi-Faktor-Authentifizierung zu aktivieren.", "Please contact your administrator to enable the account recovery feature.": "Bitte kontaktieren Sie Ihren Administrator, um die Kontowiederherstellungsfunktion zu aktivieren.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Bitte wenden Sie sich an Ihren Administrator, um einen Einladungslink anzufordern.", "Please double check with the user in case they still need some help to log in.": "Bitte überprüfen Sie mit dem Benutzer, falls er oder sie noch Hilfe benötigt, um sich anzumelden.", "Please download one of these browsers to get started with passbolt:": "Bitte laden Sie einen dieser Browser herunter, um mit Passbolt zu beginnen:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Bitte geben Sie Ihre Passphrase ein um fortzufahren.", "Please enter your passphrase.": "Bitte geben Sie Ihre Passphrase ein.", "Please enter your private key to continue.": "Bitte geben Sie Ihren privaten Schlüssel ein, um fortzufahren.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Bitte installieren Sie die Browser-Erweiterung.", "Please make sure there is at least one group manager.": "Bitte stellen Sie sicher, dass es mindestens einen Gruppenmanager gibt.", "Please make sure there is at least one owner.": "Bitte stellen Sie sicher, dass es mindestens einen Eigentümer gibt.", @@ -701,16 +714,18 @@ "Secret": "Geheimnis", "Secret expiry": "Geheimnis-Gültigkeitsdauer", "Secret key": "Geheimschlüssel", + "Secure": "Secure", "Security token": "Sicherheitstoken", "See error details": "Fehlerdetails anzeigen", "See list": "Liste anzeigen", "See structure": "Struktur anzeigen", "See the {settings.provider.name} documentation": "Siehe die {settings.provider.name} -Dokumentation", + "Select a file": "Select a file", "Select a file to import": "Datei zum Importieren auswählen", "Select a provider": "Anbieter auswählen", "Select all": "Alle auswählen", "Select user": "Benutzer wählen", - "Selected set of characters": "Selected set of characters", + "Selected set of characters": "Ausgewählter Zeichensatz", "Self Registration": "Selbstregistrierung", "Send": "Senden", "Send test email": "Test-E-Mail senden", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Etwas ist schief gelaufen, der Login ist mit folgendem Fehler fehlgeschlagen:", "Something went wrong!": "Etwas ist schiefgelaufen!", "Sorry the account recovery feature is not enabled for this organization.": "Die Kontowiederherstellungsfunktion ist für diese Organisation leider nicht aktiviert.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "Entschuldigung, aktuell können Sie nur einen Schlüssel-Satz verwalten", "Sorry your subscription is either missing or not readable.": "Ihr Abonnement leider fehlt oder ist nicht lesbar.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Leider ist es nicht möglich, fortzufahren. Der erste QR-Code ist leer.", @@ -807,7 +824,7 @@ "Test settings": "Test-Einstellungen", "Test settings report": "Einstellungsbericht testen", "Test Single Sign-On configuration": "Single Sign-On Konfiguration testen", - "The account kit has been downloaded successfully.": "The account kit has been downloaded successfully.", + "The account kit has been downloaded successfully.": "Das Konto-Kit wurde erfolgreich heruntergeladen.", "The account recovery request does not exist.": "Die Anfrage zur Kontowiederherstellung existiert nicht.", "The account recovery review has been saved successfully": "Die Überprüfung der Kontowiederherstellung wurde erfolgreich gespeichert", "The account recovery subscription setting has been updated.": "Die Einstellung zur Kontowiederherstellung wurde aktualisiert.", @@ -819,14 +836,14 @@ "The base DN (default naming context) for the domain.": "Der Basis-DN (Standard-Namenskontext) für die Domain.", "The comment has been added successfully": "Der Kommentar wurde erfolgreich hinzugefügt", "The comment has been deleted successfully": "Der Kommentar wurde erfolgreich gelöscht", - "The configuration has been disabled as it needs to be checked to make it correct before using it.": "The configuration has been disabled as it needs to be checked to make it correct before using it.", - "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.", - "The current passphrase configuration generates passphrases that are not strong enough.": "The current passphrase configuration generates passphrases that are not strong enough.", - "The current password configuration generates passwords that are not strong enough.": "The current password configuration generates passwords that are not strong enough.", + "The configuration has been disabled as it needs to be checked to make it correct before using it.": "Die Konfiguration wurde deaktiviert, da sie überprüft werden muss, um sie vor der Verwendung korrekt zu machen.", + "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "Die aktuelle Konfiguration kommt aus der Umgebungsvariable, wenn Sie sie speichern, wird sie überschrieben und kommt stattdessen aus der Datenbank.", + "The current passphrase configuration generates passphrases that are not strong enough.": "Die aktuelle Passphrasenkonfiguration erzeugt Passphrasen, die nicht stark genug sind.", + "The current password configuration generates passwords that are not strong enough.": "Die aktuelle Passwortkonfiguration erzeugt Passwörter, die nicht stark genug sind.", "The default admin user is the user that will perform the operations for the the directory.": "Der standard Admin führt die Operationen für das Verzeichnis aus.", "The default group manager is the user that will be the group manager of newly created groups.": "Der standard Gruppen-Admin ist der Gruppenmanager von neu erstellten Gruppen.", "The default language of the organisation.": "Die Standardsprache der Organisation.", - "The default type is": "The default type is", + "The default type is": "Der Standardtyp ist", "The description content will be encrypted.": "Der Beschreibungsinhalt wird verschlüsselt.", "The description has been updated successfully": "Die Beschreibung wurde erfolgreich aktualisiert", "The dialog has been closed.": "Der Dialog wurde geschlossen.", @@ -866,7 +883,7 @@ "The organization private recovery key should not be stored in passbolt.": "Der private Wiederherstellungsschlüssel der Organisation sollte nicht in Passbolt gespeichert werden.", "The organization recovery policy has been updated successfully": "Die Wiederherstellungsrichtlinie der Organisation wurde erfolgreich aktualisiert", "The passphrase from the SSO kit doesn't match your private key: {{error}}": "Die Passphrase aus dem SSO-Kit stimmt nicht mit Ihrem privaten Schlüssel überein: {{error}}", - "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required", + "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "Der Passphrasengenerator generiert eine genug starke Passphrase. Mindestens {{minimum}} Bits sind erforderlich", "The passphrase is invalid.": "Die Passphrase ist ungültig.", "The passphrase is part of an exposed data breach.": "Die Passphrase ist Teil einer exponierten Datenbruch.", "The passphrase is stored on your device and never sent server side.": "Die Passphrase wird auf Ihrem Gerät gespeichert und niemals an den Server gesendet.", @@ -874,19 +891,20 @@ "The passphrase should not be empty.": "Die Passphrase sollte nicht leer sein.", "The passphrase should not be part of an exposed data breach.": "Die Passphrase sollte nicht Teil eines exponierten Datenbruchs sein.", "The passphrase was updated!": "Die Passphrase wurde aktualisiert!", - "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", + "The passphrase word count must be set to 4 at least": "Die Wortanzahl der Passphrase muss mindestens 4 sein", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "Die Passphrase, die Sie bei der Kontowiederherstellung festgelegt haben, wird benötigt, um den Vorgang abzuschließen.", - "The password field is not defined.": "Das Passwortfeld ist nicht definiert.", - "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", + "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "Der Passwortgenerator generiert ein genug starkes Passwort. Mindestens {{minimum}} Bits sind erforderlich", "The password has been added as a favorite": "Das Passwort wurde als Favorit hinzugefügt", "The password has been added successfully": "Das Passwort wurde erfolgreich hinzugefügt", "The password has been copied to clipboard": "Das Passwort wurde in die Zwischenablage kopiert", "The password has been removed from favorites": "Das Passwort wurde aus den Favoriten entfernt", "The password has been updated successfully": "Das Passwort wurde erfolgreich aktualisiert", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Das Passwort ist leer.", "The password is part of an exposed data breach.": "Das Passwort ist Teil einer offengelegten Datenschutzverletzung.", - "The password length must be set to 8 at least": "The password length must be set to 8 at least", - "The password policy settings were updated.": "The password policy settings were updated.", + "The password length must be set to 8 at least": "Die Passwortlänge muss mindestens auf 8 gesetzt sein", + "The password policy settings were updated.": "Die Einstellungen für die Kennwortrichtlinien wurden aktualisiert.", "The passwords have been exported successfully": "Die Passwörter wurden erfolgreich exportiert", "The permalink has been copied to clipboard": "Der Permalink wurde in die Zwischenablage kopiert", "The permissions do not match the destination folder permissions.": "Die Berechtigungen stimmen nicht mit den Berechtigungen des Zielordners überein.", @@ -906,7 +924,6 @@ "The Secret expiry is required": "Geheimnis-Gültigkeitsdauer ist erforderlich", "The secret has been copied to clipboard": "Das Geheimnis wurde in die Zwischenablage kopiert", "The Secret is required": "Das Geheimnis ist erforderlich", - "The secret plaintext is empty.": "Der geheime Klartext ist leer.", "The security token code should be 3 characters long.": "Der Sicherheits-Token Code sollte 3 Zeichen lang sein.", "The security token code should not be empty.": "Der Sicherheits-Token Code darf nicht leer sein.", "The security token has been updated successfully": "Das Sicherheits-Token wurde erfolgreich aktualisiert", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Das Theme wurde erfolgreich aktualisiert", "The Time-based One Time Password provider is disabled for all users.": "Der zeitbasierte One Time Password Anbieter ist für alle Benutzer deaktiviert.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Der zeitbasierte One Time Password Anbieter ist für alle Benutzer aktiviert. Der Benutzer kann diesen Anbieter im Profil einrichten und ihn als Zweitfaktor-Authentifizierung verwenden.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Die Übertragung wurde abgebrochen, weil der andere Client einen Fehler zurückgegeben hat.", "The uri has been copied to clipboard": "Die URI wurde in die Zwischenablage kopiert", "The URL to provide to Azure when registering the application.": "Die URL, die Azure bei der Registrierung der Anwendung zur Verfügung stellt.", @@ -936,12 +955,13 @@ "The user has been deleted successfully": "Der Benutzer wurde erfolgreich gelöscht", "The user has been updated successfully": "Der Benutzer wurde erfolgreich aktualisiert", "The user is not a member of any group yet": "Der Benutzer ist noch kein Mitglied einer Gruppe", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "Die Zuordnung des Benutzernamen-Feldes darf nicht leer sein", "The user username field mapping cannot exceed 128 characters.": "Die Zuordnung des Benutzernamensfeldes darf 128 Zeichen nicht überschreiten.", "The user who requested an account recovery does not exist.": "Der Benutzer, der eine Kontowiederherstellung angefordert hat, existiert nicht.", "The username has been copied to clipboard": "Der Benutzername wurde in die Zwischenablage kopiert", "The username should be a valid username address.": "Der Benutzername sollte eine gültige Benutzernamen Adresse sein.", - "The words separator should be at a maximum of 10 characters long": "The words separator should be at a maximum of 10 characters long", + "The words separator should be at a maximum of 10 characters long": "Das Wörtertrennzeichen sollte maximal 10 Zeichen lang sein", "The Yubikey provider is disabled for all users.": "Der Yubikey-Anbieter ist für alle Benutzer deaktiviert.", "The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Der Yubikey-Anbieter ist für alle Nutzer aktiviert. Sie können diesen Anbieter in ihrem Profil einrichten und ihn als Zweitfaktor-Authentifizierung verwenden.", "Theme": "Benutzeroberfläche", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "Dies ist die E-Mail-Adresse, die Benutzer in ihrem Postfach sehen, wenn Passbolt eine Benachrichtigung sendet. 1>Es ist eine gängige Praxis, eine funktionierende E-Mail-Adresse anzugeben, auf die Benutzer antworten können.", "this is the maximum size for this field, make sure your data was not truncated": "dies ist die maximale Größe für dieses Feld. Stellen Sie sicher, dass Ihre Daten nicht abgeschnitten wurden.", "This is the name users will see in their mailbox when passbolt sends a notification.": "Dies ist der Name, den Benutzer in ihrem Postfach sehen, wenn Passbolt eine Benachrichtigung sendet.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Diese Passphrase ist die einzige Passphrase, welche Sie sich von nun an merken müssen. Wählen gut aus!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Dieses Sicherheits-Token wird angezeigt, wenn Ihre Passphrase angefordert wird, damit Sie leicht überprüfen können, dass das Formular von Passbolt herstellt wurde.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Dieses Sicherheits-Token wird angezeigt, wenn Ihre Passphrase angefordert wird, damit Sie leicht überprüfen können, dass das Formular von Passbolt herstellt wurde.", @@ -979,10 +1000,11 @@ "Time-based One Time Password": "Zeitbasiertes einmaliges Passwort", "Tips for choosing a good passphrase": "Tipps zur Auswahl einer guten Passphrase", "TLS must be set to 'Yes' or 'No'": "TLS muss auf 'Ja' oder 'Nein' gesetzt sein", + "TOTP": "TOTP", "Transfer complete!": "Transfer abgeschlossen!", "Transfer in progress...": "Transfer läuft...", "Transfer your account key": "Kontoschlüssel übertragen", - "Transfer your account kit": "Transfer your account kit", + "Transfer your account kit": "Übertrage dein Konto-Kit", "Try again": "Erneut versuchen", "Try another search or use the left panel to navigate into your organization.": "Versuchen Sie eine andere Suche oder verwenden Sie das linke Fenster, um in Ihre Organisation zu navigieren.", "Try another search or use the left panel to navigate into your passwords.": "Versuchen Sie eine andere Suche oder verwenden Sie das linke Fenster, um zu Ihren Passwörtern zu navigieren.", @@ -1007,6 +1029,7 @@ "updated": "aktualisiert", "upload": "Upload", "Upload a new avatar picture": "Neues Avatar-Bild hochladen", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Großbuchstaben", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "Individuelle Benutzerfilter werden zusätzlich zum Basis-DN und Benutzerpfad während der Benutzersuche verwendet.", "User ids": "Benutzer-IDs", "User object class": "Benutzer-Objektklasse", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Benutzerpfad", "User path is used in addition to base DN while searching users.": "Der Benutzerpfad wird zusätzlich zur Basis-DN bei der Suche von Benutzern verwendet.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "Benutzer-Selbstregistrierung ermöglicht Benutzern mit einer E-Mail von einer Whitelist-Domain ein Passbolt-Konto, ohne vorherige Einladung eines Administrators zu erstellen.", @@ -1061,11 +1086,12 @@ "Welcome back!": "Willkommen zurück!", "Welcome to Passbolt, please select a passphrase!": "Willkommen bei Passbolt, bitte wählen Sie eine Passphrase!", "Welcome to passbolt!": "Willkommen bei Passbolt!", - "Welcome to the desktop app setup": "Welcome to the desktop app setup", + "Welcome to the desktop app setup": "Willkommen beim Desktop-App-Setup", "Welcome to the mobile app setup": "Willkommen bei der Einrichtung der mobilen App", "What if I forgot my passphrase?": "Was passiert, wenn ich mein Passwort vergessen habe?", - "What is password policy?": "What is password policy?", + "What is password policy?": "Was ist eine Passwortrichtlinie?", "What is the role of the passphrase?": "Welche Rolle spielt die Passphrase?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "Was ist eine Benutzerregistrierung?", "When a comment is posted on a password, notify the users who have access to this password.": "Wenn ein Kommentar zu einem Passwort veröffentlicht wird, benachrichtige die Benutzer*innen, die Zugang zu diesem Passwort haben.", "When a folder is created, notify its creator.": "Wenn ein Ordner erstellt wurde, benachrichtige dessen Ersteller*in.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Wenn Benutzer*innen aus einer Gruppe entfernt werden, benachrichtige diese.", "When users completed the recover of their account, notify them.": "Wenn Benutzer die Wiederherstellung ihres Kontos abgeschlossen haben, benachrichtigen Sie sie.", "When users try to recover their account, notify them.": "Wenn Benutzer*innen versuchen, ihr Konto wiederherzustellen, benachrichtige diese.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Wo finde ich?", "Why do I need an SMTP server?": "Warum brauche ich einen SMTP-Server?", "Why is this token needed?": "Warum wird dieser Token benötigt?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "Sie können das Standardverhalten der Multi-Faktor-Authentifizierung für alle Benutzer auswählen.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Sie finden diese neu importierten Passwörter im Ordner <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Sie finden diese neu importierten Passwörter unter dem Tag <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Sie können eine weitere Einladungs-E-Mail anfordern, indem Sie auf den unteren Button klicken.", "You can restart this process if you want to configure another phone.": "Sie können diesen Prozess neu starten, wenn Sie ein anderes Telefon konfigurieren möchten.", - "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "Sie können im Passwortgenerator die Zeichensätze für die Passwörter auswählen, die zufällig durch Passbolt generiert werden.", + "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "Sie können die Standardlänge für die Passphrasen festlegen, die zufällig durch Passbolt im Passwortgenerator generiert werden.", + "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "Sie können die Standardlänge für die Passwörter festlegen, die im Passwortgenerator von Passbolt zufällig generiert werden.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Sie können diese Gruppe nicht löschen!", "You cannot delete this user!": "Sie können diesen Benutzer nicht löschen!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Sie besitzen noch keine Passwörter. Es fühlt sich hier etwas leer an, erstellen Sie Ihr erstes Passwort.", "You need to click save for the changes to take place.": "Sie müssen auf Speichern klicken, um die Änderungen durchzuführen.", "You need to enter your current passphrase.": "Sie müssen Ihre aktuelle Passphrase eingeben.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Sie müssen den Prozess der Kontowiederherstellung mit dem gleichen Computer abschließen, den Sie für die Kontowiederherstellungsanfrage verwendet haben.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Sie müssen den gleichen Computer und den gleichen Browser verwenden, um den Prozess abzuschließen.", "You need your passphrase to continue.": "Sie benötigen Ihre Passphrase, um fortzufahren.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Anscheinend haben Sie E-Mail-Benachrichtigungseinstellungen in Ihrer passbolt.php (oder über Umgebungsvariablen) definiert.", diff --git a/src/locales/en-UK/common.json b/src/locales/en-UK/common.json index fe48bf9ff..c277cd88e 100644 --- a/src/locales/en-UK/common.json +++ b/src/locales/en-UK/common.json @@ -88,6 +88,7 @@ "Accept new key": "Accept new key", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "Access to this service requires an invitation.", + "Account kit": "Account kit", "Account recovery": "Account recovery", "Account Recovery": "Account Recovery", "Account recovery enrollment": "Account recovery enrollment", @@ -122,6 +123,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Allowed domains", "Allows Azure and Passbolt API to securely share information.": "Allows Azure and Passbolt API to securely share information.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -249,6 +251,7 @@ "currently:": "currently:", "Customer id:": "Customer id:", "Decrypting": "Decrypting", + "Decrypting secret": "Decrypting secret", "Decryption failed, click here to retry": "Decryption failed, click here to retry", "Default": "Default", "Default admin": "Default admin", @@ -332,6 +335,7 @@ "Enter the password and/or key file": "Enter the password and/or key file", "Enter the private key used by your organization for account recovery": "Enter the private key used by your organization for account recovery", "entropy:": "entropy:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Error", "Error details": "Error details", "Error, this is not the current organization recovery key.": "Error, this is not the current organization recovery key.", @@ -349,6 +353,7 @@ "Export": "Export", "Export all": "Export all", "Export passwords": "Export passwords", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Fair", "FAQ: Why are my emails not sent?": "FAQ: Why are my emails not sent?", @@ -370,6 +375,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "For Openldap only. Defines which group object to use.", "For Openldap only. Defines which user object to use.": "For Openldap only. Defines which user object to use.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -380,6 +386,7 @@ "Generate a new password securely": "Generate a new password securely", "Generate new key instead": "Generate new key instead", "Generate password": "Generate password", + "Get started !": "Get started !", "Get started in 5 easy steps": "Get started in 5 easy steps", "Go back": "Go back", "Go to MFA settings": "Go to MFA settings", @@ -432,12 +439,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "If you still need to recover your account, you will need to start the process from scratch.", "Ignored:": "Ignored", "Import": "Import", + "Import account": "Import account", "Import an OpenPGP Public key": "Import an OpenPGP Public key", + "Import another account": "Import another account", "Import folders": "Import folders", "Import passwords": "Import passwords", "Import success!": "Import success!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.", "In this section you can choose the default behavior of account recovery for all users.": "In this section you can choose the default behavior of account recovery for all users.", @@ -450,13 +460,8 @@ "Invalid permission type for share permission item.": "Invalid permission type for share permission item.", "is owner": "is owner", "Is owner": "Is owner", - "It contains letters and numbers": "It contains letters and numbers", - "It contains lower and uppercase characters": "It contains lower and uppercase characters", - "It contains special characters (like / or * or %)": "It contains special characters (like / or * or %)", "It does feel a bit empty here.": "It does feel a bit empty here.", - "It is at least 8 characters in length": "It is at least 8 characters in length", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?", - "It is not part of an exposed data breach": "It is not part of an exposed data breach", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.", @@ -505,6 +510,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobile Apps", "Mobile setup": "Mobile setup", "Mobile transfer": "Mobile transfer", @@ -561,6 +568,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.", "None of your passwords matched this search.": "None of your passwords matched this search.", "not available": "not available", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.", "Number of recovery": "Number of recovery", "Number of words": "Number of words", @@ -574,6 +582,7 @@ "Only administrators can invite users to register.": "Only administrators can invite users to register.", "Only administrators would be able to invite users to register. ": "Only administrators would be able to invite users to register. ", "Only numeric characters allowed.": "Only numeric characters allowed.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Only synchronize enabled users (AD)", "Only the group manager can add new people to a group.": "Only the group manager can add new people to a group.", "Oops, something went wrong": "Oops, something went wrong", @@ -600,7 +609,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt is available on AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Passphrase", "Passphrase required": "Passphrase required", "Passphrase settings": "Passphrase settings", @@ -617,7 +627,9 @@ "Pick a color and enter three characters.": "Pick a color and enter three characters.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.", + "Please contact your administrator to enable multi-factor authentication.": "Please contact your administrator to enable multi-factor authentication.", "Please contact your administrator to enable the account recovery feature.": "Please contact your administrator to enable the account recovery feature.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Please contact your administrator to request an invitation link.", "Please double check with the user in case they still need some help to log in.": "Please double check with the user in case they still need some help to log in.", "Please download one of these browsers to get started with passbolt:": "Please download one of these browsers to get started with passbolt:", @@ -631,6 +643,7 @@ "Please enter your passphrase to continue.": "Please enter your passphrase to continue.", "Please enter your passphrase.": "Please enter your passphrase.", "Please enter your private key to continue.": "Please enter your private key to continue.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Please install the browser extension.", "Please make sure there is at least one group manager.": "Please make sure there is at least one group manager.", "Please make sure there is at least one owner.": "Please make sure there is at least one owner.", @@ -729,11 +742,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Secret key", + "Secure": "Secure", "Security token": "Security token", "See error details": "See error details", "See list": "See list", "See structure": "See structure", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "Select a file to import", "Select a provider": "Select a provider", "Select all": "Select all", @@ -792,6 +807,8 @@ "Something went wrong, the sign in failed with the following error:": "Something went wrong, the sign in failed with the following error:", "Something went wrong!": "Something went wrong!", "Sorry the account recovery feature is not enabled for this organization.": "Sorry the account recovery feature is not enabled for this organization.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "sorry you can only have one key set at the moment", "Sorry your subscription is either missing or not readable.": "Sorry your subscription is either missing or not readable.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Sorry, it is not possible to proceed. The first QR code is empty.", @@ -904,7 +921,6 @@ "The passphrase was updated!": "The passphrase was updated!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "The passphrase you defined when initiating the account recovery is required to complete the operation.", - "The password field is not defined.": "The password field is not defined.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "The password has been added as a favorite", "The password has been added successfully": "The password has been added successfully", @@ -913,6 +929,8 @@ "The password has been deleted successfully_other": "The passwords have been deleted successfully", "The password has been removed from favorites": "The password has been removed from favorites", "The password has been updated successfully": "The password has been updated successfully", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "The password is empty.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -936,7 +954,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "The secret has been copied to clipboard", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "The secret plaintext is empty.", "The security token code should be 3 characters long.": "The security token code should be 3 characters long.", "The security token code should not be empty.": "The security token code should not be empty.", "The security token has been updated successfully": "The security token has been updated successfully", @@ -957,6 +974,9 @@ "The theme has been updated successfully": "The theme has been updated successfully", "The Time-based One Time Password provider is disabled for all users.": "The Time-based One Time Password provider is disabled for all users.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.", + "The totp has been copied to clipboard": "The totp has been copied to clipboard", + "The totp is empty and cannot be copied to clipboard.": "The totp is empty and cannot be copied to clipboard.", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "The transfer was cancelled because the other client returned an error.", "The uri has been copied to clipboard": "The uri has been copied to clipboard", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -966,6 +986,7 @@ "The user has been deleted successfully": "The user has been deleted successfully", "The user has been updated successfully": "The user has been updated successfully", "The user is not a member of any group yet": "The user is not a member of any group yet", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "The user who requested an account recovery does not exist.", @@ -994,6 +1015,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "This passphrase is the only passphrase you will need to remember from now on, choose wisely!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.", @@ -1009,6 +1031,7 @@ "Time-based One Time Password": "Time-based One Time Password", "Tips for choosing a good passphrase": "Tips for choosing a good passphrase", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "Transfer complete!", "Transfer in progress...": "Transfer in progress...", "Transfer your account key": "Transfer your account key", @@ -1037,6 +1060,7 @@ "updated": "updated", "upload": "upload", "Upload a new avatar picture": "Upload a new avatar picture", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Upper case", "URI": "URI", @@ -1051,6 +1075,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "User ids", "User object class": "User object class", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "User path", "User path is used in addition to base DN while searching users.": "User path is used in addition to base DN while searching users.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1096,6 +1122,7 @@ "What if I forgot my passphrase?": "What if I forgot my passphrase?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "What is the role of the passphrase?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "When a comment is posted on a password, notify the users who have access to this password.", "When a folder is created, notify its creator.": "When a folder is created, notify its creator.", @@ -1124,6 +1151,7 @@ "When users are removed from a group, notify them.": "When users are removed from a group, notify them.", "When users completed the recover of their account, notify them.": "When users completed the recover of their account, notify them.", "When users try to recover their account, notify them.": "When users try to recover their account, notify them.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "Why is this token needed?", @@ -1151,18 +1179,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "You can find these newly imported passwords in the folder <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "You can find these newly imported passwords under the tag <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "You can request another invitation email by clicking on the button below.", "You can restart this process if you want to configure another phone.": "You can restart this process if you want to configure another phone.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "You cannot delete this group!", "You cannot delete this user!": "You cannot delete this user!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "You do not own any passwords yet. It does feel a bit empty here, create your first password.", "You need to click save for the changes to take place.": "You need to click save for the changes to take place.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "You need to finalize the account recovery process with the same computer you used for the account recovery request.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "You need use the same computer and browser to finalize the process.", "You need your passphrase to continue.": "You need your passphrase to continue.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).", diff --git a/src/locales/es-ES/common.json b/src/locales/es-ES/common.json index b9a56ec92..dffbc9dbd 100644 --- a/src/locales/es-ES/common.json +++ b/src/locales/es-ES/common.json @@ -62,6 +62,7 @@ "Accept new key": "Aceptar nueva clave", "Accept the new SSO provider": "Aceptar el nuevo proveedor de SSO", "Access to this service requires an invitation.": "El acceso a este servicio requiere una invitación.", + "Account kit": "Account kit", "Account recovery": "Recuperación de la cuenta", "Account Recovery": "Recuperación de la cuenta", "Account recovery enrollment": "Inscripción de recuperación de la cuenta", @@ -96,12 +97,13 @@ "Allow": "Permitir", "Allow “Remember this device for a month.“ option during MFA.": "Permitir “Recordar este dispositivo durante un mes.“ opción durante la MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Dominios permitidos", "Allows Azure and Passbolt API to securely share information.": "Permita que Azure y Passbolt API compartan información de forma segura.", "Allows Google and Passbolt API to securely share information.": "Permita que Google y Passbolt API compartan información de forma segura.", "Also delete items inside this folder.": "Elimine también los elementos dentro de esta carpeta.", "Alternatively you can also get in touch with support on community forum or via the paid support channels.": "También puede ponerse en contacto con soporte en el foro de la comunidad o a través de los canales de soporte pagados.", - "An account kit is required to transfer your profile and private key to the desktop app.": "An account kit is required to transfer your profile and private key to the desktop app.", + "An account kit is required to transfer your profile and private key to the desktop app.": "Se requiere un kit de cuenta para transferir su perfil y clave privada a la aplicación de escritorio.", "An email is required.": "Se requiere un correo electrónico.", "An error occured during the sign-in via SSO.": "Se ha producido un error durante el inicio de sesión a través del SSO.", "An organization key is required.": "Se necesita una clave de organización.", @@ -223,6 +225,7 @@ "currently:": "actualmente:", "Customer id:": "ID del cliente:", "Decrypting": "Descifrando", + "Decrypting secret": "Desencriptando secreto", "Decryption failed, click here to retry": "Error al descifrar, pulsa aquí para reintentar", "Default": "Predeterminado", "Default admin": "Administrador predeterminado", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Introduzca la contraseña y/o el archivo de clave", "Enter the private key used by your organization for account recovery": "Introduzca la clave privada utilizada por su organización para la recuperación de cuenta", "entropy:": "entropía:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Error", "Error details": "Detalles del error", "Error, this is not the current organization recovery key.": "Error, esta no es la clave actual de recuperación de la organización.", @@ -321,6 +325,7 @@ "Export": "Exportar", "Export all": "Exportar todo", "Export passwords": "Exportar contraseñas", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Justo", "FAQ: Why are my emails not sent?": "Preguntas Frecuentes: ¿Por qué no se envían mis correos electrónicos?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Para más información sobre los ajustes de políticas de AMF, consulte la página dedicada en el sitio web de ayuda.", "For more information about SSO, checkout the dedicated page on the help website.": "Para más información acerca del SSO, consulte la página dedicada en el sitio web de ayuda.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Sólo para Openldap. Define qué grupo se desea usar.", "For Openldap only. Defines which user object to use.": "Solo para Openldap. Determina qué usuario se desea usar.", "For security reasons please check with your administrator that this is a change that they initiated.": "Por razones de seguridad, por favor compruebe con su administrador que este es un cambio que iniciaron.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Generar una nueva contraseña de forma segura", "Generate new key instead": "Generar nueva clave en su lugar", "Generate password": "Generar contraseña", + "Get started !": "Empezar !", "Get started in 5 easy steps": "Empieza en 5 sencillos pasos", "Go back": "Volver", "Go to MFA settings": "Ir a la configuración de MFA", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Si todavía necesita recuperar su cuenta, necesitará iniciar el proceso desde cero.", "Ignored:": "Ignorado", "Import": "Importar", + "Import account": "Import account", "Import an OpenPGP Public key": "Importar una clave pública OpenPGP", + "Import another account": "Import another account", "Import folders": "Importar carpetas", "Import passwords": "Importar contraseñas", "Import success!": "¡Importación exitosa!", "Import/Export": "Importar/Exportar", "Important notice:": "Aviso importante:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "Para utilizar el método de autenticación "Nombre de usuario y contraseña" con Google, necesitará activar MFA en su cuenta de Google. La contraseña no debe ser su contraseña de inicio de sesión, tiene que crear una "Contraseña de la aplicación" generada por Google. Sin embargo, el correo electrónico sigue siendo el mismo.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "En esta sección puedes ajustar la composición de los correos electrónicos. Por ejemplo, qué información se incluirá en la notificación.", "In this section you can choose the default behavior of account recovery for all users.": "En esta sección puede elegir el comportamiento predeterminado de la recuperación de la cuenta para todos los usuarios.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Tipo de permiso inválido para elemento de permiso compartido.", "is owner": "es propietario", "Is owner": "Es propietario", - "It contains letters and numbers": "Contiene letras y números", - "It contains lower and uppercase characters": "Contiene caracteres en minúsculas y en mayúsculas", - "It contains special characters (like / or * or %)": "Contiene caracteres especiales (como / o * o %)", "It does feel a bit empty here.": "Parece un poco vacío esto.", - "It is at least 8 characters in length": "Tiene al menos 8 caracteres de largo", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Es obligatorio compartir de forma segura una copia de su clave privada con los contactos de recuperación de su organización. ¿Desea continuar?", - "It is not part of an exposed data breach": "No es parte de una violación de datos expuesta", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "No es posible realizar una configuración de una nueva cuenta ya que todavía está conectado. Necesita cerrar la sesión primero antes de continuar.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "No es posible realizar la recuperación de su cuenta ya que todavía está conectado. Necesita cerrar la sesión antes de continuar.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "No es posible recuperar su clave privada de su cuenta ya que todavía está conectado. Necesita cerrar la sesión primero antes de continuar.", @@ -477,6 +482,8 @@ "Metadata": "Metadatos", "MFA": "MFA", "MFA Policy": "Política de MFA", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Aplicaciones móviles", "Mobile setup": "Configuración del teléfono móvil", "Mobile transfer": "Transferencia del teléfono móvil", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "No tiene ninguna contraseña marcada como favorita. Añada estrellas a las contraseñas que desee encontrar facilmente.", "None of your passwords matched this search.": "Ninguna de las contraseñas coincide con esta búsqueda.", "not available": "no está disponible", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Nota: Los administradores pueden añadir y borrar usuarios; también pueden crear grupos y assignar administradores de grupos; por defecto no pueden ver todas las contraseñas.", "Number of recovery": "Número de recuperación", "Number of words": "Número de palabras", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Solo los administradores pueden invitar a los usuarios a registrarse.", "Only administrators would be able to invite users to register. ": "Solo los administradores podrían invitar a los usuarios a registrarse. ", "Only numeric characters allowed.": "Sólo se permiten caracteres numéricos.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Sincronizar solo usuarios habilitados (AD)", "Only the group manager can add new people to a group.": "Solo el administrador del grupo puede añadir nuevos miembros a un grupo.", "Oops, something went wrong": "Ups, algo salió mal", @@ -570,9 +579,10 @@ "Otherwise, you may lose access to your data.": "De lo contrario, puede perder el acceso a sus datos.", "Owned by me": "Mío", "Passbolt is available on AppStore & PlayStore": "Passbolt está disponible en AppStore & PlayStore", - "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", + "Passbolt is available on the Windows store.": "Passbolt está disponible en la tienda de Windows.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt necesita un servidor SMTP para enviar mensajes de invitación después de la creación de una cuenta y para enviar notificaciones por correo electrónico.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Contraseña", "Passphrase required": "Se requiere contraseña", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Escoge un color e introduce tres caracteres.", "Please authenticate with the Single Sign-On provider to continue.": "Por favor, autentifíquese con el proveedor de inicio de sesión único para continuar.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Por favor, confirme que realmente desea eliminar las contraseñas. Después de hacer clic en ok, las contraseñas se eliminarán permanentemente.", + "Please contact your administrator to enable multi-factor authentication.": "Póngase en contacto con su administrador para habilitar la autenticación de múltiples factores.", "Please contact your administrator to enable the account recovery feature.": "Póngase en contacto con su administrador para activar la función de recuperación de la cuenta.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Por favor contacte a su administrador para solicitar un enlace de invitación.", "Please double check with the user in case they still need some help to log in.": "Por favor, compruebe con el usuario en caso de que necesite ayuda para iniciar sesión.", "Please download one of these browsers to get started with passbolt:": "Por favor, descargue uno de estos navegadores para empezar con Passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Por favor, introduzca su contraseña para continuar.", "Please enter your passphrase.": "Por favor, introduzca su contraseña.", "Please enter your private key to continue.": "Bienvenido, por favor ingrese su clave privada para continuar.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Por favor, instale la extensión del navegador.", "Please make sure there is at least one group manager.": "Por favor, asegúrese de que hay al menos un administrador de grupo.", "Please make sure there is at least one owner.": "Por favor, asegúrese de que haya al menos un propietario.", @@ -697,15 +710,17 @@ "Search passwords": "Buscar contraseñas", "Search users": "Buscar usuarios", "Search:": "Buscar:", - "secret": "secret", + "secret": "secreto", "Secret": "Secreto", "Secret expiry": "Caducidad del secreto", "Secret key": "Clave secreta", + "Secure": "Secure", "Security token": "Token de seguridad", "See error details": "Ver detalles del error", "See list": "Ver lista", "See structure": "Ver estructura", "See the {settings.provider.name} documentation": "Ver la documentación de {settings.provider.name}", + "Select a file": "Select a file", "Select a file to import": "Seleccione un archivo a importar", "Select a provider": "Seleccione un proveedor", "Select all": "Seleccionar todo", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Algo salió mal, el inicio de sesión falló con el siguiente error:", "Something went wrong!": "¡Algo salió mal!", "Sorry the account recovery feature is not enabled for this organization.": "Lo sentimos, la función de recuperación de cuenta no está habilitada para esta organización.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "lo sentimos, solo puedes tener una clave configurada en este momento", "Sorry your subscription is either missing or not readable.": "Lo sentimos, tu suscripción no está disponible o no se puede leer.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Lo sentimos, no es posible continuar. El primer código QR está vacío.", @@ -819,7 +836,7 @@ "The base DN (default naming context) for the domain.": "El DN base (contexto de nomenclatura por defecto) para el dominio.", "The comment has been added successfully": "El comentario ha sido añadido correctamente", "The comment has been deleted successfully": "El comentario se ha eliminado correctamente", - "The configuration has been disabled as it needs to be checked to make it correct before using it.": "The configuration has been disabled as it needs to be checked to make it correct before using it.", + "The configuration has been disabled as it needs to be checked to make it correct before using it.": "La configuración ha sido desactivada porque tiene que ser comprobada para que sea correcta antes de usarla.", "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.", "The current passphrase configuration generates passphrases that are not strong enough.": "The current passphrase configuration generates passphrases that are not strong enough.", "The current password configuration generates passwords that are not strong enough.": "The current password configuration generates passwords that are not strong enough.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "¡La contraseña ha sido actualizada!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "La contraseña que definió al iniciar la recuperación de la cuenta es necesaria para completar la operación.", - "The password field is not defined.": "El campo de contraseña no está definido.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "La contraseña ha sido añadida marcada como favorita", "The password has been added successfully": "La contraseña se ha añadido correctamente", "The password has been copied to clipboard": "La contraseña ha sido copiada al portapapeles", "The password has been removed from favorites": "La contraseña ha sido quitada de favoritas", "The password has been updated successfully": "La contraseña se ha actualizado correctamente", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "La contraseña está vacía.", "The password is part of an exposed data breach.": "La contraseña es parte de una brecha de datos expuesta.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "Se requiere la caducidad del secreto", "The secret has been copied to clipboard": "La clave ha sido copiada al portapapeles", "The Secret is required": "Se requiere el secreto", - "The secret plaintext is empty.": "El texto secreto está vacío.", "The security token code should be 3 characters long.": "El código de token de seguridad debe tener 3 caracteres.", "The security token code should not be empty.": "El código de token de seguridad no debe estar vacío.", "The security token has been updated successfully": "El token de seguridad se ha actualizado correctamente", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "La apariencia ha sido actualizada correctamente", "The Time-based One Time Password provider is disabled for all users.": "El proveedor de una contraseña única, basado en el tiempo, está deshabilitado para todos los usuarios.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "El proveedor Duo está habilitado para todos los usuarios. Pueden configurar este proveedor en su perfil y usarlo como factor de autenticación de segundo paso.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "La transferencia se canceló porque el otro cliente devolvió un error.", "The uri has been copied to clipboard": "El uri ha sido copiado al portapapeles", "The URL to provide to Azure when registering the application.": "La URL para proporcionar a Azure cuando se registra la aplicación.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "El usuario ha sido eliminado correctamente", "The user has been updated successfully": "El usuario ha sido actualizado correctamente", "The user is not a member of any group yet": "El usuario aún no es miembro de ningún grupo", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "La asignación del campo de nombre de usuario no puede estar vacío", "The user username field mapping cannot exceed 128 characters.": "La asignación del campo de nombre de usuario no puede exceder los 128 caracteres.", "The user who requested an account recovery does not exist.": "El usuario que ha solicitado una recuperación de cuenta no existe.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "Esta es la dirección de correo electrónico que los usuarios verán en su casilla de correo cuando Passbolt envíe una notificación.<1>Es una buena práctica proporcionar una dirección de correo electrónico que funcione a la que los usuarios puedan responder.", "this is the maximum size for this field, make sure your data was not truncated": "este es el tamaño máximo para este campo, asegúrese de que sus datos no han sido truncados.", "This is the name users will see in their mailbox when passbolt sends a notification.": "Este es el nombre que los usuarios verán en su buzón de correo cuando Passbolt envíe una notificación.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Esta contraseña es la única contraseña que necesitarás recordar a partir de ahora, ¡elige sabiamente!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Este token de seguridad se mostrará cuando se solicite su contraseña, por lo que puede verificar rápidamente que el formulario proviene de passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Este token de seguridad se mostrará cuando se solicite su contraseña, por lo que puede verificar rápidamente que el formulario proviene de passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Contraseña de un solo uso basada en el tiempo", "Tips for choosing a good passphrase": "Consejos para elegir una buena frase de contraseña", "TLS must be set to 'Yes' or 'No'": "El TLS debe estar configurado como 'Sí' o 'No'", + "TOTP": "TOTP", "Transfer complete!": "¡Transferencia completada!", "Transfer in progress...": "Transferencia en curso...", "Transfer your account key": "Transfiere su clave de cuenta", @@ -1007,6 +1029,7 @@ "updated": "actualizado", "upload": "subir", "Upload a new avatar picture": "Subir una nueva imagen de avatar", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Mayúsculas", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "Los filtros personalizados de usuario se utilizan además del DN base y la ruta del usuario durante la búsqueda de usuarios.", "User ids": "Id de usuario", "User object class": "Clase de objeto de usuario", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Ruta del usuario", "User path is used in addition to base DN while searching users.": "La ruta de usuario se utiliza además de la base de DN durante la búsqueda de usuarios.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "El auto-registro de usuario permite a los usuarios con un correo electrónico de un dominio en la lista blanca crear su cuenta de Passbolt sin previa invitación de un administrador.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "¿Qué pasa si olvido mi contraseña?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "¿Cuál es el papel de la frase de contraseña?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "¿Qué es el auto-registro de usuarios?", "When a comment is posted on a password, notify the users who have access to this password.": "Cuando se publique un comentario en una contraseña, notificar a los usuarios que tengan acceso a esta contraseña.", "When a folder is created, notify its creator.": "Cuando se cree una carpeta, notifíquelo a su autor.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Cuando se eliminen usuarios de un grupo, notifíquelo.", "When users completed the recover of their account, notify them.": "Cuando los usuarios completen la recuperación de su cuenta, notifíqueselo.", "When users try to recover their account, notify them.": "Cuando los usuarios traten de recuperar su cuenta, notifíqueselo.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "¿Dónde encontrarlo?", "Why do I need an SMTP server?": "¿Por qué necesito un servidor SMTP?", "Why is this token needed?": "¿Por qué es necesario este token?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "Puede elegir el comportamiento predeterminado de la Autenticación Multi Factor para todos los usuarios.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Puede encontrar estas contraseñas recién importadas en la carpeta <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Puede encontrar estas contraseñas recién importadas en la etiqueta <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Puede solicitar otro correo electrónico de invitación haciendo clic en el siguiente botón.", "You can restart this process if you want to configure another phone.": "Puede reiniciar este proceso si quiere configurar otro teléfono.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "¡No puedes eliminar este grupo!", "You cannot delete this user!": "¡No puedes eliminar este usuario!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Aún no tienes ninguna contraseña. Está esto un poco vacío, crea tu primera contraseña.", "You need to click save for the changes to take place.": "Debes pulsar en guardar para que se realicen los cambios.", "You need to enter your current passphrase.": "Necesita introducir su contraseña actual.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Necesita finalizar el proceso de recuperación de la cuenta con el mismo equipo que utilizó para la solicitud de recuperación de la cuenta.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Necesita utilizar el mismo ordenador y navegador para finalizar el proceso.", "You need your passphrase to continue.": "Necesitas tu contraseña para continuar.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Parece que tienes la configuración de notificación por correo electrónico definida en tu passbolt.php (o mediante variables de entorno).", diff --git a/src/locales/fr-FR/common.json b/src/locales/fr-FR/common.json index 90d065a98..cc6e8638f 100644 --- a/src/locales/fr-FR/common.json +++ b/src/locales/fr-FR/common.json @@ -62,6 +62,7 @@ "Accept new key": "Accepter la nouvelle clé", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "L'accès à ce service requiert une invitation.", + "Account kit": "Account kit", "Account recovery": "Récupération de compte", "Account Recovery": "Récupération de compte", "Account recovery enrollment": "Inscription à la récupération du compte", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Domaines autorisés", "Allows Azure and Passbolt API to securely share information.": "Permet à Azure et l'API Passbolt de partager des informations de manière sécurisée.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "actuellement:", "Customer id:": "Identifiant du client:", "Decrypting": "Déchiffrement", + "Decrypting secret": "Déchiffrement du secret", "Decryption failed, click here to retry": "Le déchiffrement a échoué, cliquez ici pour réessayer", "Default": "Valeur par défaut", "Default admin": "Administrateur par défaut", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Entrer le mot de passe et/ou le fichier clé", "Enter the private key used by your organization for account recovery": "Tapez la clé privée utilisée par votre organisation pour la récupération de votre compte", "entropy:": "entropie :", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Erreur", "Error details": "Détails des erreurs", "Error, this is not the current organization recovery key.": "Erreur, ce n'est pas la clé de récupération de l'organisation actuelle.", @@ -321,6 +325,7 @@ "Export": "Exporter", "Export all": "Exporter tout", "Export passwords": "Exporter les mots de passe", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Convenable", "FAQ: Why are my emails not sent?": "FAQ: Pourquoi mes e-mails ne sont-ils pas envoyés ?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Pour Openldap seulement. Définit quel groupe l'objet à utiliser.", "For Openldap only. Defines which user object to use.": "Pour Openldap seulement. Définit quel objet utilisateur utiliser.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Générer un nouveau mot de passe de manière sécurisée", "Generate new key instead": "Générer une nouvelle clé à la place", "Generate password": "Générer un mot de passe", + "Get started !": "Démarrer !", "Get started in 5 easy steps": "Démarrez en 5 étapes simples", "Go back": "Retour en arrière", "Go to MFA settings": "Go to MFA settings", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Si vous avez encore besoin de récupérer votre compte, vous devrez démarrer le processus à partir de zéro.", "Ignored:": "Ignoré", "Import": "Importer", + "Import account": "Import account", "Import an OpenPGP Public key": "Importer une clé publique OpenPGP", + "Import another account": "Import another account", "Import folders": "Importer les dossiers", "Import passwords": "Importer des mots de passe", "Import success!": "Importés avec succès!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "Dans cette section, vous pouvez ajuster la composition des e-mails, par exemple quelles informations seront incluses dans la notification.", "In this section you can choose the default behavior of account recovery for all users.": "Dans cette section, vous pouvez choisir le comportement par défaut de récupération de compte pour tous les utilisateurs.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Type d'autorisation invalide pour l'élément d'autorisation de partage.", "is owner": "est propriétaire", "Is owner": "Est propriétaire", - "It contains letters and numbers": "Cela contient des lettres et des chiffres", - "It contains lower and uppercase characters": "Cela contient des caractères minuscules et majuscules", - "It contains special characters (like / or * or %)": "Cela contient des caractères spéciaux (comme / ou * ou %)", "It does feel a bit empty here.": "Cela semble un peu vide ici.", - "It is at least 8 characters in length": "La longueur est d'au moins 8 caractères", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Il est obligatoire de partager en toute sécurité une copie de votre clé privée avec les contacts de récupération de votre entreprise. Voulez-vous continuer ?", - "It is not part of an exposed data breach": "Il ne fait pas partie d'une fuite de données connue", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Il n'est pas possible d'effectuer une configuration d'un nouveau compte car vous êtes toujours connecté. Vous devez vous déconnecter avant de continuer.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Il n'est pas possible d'effectuer la récupération de votre compte car vous êtes toujours connecté. Vous devez d'abord vous déconnecter avant de continuer.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Il n'est pas possible de récupérer votre clé privée de votre compte car vous êtes toujours connecté. Vous devez d'abord vous déconnecter avant de continuer.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Applications mobiles", "Mobile setup": "Configuration mobile", "Mobile transfer": "Transfert mobile", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Aucun de vos mots de passe n'est encore marqué comme favori. Ajoutez des étoiles aux mots de passe que vous souhaitez facilement retrouver plus tard.", "None of your passwords matched this search.": "Aucun de vos mots de passe ne correspond à cette recherche.", "not available": "indisponible", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Remarque : Les administrateurs peuvent ajouter et supprimer des utilisateurs ; ils peuvent également créer des groupes et assigner des gestionnaires de groupe ; par défaut, ils ne peuvent pas voir tous les mots de passe.", "Number of recovery": "Numéro de récupération", "Number of words": "Nombre de mots", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Seuls les administrateurs peuvent inviter des utilisateurs à s'inscrire.", "Only administrators would be able to invite users to register. ": "Seuls les administrateurs pourront inviter des utilisateurs à s'inscrire. ", "Only numeric characters allowed.": "Seuls les caractères numériques sont autorisés.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Synchroniser uniquement les utilisateurs actifs (AD)", "Only the group manager can add new people to a group.": "Seul le responsable du groupe peut ajouter de nouvelles personnes à un groupe.", "Oops, something went wrong": "Oups, une erreur s'est produite", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt est disponible sur l'AppStore et le PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt a besoin d'un serveur smtp pour envoyer des e-mails d'invitation après la création d'un compte et pour envoyer des notifications par e-mail.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Phrase de passe", "Passphrase required": "Phrase de passe requise", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Choisissez une couleur et entrez trois caractères.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Veuillez confirmer que vous voulez vraiment supprimer ces mots de passe. Après avoir cliqué sur OK, les mots de passe seront supprimés définitivement.", + "Please contact your administrator to enable multi-factor authentication.": "Veuillez contacter votre administrateur pour activer l'authentification multi-facteurs.", "Please contact your administrator to enable the account recovery feature.": "Veuillez contacter votre administrateur pour activer la fonction de récupération de compte.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Veuillez contacter votre administrateur pour demander un lien d'invitation.", "Please double check with the user in case they still need some help to log in.": "Veuillez vérifier auprès de l'utilisateur si celui-ci a encore besoin d'aide pour se connecter.", "Please download one of these browsers to get started with passbolt:": "Veuillez télécharger l'un de ces navigateurs pour commencer avec Passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Veuillez entrer votre phrase de passe pour continuer.", "Please enter your passphrase.": "Veuillez saisir votre phrase de passe.", "Please enter your private key to continue.": "Veuillez entrer votre clé privée pour continuer.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Veuillez installer l'extension de navigateur.", "Please make sure there is at least one group manager.": "Veuillez vous assurer qu'il y a au moins un responsable du groupe.", "Please make sure there is at least one owner.": "Veuillez vous assurer qu'il y a au moins un propriétaire.", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Clé secrète", + "Secure": "Secure", "Security token": "Jeton de sécurité", "See error details": "Voir les détails de l'erreur", "See list": "Voir la liste", "See structure": "Voir la structure", "See the {settings.provider.name} documentation": "Voir la documentation de {settings.provider.name}", + "Select a file": "Select a file", "Select a file to import": "Sélectionnez un fichier à importer", "Select a provider": "Sélectionnez un fournisseur", "Select all": "Sélectionner tout", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Quelque chose s'est mal passé, le connexion de l'utilisateur a échouée avec l'erreur suivante :", "Something went wrong!": "Quelque chose s'est mal passé!", "Sorry the account recovery feature is not enabled for this organization.": "Désolé, la fonction de récupération de compte n'est pas activée pour cette organisation.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "désolé, vous ne pouvez avoir qu'une seule clé pour le moment", "Sorry your subscription is either missing or not readable.": "Désolé, votre soubscription est soit manquante soit illisible.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Désolé, il est impossible de continuer. Le premier QR code est vide.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "La phrase de passe a été mise à jour !", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "La phrase de passe que vous avez définie lors de l'initialisation de la récupération du compte est requise pour terminer l'opération.", - "The password field is not defined.": "Le champ mot de passe n'est pas défini", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Le mot de passe a été ajouté comme favori", "The password has been added successfully": "Le mot de passe a été ajouté avec succès", "The password has been copied to clipboard": "Le mot de passe a été copié dans le presse-papier", "The password has been removed from favorites": "Le mot de passe a été supprimé des favoris", "The password has been updated successfully": "Le mot de passe a été mis à jour avec succès", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Le mot de passe est vide.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "Le mot de passe a été copié dans le presse-papier", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "Le texte secret en clair est vide.", "The security token code should be 3 characters long.": "Le code du jeton de sécurité doit comporter 3 caractères.", "The security token code should not be empty.": "Le code du jeton de sécurité ne doit pas être vide.", "The security token has been updated successfully": "Le jeton de sécurité a été mis à jour avec succès", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Le thème a été mis à jour avec succès", "The Time-based One Time Password provider is disabled for all users.": "Le fournisseur de mot de passe à usage unique basé sur le temps est désactivé pour tous les utilisateurs.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Le fournisseur de mot de passe à usage unique basé sur le temps (TOTP) est activé pour tous les utilisateurs. Ils peuvent configurer ce fournisseur dans leur profil et l'utiliser comme authentification de second facteur.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Le transfert a été annulé car l'autre client a renvoyé une erreur.", "The uri has been copied to clipboard": "L'uri a été copié dans le presse-papier", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "L'utilisateur a été supprimé avec succès", "The user has been updated successfully": "L'utilisateur a été mis à jour avec succès", "The user is not a member of any group yet": "L'utilisateur n'est encore membre d'aucun groupe", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "L'utilisateur qui a demandé une récupération de compte n'existe pas.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "Ceci est l'adresse e-mail que les utilisateurs verront dans leur boîte mail quand passbolt envoie une notification.<1>C'est une bonne pratique de fournir une adresse e-mail fonctionnelle à laquelle les utilisateurs peuvent répondre.", "this is the maximum size for this field, make sure your data was not truncated": "il s'agit de la taille maximale pour ce champ, assurez-vous que vos données n'aient pas été tronquées.", "This is the name users will see in their mailbox when passbolt sends a notification.": "Ceci est le nom que les utilisateurs verront dans leur boîte aux lettres quand passbolt envoie une notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Cette phrase de passe est la seule phrase de passe que vous aurez besoin de vous rappeler à partir de maintenant, choisissez judicieusement!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Ce jeton de sécurité sera affiché lorsque votre phrase de passe vous sera demandée, afin que vous puissiez vérifier rapidement que le formulaire provient bien de passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Ce jeton de sécurité sera affiché lorsque votre phrase de passe vous sera demandée, afin que vous puissiez vérifier rapidement que le formulaire provient bien de passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Mot de passe à usage unique basé sur le temps (TOTP)", "Tips for choosing a good passphrase": "Conseils pour choisir une bonne phrase de passe", "TLS must be set to 'Yes' or 'No'": "TLS doit être paramétré à 'Oui' ou 'Non'", + "TOTP": "TOTP", "Transfer complete!": "Transfert terminé !", "Transfer in progress...": "Transfert en cours...", "Transfer your account key": "Transférer votre clé de compte", @@ -1007,6 +1029,7 @@ "updated": "mis à jour", "upload": "téléverser", "Upload a new avatar picture": "Uploader une nouvelle photo", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Majuscule", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "Identifiants utilisateur", "User object class": "Classe d'objet utilisateur", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Chemin des utilisateurs", "User path is used in addition to base DN while searching users.": "Le chemin des utilisateurs est utilisé en plus de la base DN lors de la recherche d'utilisateurs.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "Que faire si j'ai oublié ma phrase de passe ?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Quel est le rôle de la phrase de passe?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "Lorsqu'un commentaire est publié sur un mot de passe, informer les utilisateurs qui ont accès à ce mot de passe.", "When a folder is created, notify its creator.": "Lorsqu'un dossier est créé, informer son créateur.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Lorsque des utilisateurs sont retirés d'un groupe, les informer.", "When users completed the recover of their account, notify them.": "Lorsque des utilisateurs ont terminé la récupération de leur compte, les informer.", "When users try to recover their account, notify them.": "Lorsque les utilisateurs essaient de récupérer leur compte, les informer.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Pourquoi ai-je besoin d'un serveur SMTP ?", "Why is this token needed?": "Pourquoi ce jeton est-il nécessaire ?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Vous pouvez trouver ces nouveaux mots de passe importés dans le dossier <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Vous pouvez trouver ces nouveaux mots de passe importés sous le tag <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Vous pouvez demander un autre e-mail d'invitation en cliquant sur le bouton ci-dessous.", "You can restart this process if you want to configure another phone.": "Vous pouvez redémarrer ce processus si vous voulez configurer un autre téléphone.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Vous ne pouvez pas supprimer ce groupe!", "You cannot delete this user!": "Vous ne pouvez pas supprimer cet utilisateur!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Vous ne possédez pas encore de mot de passe. On se sent un peu seul ici, créer votre premier mot de passe.", "You need to click save for the changes to take place.": "Vous devez cliquer sur enregistrer pour que les modifications prennent effet.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Vous devez finaliser le processus de récupération du compte avec le même ordinateur que celui que vous avez utilisé pour la demande de récupération du compte.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Vous devez utiliser le même ordinateur et le même navigateur pour finaliser le processus.", "You need your passphrase to continue.": "Vous avez besoin de votre phrase de passe pour continuer.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Vous semblez avoir des paramètres de notification par e-mail définis dans votre passbolt.php (ou via des variables d'environnement).", diff --git a/src/locales/it-IT/common.json b/src/locales/it-IT/common.json index 81aff6387..373c936d4 100644 --- a/src/locales/it-IT/common.json +++ b/src/locales/it-IT/common.json @@ -28,14 +28,14 @@ "<0>Warning: These are the settings provided by a configuration file. If you save it, will ignore the settings on file and use the ones from the database.": "<0>Attenzione: Queste sono le impostazioni fornite da un file di configurazione. Salvando, verranno ignorate le impostazioni presenti nel file, e verranno utilizzate quelle presenti nel database.", "<0>Warning: This secret will expire after some time (typically a few months). Make sure you save the expiry date and rotate it on time.": "<0>Attenzione: Questo segreto scadrà dopo un determinato periodo (di solito alcuni mesi). Assicurarsi di salvare la data di scadenza, e di ruotarla in tempo.", "<0>Warning: UPN is not active by default on Azure and requires a specific option set on Azure to be working.": "<0>Warning: UPN is not active by default on Azure and requires a specific option set on Azure to be working.", - "1. Click download the account kit.": "1. Click download the account kit.", + "1. Click download the account kit.": "1. Clicca sul pulsante \"Scarica il kit account\".", "1. Install the application from the store.": "1. Installa l'applicazione dallo store.", "2. Install the application from the store.": "2. Installa l'applicazione dallo store.", "2. Open the application on your phone.": "2. Apri l'applicazione sul telefono.", "3. Click start, here, in your browser.": "3. Premi il pulsante \"start\" nel browser.", - "3. Open the application.": "3. Open the application.", + "3. Open the application.": "3. Apri l'applicazione.", "4. Scan the QR codes with your phone.": "4. Scansiona i codici QR con il telefono.", - "4. Upload the account kit on the desktop app.": "4. Upload the account kit on the desktop app.", + "4. Upload the account kit on the desktop app.": "4. Carica il kit account sull'app desktop.", "5. And you are done!": "5. Finito!", "A comment is required.": "È richiesto un commento.", "A comment must be less than 256 characters": "Un commento deve essere inferiore a 256 caratteri", @@ -62,6 +62,7 @@ "Accept new key": "Accetta la nuova chiave", "Accept the new SSO provider": "Accetta il nuovo provider SSO", "Access to this service requires an invitation.": "L'accesso a questo servizio richiede l'invito.", + "Account kit": "Account kit", "Account recovery": "Recupero dell'account", "Account Recovery": "Recupero dell'account", "Account recovery enrollment": "Registrazione per il recupero dell'account", @@ -95,13 +96,14 @@ "All users": "Tutti gli utenti", "Allow": "Consenti", "Allow “Remember this device for a month.“ option during MFA.": "Consentire l'opzione “Ricorda questo dispositivo per un mese.“ durante la MFA.", - "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if a password has been compromised.": "Consenti a Passbolt di accedere a servizi esterni per verificare se una password è stata compromessa.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Domini consentiti", "Allows Azure and Passbolt API to securely share information.": "Consente alle API Azure e Passbolt di condividere informazioni in modo sicuro.", "Allows Google and Passbolt API to securely share information.": "Consente alle API di Google e di Passbolt di condividere informazioni in modo sicuro.", "Also delete items inside this folder.": "Elimina anche gli oggetti all'interno di questa cartella.", "Alternatively you can also get in touch with support on community forum or via the paid support channels.": "In alternativa, puoi chiedere aiuto nel forum della community, o attraverso i canali di assistenza a pagamento.", - "An account kit is required to transfer your profile and private key to the desktop app.": "An account kit is required to transfer your profile and private key to the desktop app.", + "An account kit is required to transfer your profile and private key to the desktop app.": "Per trasferire il profilo e la chiave privata sull'app desktop è necessario un kit account.", "An email is required.": "È richiesto un indirizzo email.", "An error occured during the sign-in via SSO.": "Si è verificato un errore durante l'accesso tramite SSO.", "An organization key is required.": "È richiesta una chiave dell'organizzazione.", @@ -119,7 +121,7 @@ "Are you sure you want to disable the current Single Sign-On settings?": "Sei sicuro di voler disattivare le attuali impostazioni Single Sign-On?", "Are you sure?": "Sei sicuro?", "As soon as an administrator validates your request you will receive an email link to complete the process.": "Non appena un amministratore convaliderà la tua richiesta, riceverai via email un link per completare il processo.", - "At least 1 set of characters must be selected": "At least 1 set of characters must be selected", + "At least 1 set of characters must be selected": "È necessario selezionare almeno 1 set di caratteri", "Authentication method": "Metodo di autenticazione", "Authentication token is missing from server response.": "Nella risposta del server manca il token di autenticazione.", "Avatar": "Avatar", @@ -223,13 +225,14 @@ "currently:": "corrente:", "Customer id:": "ID cliente:", "Decrypting": "Decifratura", + "Decrypting secret": "Decriptazione del segreto", "Decryption failed, click here to retry": "Decifratura non riuscita, clicca qui per riprovare", "Default": "Predefinito", "Default admin": "Admin predefinito", "Default group admin": "Amministratore di gruppo predefinito", "Default password type": "Default password type", "Default users multi factor authentication policy": "Criteri predefiniti di autenticazione multi-fattore degli utenti", - "Defines the Azure login behaviour by prompting the user to fully login each time or not.": "Defines the Azure login behaviour by prompting the user to fully login each time or not.", + "Defines the Azure login behaviour by prompting the user to fully login each time or not.": "Definisce il comportamento di login di Azure invitando l'utente a eseguire o meno un login completo ogni volta.", "Defines which Azure field needs to be used as Passbolt username.": "Stabilisce quale campo di Azure deve essere utilizzato come nome utente Passbolt.", "Delete": "Elimina", "Delete comment?": "Eliminare il commento?", @@ -244,7 +247,7 @@ "deleted": "cancellato", "Deny": "Deny", "Description": "Descrizione", - "Desktop app setup": "Desktop app setup", + "Desktop app setup": "Configurazione app desktop", "Directory (tenant) ID": "ID Directory (tenant)", "Directory configuration": "Configurazione della cartella", "Directory group's users field to map to Passbolt group's field.": "Directory group's users field to map to Passbolt group's field.", @@ -267,10 +270,10 @@ "Download again": "Scarica di nuovo", "Download backup": "Scarica il backup", "Download extension": "Scarica l'estensione", - "Download the desktop app": "Download the desktop app", + "Download the desktop app": "Scarica l'app desktop", "Download the kit again!": "Scarica di nuovo il kit!", "Download the mobile app": "Scarica l'applicazione mobile", - "Download your account kit": "Download your account kit", + "Download your account kit": "Scarica il kit account", "Edit": "Modifica", "Edit Avatar": "Modifica l'Avatar", "Edit group": "Modifica il gruppo", @@ -304,11 +307,12 @@ "Enter the password and/or key file": "Inserire la password e/o il file chiave", "Enter the private key used by your organization for account recovery": "Inserisci la chiave privata utilizzata dalla tua organizzazione per il recupero dell'account", "entropy:": "entropia:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Errore", "Error details": "Dettagli dell'errore", "Error, this is not the current organization recovery key.": "Errore, questa non è la chiave di ripristino dell'organizzazione corrente.", "Errors:": "Errori", - "Estimated entropy": "Estimated entropy", + "Estimated entropy": "Entropia stimata", "Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in.": "Ogni utente può decidere di fornire una copia della propria chiave privata e password per impostazione predefinita durante la configurazione, ma può sempre scegliere diversamente.", "Every user is required to provide a copy of their private key and passphrase during setup.": "Ogni utente è tenuto a fornire una copia della propria chiave privata e frase segreta durante la configurazione.", "Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out.": "Ogni utente può decidere di fornire una copia della propria chiave privata e password per impostazione predefinita durante la configurazione, ma può sempre rinunciarvi.", @@ -321,7 +325,8 @@ "Export": "Esporta", "Export all": "Esporta tutto", "Export passwords": "Esporta le password", - "External services": "External services", + "External password dictionary check": "External password dictionary check", + "External services": "Servizi esterni", "Fair": "Accettabile", "FAQ: Why are my emails not sent?": "FAQ: Perché le mie email non vengono inviate?", "Favorite": "Preferito", @@ -341,7 +346,8 @@ "For more information about email notification, checkout the dedicated page on the help website.": "Per ulteriori informazioni sulle notifiche via email, controlla la pagina dedicata sul nostro sito web nella sezione d'aiuto.", "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Per ulteriori informazioni sulle impostazioni dei criteri MFA, consulta la pagina dedicata sul nostro sito web nella sezione d'aiuto.", "For more information about SSO, checkout the dedicated page on the help website.": "Per ulteriori informazioni su SSO, controlla la pagina dedicata sul nostro sito web nella sezione d'aiuto.", - "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the password policy settings, checkout the dedicated page on the help website.": "Pere ulteriori informazioni sulle impostazioni dei criteri della password, consulta la pagina dedicata sul nostro sito web nella sezione di aiuto.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Solo per Openldap. Definisci quale gruppo di oggetti usare.", "For Openldap only. Defines which user object to use.": "Solo per Openldap. Definisci quale oggetto utente usare.", "For security reasons please check with your administrator that this is a change that they initiated.": "Per motivi di sicurezza, verifica con l'amministratore che si tratti di una modifica iniziata.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Genera una nuova password in modo sicuro", "Generate new key instead": "Genera invece una nuova chiave", "Generate password": "Genera una password", + "Get started !": "Cominciamo !", "Get started in 5 easy steps": "Inizia in 5 semplici passi", "Go back": "Torna indietro", "Go to MFA settings": "Vai alle impostazioni MFA", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Se hai ancora bisogno di recuperare il tuo account, dovrai avviare il processo da zero.", "Ignored:": "Ignorato", "Import": "Importa", + "Import account": "Import account", "Import an OpenPGP Public key": "Importa una chiave pubblica OpenPGP", + "Import another account": "Import another account", "Import folders": "Importa cartelle", "Import passwords": "Importa le password", "Import success!": "Importazione riuscita!", "Import/Export": "Importa/Esporta", "Important notice:": "Avviso importante:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "Per utilizzare il metodo di autenticazione "Nome utente e Password" con Google, è necessario attivare MFA sul tuo Account Google. La password non deve essere uguale a quella di login, è necessario creare una "Password per l'app" generata da Google. Tuttavia l'email rimane la stessa.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "In questa sezione è possibile modificare la composizione delle email, ad esempio quali informazioni saranno incluse nella notifica.", "In this section you can choose the default behavior of account recovery for all users.": "In questa sezione è possibile scegliere il comportamento predefinito di recupero account per tutti gli utenti.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Tipo di autorizzazione non valido per l'elemento di autorizzazione di condivisione.", "is owner": "è proprietario", "Is owner": "È proprietario", - "It contains letters and numbers": "Contiene lettere e numeri", - "It contains lower and uppercase characters": "Contiene caratteri minuscoli e maiuscoli", - "It contains special characters (like / or * or %)": "Contiene caratteri speciali (Es. / * %)", "It does feel a bit empty here.": "Sembra un po' vuoto qui.", - "It is at least 8 characters in length": "Ha una lunghezza di almeno 8 caratteri", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "È obbligatorio condividere in modo sicuro una copia della tua chiave privata con i contatti di recupero della tua organizzazione. Vuoi continuare?", - "It is not part of an exposed data breach": "Non fa parte di una violazione dei dati esposti", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Non è possibile eseguire una configurazione di un nuovo account se si è ancora connessi. Devi prima disconnetterti prima di continuare.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Non è possibile eseguire il ripristino del tuo account se si è ancora connessi. Devi prima disconnetterti prima di continuare.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Non è possibile eseguire il ripristino della tua chiave privata del tuo account se si è ancora connessi. Devi prima disconnetterti prima di continuare.", @@ -474,9 +479,11 @@ "Mandatory": "Obbligatorio", "Member": "Membro", "Members": "Membri", - "Metadata": "Metadata", + "Metadata": "Metadati", "MFA": "MFA", "MFA Policy": "Criteri MFA", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Applicazioni Mobile", "Mobile setup": "Configurazione mobile", "Mobile transfer": "Trasferimento da mobile", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Nessuna delle tue password è ancora contrassegnata come preferita. Aggiungi stelle alle password che vuoi trovare facilmente più tardi.", "None of your passwords matched this search.": "Nessuna delle tue password corrisponde a questa ricerca.", "not available": "non disponibile", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Nota: gli amministratori possono aggiungere ed eliminare gli utenti; possono anche creare gruppi e assegnare gestori di gruppo; Per impostazione predefinita non possono vedere tutte le password.", "Number of recovery": "Numero di recupero", "Number of words": "Numero di parole", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Solo gli amministratori possono invitare gli utenti a registrarsi.", "Only administrators would be able to invite users to register. ": "Solo gli amministratori potrebbero invitare gli utenti a registrarsi. ", "Only numeric characters allowed.": "Sono ammessi solo caratteri numerici.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Sincronizza solo gli utenti abilitati (AD)", "Only the group manager can add new people to a group.": "Solo il gestore del gruppo può aggiungere nuove persone a un gruppo.", "Oops, something went wrong": "Ops, qualcosa è andato storto", @@ -570,26 +579,29 @@ "Otherwise, you may lose access to your data.": "Altrimenti, potresti perdere l'accesso ai tuoi dati.", "Owned by me": "Di mia proprietà", "Passbolt is available on AppStore & PlayStore": "Passbolt è disponibile su AppStore e PlayStore", - "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", + "Passbolt is available on the Windows store.": "Passbolt è disponibile nel Microsoft Store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt usa un server SMTP per inviare e-mail di invito dopo la creazione di un account, e per inviare notifiche via e-mail.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Passphrase", "Passphrase required": "Passphrase richiesta", - "Passphrase settings": "Passphrase settings", + "Passphrase settings": "Impostazioni passphrase", "Password": "Password", "Password Generator": "Generatore di password", - "Password generator default settings": "Password generator default settings", + "Password generator default settings": "Impostazioni predefinite del generatore di password", "Password must be a valid string": "La password deve essere una stringa valida", - "Password Policy": "Password Policy", + "Password Policy": "Criteri della password", "passwords": "password", "Passwords": "Password", - "Passwords settings": "Passwords settings", + "Passwords settings": "Impostazioni password", "Paste the OpenPGP Private key here": "Copia incolla la chiave privata OpenPGP qui", "Pending": "In sospeso", "Pick a color and enter three characters.": "Scegli un colore e inserisci tre caratteri.", "Please authenticate with the Single Sign-On provider to continue.": "Per continuare, esegui l'autenticazione con il provider Single Sign-On.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Si prega di confermare che si desidera davvero eliminare le password. Dopo aver fatto clic su ok, le password verranno eliminate in modo permanente.", + "Please contact your administrator to enable multi-factor authentication.": "Si prega di contattare l'amministratore per abilitare l'autenticazione a più faattori.", "Please contact your administrator to enable the account recovery feature.": "Per favore contatta l'amministratore per abilitare la funzione di recupero dell'account.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Si prega di contattare l'amministratore per richiedere un link di invito.", "Please double check with the user in case they still need some help to log in.": "Si prega di ricontrollare con l'utente nel caso in cui abbiano ancora bisogno di aiuto per accedere.", "Please download one of these browsers to get started with passbolt:": "Si prega di scaricare uno di questi browser per iniziare con passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Inserisci la tua frase segreta per continuare.", "Please enter your passphrase.": "Inserisci la tua frase segreta.", "Please enter your private key to continue.": "Per favore inserisci la tua chiave privata per continuare.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Installa l'estensione del browser.", "Please make sure there is at least one group manager.": "Assicurati che ci sia almeno un gestore del gruppo.", "Please make sure there is at least one owner.": "Assicurati che ci sia almeno un proprietario.", @@ -629,7 +642,7 @@ "Public key block": "Blocco della chiave pubblica", "Quality": "Qualità", "Randomize": "Casuale", - "Read RBAC doc": "Read RBAC doc", + "Read RBAC doc": "Leggi documento RBAC", "Read the documentation": "Leggi la documentazione", "Recently modified": "Modifiche recenti", "Recipient": "Destinatario", @@ -701,16 +714,18 @@ "Secret": "Segreto", "Secret expiry": "Scadenza del segreto", "Secret key": "Chiave segreta", + "Secure": "Secure", "Security token": "Token di sicurezza", "See error details": "Vedi dettagli errore", "See list": "Vedi elenco", "See structure": "Vedi struttura", "See the {settings.provider.name} documentation": "Vedi la documentazione {settings.provider.name}", + "Select a file": "Select a file", "Select a file to import": "Seleziona un file da importare", "Select a provider": "Seleziona un provider", "Select all": "Seleziona tutto", "Select user": "Seleziona utente", - "Selected set of characters": "Selected set of characters", + "Selected set of characters": "Set di caratteri selezionato", "Self Registration": "Auto-registrazione", "Send": "Invia", "Send test email": "Invia e-mail di prova", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Qualcosa è andato storto, il login non è riuscito con il seguente errore:", "Something went wrong!": "Qualcosa è andato storto!", "Sorry the account recovery feature is not enabled for this organization.": "Siamo spiacenti che la funzione di recupero dell'account non sia abilitata per questa organizzazione.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "spiacente, al momento è possibile impostare una sola chiave", "Sorry your subscription is either missing or not readable.": "Ci dispiace, il tuo abbonamento è mancante o non leggibile.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Siamo spiacenti, non è possibile proseguire. Il primo codice QR è vuoto.", @@ -807,7 +824,7 @@ "Test settings": "Impostazioni prova", "Test settings report": "Test settings report", "Test Single Sign-On configuration": "Prova la configurazione Single Sign-On", - "The account kit has been downloaded successfully.": "The account kit has been downloaded successfully.", + "The account kit has been downloaded successfully.": "Il kit account è stato scaricato con successo.", "The account recovery request does not exist.": "La richiesta di recupero account non esiste.", "The account recovery review has been saved successfully": "La revisione di recupero account è stata salvata con successo", "The account recovery subscription setting has been updated.": "L'impostazione dell'abbonamento al recupero account è stata aggiornata.", @@ -819,10 +836,10 @@ "The base DN (default naming context) for the domain.": "La base DN (default naming context) per il dominio.", "The comment has been added successfully": "Il commento è stato aggiunto con successo", "The comment has been deleted successfully": "Il commento è stato eliminato con successo", - "The configuration has been disabled as it needs to be checked to make it correct before using it.": "The configuration has been disabled as it needs to be checked to make it correct before using it.", - "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.", - "The current passphrase configuration generates passphrases that are not strong enough.": "The current passphrase configuration generates passphrases that are not strong enough.", - "The current password configuration generates passwords that are not strong enough.": "The current password configuration generates passwords that are not strong enough.", + "The configuration has been disabled as it needs to be checked to make it correct before using it.": "La configurazione è stata disattivata. Deve essere controllata e resa corretta prima di usarla.", + "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "L'attuale configurazione proviene dalla variabile di ambiente. Salvandole, verranno sovrascritte e proverranno dal database.", + "The current passphrase configuration generates passphrases that are not strong enough.": "L'attuale configurazione delle passphrase genera passphrase non abbastanza sicure.", + "The current password configuration generates passwords that are not strong enough.": "L'attuale configurazione delle password genera password non abbastanza sicure.", "The default admin user is the user that will perform the operations for the the directory.": "L'utente di amministrazione predefinito è l'utente che eseguirà le operazioni per la directory.", "The default group manager is the user that will be the group manager of newly created groups.": "Il gestore di gruppo predefinito è l'utente che sarà il gestore di gruppo dei gruppi appena creati.", "The default language of the organisation.": "La lingua predefinita dell’organizzazione.", @@ -847,8 +864,8 @@ "The group has been updated successfully": "Il gruppo è stato aggiornato con successo", "The group is empty, please add a group manager.": "Il gruppo è vuoto, aggiungi un gestore di gruppo.", "The group name already exists.": "Il nome di gruppo esiste già.", - "The group users field mapping cannot be empty": "The group users field mapping cannot be empty", - "The group users field mapping cannot exceed 128 characters.": "The group users field mapping cannot exceed 128 characters.", + "The group users field mapping cannot be empty": "La mappatura del campo utenti del gruppo non può essere vuota", + "The group users field mapping cannot exceed 128 characters.": "La mappatura del campo utenti del gruppo non può superare i 128 caratteri.", "The internationalization settings were updated.": "Le impostazioni di internazionalizzazione sono state aggiornate.", "The invitation is expired.": "L'invito è scaduto.", "The invite has been resent successfully": "L'invito è stato inviato con successo", @@ -866,7 +883,7 @@ "The organization private recovery key should not be stored in passbolt.": "La chiave di recupero privata dell'organizzazione non deve essere memorizzata in Passbolt.", "The organization recovery policy has been updated successfully": "La politica di recupero dell'organizzazione è stata aggiornata con successo", "The passphrase from the SSO kit doesn't match your private key: {{error}}": "La frase segreta contenuta nel kit SSO non corrisponde alla tua chiave privata: {{error}}", - "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required", + "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "Il generatore di passphrase non genererà passphrase abbastanza sicure. È necessario un minimo di {{minimum}} bit", "The passphrase is invalid.": "Password non valida.", "The passphrase is part of an exposed data breach.": "La frase segreta fa parte di una violazione di dati nota.", "The passphrase is stored on your device and never sent server side.": "La passphrase è memorizzata sul dispositivo e non sarà mai inviata al server.", @@ -874,19 +891,20 @@ "The passphrase should not be empty.": "La frase segreta non dovrebbe essere vuota.", "The passphrase should not be part of an exposed data breach.": "La frase segreta non deve far parte di una violazione di dati nota.", "The passphrase was updated!": "La password è stata aggiornata!", - "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", + "The passphrase word count must be set to 4 at least": "Il conteggio parole della passphrase deve essere impostato almeno su 4", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "La frase segreta definita quando si avvia il recupero dell'account è necessaria per completare l'operazione.", - "The password field is not defined.": "Il campo della password non è definito.", - "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", + "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "Il generatore di password non genererà password abbastanza sicure. È necessario un minimo di {{minimum}} bit", "The password has been added as a favorite": "La password è stata aggiunta come preferita", "The password has been added successfully": "La password è stata aggiunta correttamente", "The password has been copied to clipboard": "La password è stata copiata negli appunti", "The password has been removed from favorites": "La password è stata rimossa dai preferiti", "The password has been updated successfully": "La password è stata aggiornata con successo", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "La password è vuota.", "The password is part of an exposed data breach.": "La password fa parte di una violazione di dati.", - "The password length must be set to 8 at least": "The password length must be set to 8 at least", - "The password policy settings were updated.": "The password policy settings were updated.", + "The password length must be set to 8 at least": "La lunghezza della password deve essere impostata su almeno 8", + "The password policy settings were updated.": "Le impostazioni dei criteri della password sono state aggiornate.", "The passwords have been exported successfully": "Le password sono state esportate correttamente", "The permalink has been copied to clipboard": "Il permalink è stato copiato negli appunti", "The permissions do not match the destination folder permissions.": "I permessi non corrispondono ai permessi della cartella di destinazione.", @@ -906,7 +924,6 @@ "The Secret expiry is required": "È richiesta una scadenza per il segreto", "The secret has been copied to clipboard": "Il segreto è stato copiato negli appunti", "The Secret is required": "Il segreto è richiesto", - "The secret plaintext is empty.": "Il testo segreto è vuoto.", "The security token code should be 3 characters long.": "Il codice del token di sicurezza deve essere di 3 caratteri.", "The security token code should not be empty.": "Il codice del token di sicurezza non deve essere vuoto.", "The security token has been updated successfully": "Il token di sicurezza è stato aggiornato con successo", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Il tema è stato aggiornato con successo", "The Time-based One Time Password provider is disabled for all users.": "Il provider OTP è disabilitato per tutti gli utenti.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Il provider OTP è abilitato per tutti gli utenti. Possono configurarlo nel loro profilo e usarlo come autenticazione di secondo fattore.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Il trasferimento è stato annullato perché l'altro cliente ha restituito un errore.", "The uri has been copied to clipboard": "L'uri è stato copiato negli appunti", "The URL to provide to Azure when registering the application.": "L'URL da fornire ad Azure in fase di registrazione dell'applicazione.", @@ -936,8 +955,9 @@ "The user has been deleted successfully": "L'utente è stato eliminato con successo", "The user has been updated successfully": "L'utente è stato aggiornato con successo", "The user is not a member of any group yet": "L'utente non è ancora membro di nessun gruppo", - "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", - "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", + "The user username field mapping cannot be empty": "La mappatura del campo nome utente non può essere vuota", + "The user username field mapping cannot exceed 128 characters.": "La mappatura del campo nome utente non può superare i 128 caratteri.", "The user who requested an account recovery does not exist.": "L'utente che ha richiesto il recupero dell'account non esiste.", "The username has been copied to clipboard": "Il nome utente è stato copiato negli appunti", "The username should be a valid username address.": "Il nome utente deve essere un indirizzo utente valido.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "Questo È l'indirizzo email che gli utenti vedranno nella propria casella di posta quando Passbolt invia una notifica. È buona prassi fornire un indirizzo email funzionante, a cui gli utenti possono rispondere.", "this is the maximum size for this field, make sure your data was not truncated": "questa è la dimensione massima per questo campo, assicurarsi che i dati non siano stati troncati.", "This is the name users will see in their mailbox when passbolt sends a notification.": "Questo è il nome che gli utenti vedranno nella propria casella di posta quando Passbolt invia una notifica.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Questa frase segreta è l'unica frase segreta che dovrai ricordare d'ora in poi, scegli con saggezza!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Questo token di sicurezza verrà visualizzato quando la tua frase segreta viene richiesta, in modo da poter verificare rapidamente che il modulo sia proveniente da passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Questo token di sicurezza verrà visualizzato quando la tua frase segreta viene richiesta, in modo da poter verificare rapidamente che il modulo sia proveniente da passbolt.", @@ -979,10 +1000,11 @@ "Time-based One Time Password": "Password On-Time", "Tips for choosing a good passphrase": "Suggerimenti per la scelta di una buona passphrase", "TLS must be set to 'Yes' or 'No'": "Il TLS deve essere impostato su \"Sì\" o \"No\"", + "TOTP": "TOTP", "Transfer complete!": "Trasferimento completato!", "Transfer in progress...": "Trasferimento in corso...", "Transfer your account key": "Trasferisci la chiave del tuo account", - "Transfer your account kit": "Transfer your account kit", + "Transfer your account kit": "Trasferisci il tuo kit account", "Try again": "Riprova", "Try another search or use the left panel to navigate into your organization.": "Prova un'altra ricerca o usa il pannello di sinistra per navigare nella tua organizzazione.", "Try another search or use the left panel to navigate into your passwords.": "Prova un'altra ricerca o usa il pannello di sinistra per navigare nelle tue password.", @@ -1007,6 +1029,7 @@ "updated": "aggiornato", "upload": "carica", "Upload a new avatar picture": "Carica una nuova immagine avatar", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Maiuscolo", "URI": "URI", @@ -1021,11 +1044,13 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "I filtri utente personalizzati vengono utilizzati in aggiunta al DN di base e al percorso dell'utente durante la ricerca degli utenti.", "User ids": "Ids utente", "User object class": "Classe dell'oggetto utente", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Percorso Utente", "User path is used in addition to base DN while searching users.": "Il percorso utente è usato in aggiunta alla base DN durante la ricerca degli utenti.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "L'auto-registrazione consente agli utenti in possesso di un'e-mail con dominio incluso in una whitelist di creare il proprio account Passebolt senza un precedente invito degli amministratori.", "User self registration is disabled.": "L'auto-registrazione utente è disattivata.", - "User username field mapping": "User username field mapping", + "User username field mapping": "Mappatura del campo nome utente", "Username": "Nome Utente", "Username / Email": "Nome Utente / Email", "Username & password": "Nome utente e password", @@ -1061,11 +1086,12 @@ "Welcome back!": "Bentornato!", "Welcome to Passbolt, please select a passphrase!": "Benvenuti in Passbolt, selezionare una passphrase!", "Welcome to passbolt!": "Passbolt ti da il benvenuto!", - "Welcome to the desktop app setup": "Welcome to the desktop app setup", + "Welcome to the desktop app setup": "Benvenuto nella configurazione dell'app desktop", "Welcome to the mobile app setup": "Benvenuto nella configurazione dell'app mobile", "What if I forgot my passphrase?": "Se smarrisco la mia frase segreta?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "A cosa serve la frase segreta?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "Cos'è l'auto-registrazione dell'utente?", "When a comment is posted on a password, notify the users who have access to this password.": "Quando si pubblica un commento su una password, informare gli utenti che hanno accesso alla password.", "When a folder is created, notify its creator.": "Quando si crea una cartella, avvisare il creatore.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Quando gli utenti vengono rimossi da un gruppo, avvisali.", "When users completed the recover of their account, notify them.": "Quando gli utenti hanno completato il recupero del loro account, notificarli.", "When users try to recover their account, notify them.": "Quando gli utenti tentano di recuperare il loro account, avvisali.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Dove lo trovo?", "Why do I need an SMTP server?": "A cosa serve un server SMTP?", "Why is this token needed?": "Perché è richiesto questo token?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "Puoi scegliere il comportamento predefinito dell'autenticazione multi-fattore per tutti gli utenti.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Puoi trovare queste password appena importate nella cartella <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Puoi trovare queste password appena importate sotto il tag <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Puoi richiedere un'altra email di invito cliccando sul pulsante qui sotto.", "You can restart this process if you want to configure another phone.": "È possibile riavviare questo processo se si desidera configurare un altro telefono.", - "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "È possibile selezionare il set di caratteri utilizzato per le password casuali generate da Passbolt all'interno del generatore di password.", + "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "È possibile impostare la lunghezza predefinita delle passphrase casuali generate da Passbolt all'interno del generatore di password.", + "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "È possibile impostare la lunghezza predefinita delle password casuali generate da Passbolt all'interno del generatore di password.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Non puoi eliminare questo gruppo!", "You cannot delete this user!": "Non puoi eliminare questo utente!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Non possiedi ancora alcuna password. Sembra un po' vuoto qui, crea la tua prima password.", "You need to click save for the changes to take place.": "È necessario fare clic su Salva per le modifiche da effettuare.", "You need to enter your current passphrase.": "Devi inserire la tua attuale frase segreta.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "È necessario finalizzare il processo di recupero account con lo stesso computer utilizzato per la richiesta di recupero account.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "È necessario utilizzare lo stesso computer e browser per completare il processo.", "You need your passphrase to continue.": "Per continuare è necessaria la passphrase.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Sembra che tu abbia le impostazioni di notifica e-mail definite nel tuo passbolt.php (o tramite variabili di ambiente).", diff --git a/src/locales/ja-JP/common.json b/src/locales/ja-JP/common.json index 9d7b0ee19..75e89d96d 100644 --- a/src/locales/ja-JP/common.json +++ b/src/locales/ja-JP/common.json @@ -62,6 +62,7 @@ "Accept new key": "新しい鍵を承認する", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "このサービスへのアクセスには招待が必要です。", + "Account kit": "Account kit", "Account recovery": "Account recovery", "Account Recovery": "Account Recovery", "Account recovery enrollment": "Account recovery enrollment", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Allowed domains", "Allows Azure and Passbolt API to securely share information.": "Allows Azure and Passbolt API to securely share information.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "現在:", "Customer id:": "お客様 ID:", "Decrypting": "復号中", + "Decrypting secret": "비밀번호 복호화 중", "Decryption failed, click here to retry": "復号に失敗しました。こちらをクリックして再試行してください", "Default": "デフォルト", "Default admin": "デフォルトの管理者", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "パスワードおよび/またはキーファイルを入力します", "Enter the private key used by your organization for account recovery": "Enter the private key used by your organization for account recovery", "entropy:": "エントロピー:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "エラー", "Error details": "エラーの詳細", "Error, this is not the current organization recovery key.": "Error, this is not the current organization recovery key.", @@ -321,6 +325,7 @@ "Export": "エクスポート", "Export all": "すべてエクスポート", "Export passwords": "パスワードをエクスポート", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Fair", "FAQ: Why are my emails not sent?": "FAQ: Why are my emails not sent?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Openldap 専用。使用するグループオブジェクトを定義します。", "For Openldap only. Defines which user object to use.": "Openldap 専用。使用するユーザーオブジェクトを定義します。", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "安全に新しいパスワードを生成", "Generate new key instead": "Generate new key instead", "Generate password": "パスワードの生成", + "Get started !": "Get started !", "Get started in 5 easy steps": "5つの簡単なステップで開始", "Go back": "戻る", "Go to MFA settings": "Go to MFA settings", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "If you still need to recover your account, you will need to start the process from scratch.", "Ignored:": "無視されました", "Import": "インポート", + "Import account": "Import account", "Import an OpenPGP Public key": "Import an OpenPGP Public key", + "Import another account": "Import another account", "Import folders": "フォルダをインポート", "Import passwords": "パスワードをインポート", "Import success!": "インポートに成功しました!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "このセクションでは、通知に含まれる情報など、メールの構成を調整することができます。", "In this section you can choose the default behavior of account recovery for all users.": "In this section you can choose the default behavior of account recovery for all users.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "共有パーミッション項目に対するパーミッション型が無効です。", "is owner": "さんが所有者です", "Is owner": "さんが所有者です", - "It contains letters and numbers": "文字と数字が含まれている", - "It contains lower and uppercase characters": "小文字と大文字が含まれている", - "It contains special characters (like / or * or %)": "特殊文字が含まれている (/ または * または %など)", "It does feel a bit empty here.": "ここは少し空っぽに感じます。", - "It is at least 8 characters in length": "少なくとも8文字以上", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?", - "It is not part of an exposed data breach": "It is not part of an exposed data breach", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobile Apps", "Mobile setup": "モバイル設定", "Mobile transfer": "モバイル転送", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "あなたのパスワードはまだお気に入りとしてマークされていません。後で簡単に見つけたいパスワードに星を追加してください。", "None of your passwords matched this search.": "この検索に一致するパスワードはありません。", "not available": "not available", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.", "Number of recovery": "Number of recovery", "Number of words": "単語数", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Only administrators can invite users to register.", "Only administrators would be able to invite users to register. ": "Only administrators would be able to invite users to register. ", "Only numeric characters allowed.": "数字のみ許可されています。", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "有効になっているユーザー (AD) のみ同期", "Only the group manager can add new people to a group.": "グループマネージャーのみがグループに新しい人を追加できます。", "Oops, something went wrong": "エラーが発生しました", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt is available on AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "パスボルトは、アカウント作成後に招待メールを送信したり、メール通知を送信したりするために、smtpサーバーを必要とします。", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "パスフレーズ", "Passphrase required": "パスフレーズが必要です", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "色を選択し、3文字を入力します。", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "本当にパスワードを削除したいことを確認してください。OKをクリックすると、パスワードは永久に削除されます。", + "Please contact your administrator to enable multi-factor authentication.": "多要素認証を有効にするには管理者に問い合わせてください。", "Please contact your administrator to enable the account recovery feature.": "Please contact your administrator to enable the account recovery feature.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "招待リンクをリクエストするには、管理者に連絡してください。", "Please double check with the user in case they still need some help to log in.": "Please double check with the user in case they still need some help to log in.", "Please download one of these browsers to get started with passbolt:": "Please download one of these browsers to get started with passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "続行するにはパスフレーズを入力してください.", "Please enter your passphrase.": "パスフレーズを入力してください.", "Please enter your private key to continue.": "Please enter your private key to continue.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "ブラウザ拡張機能をインストールしてください。", "Please make sure there is at least one group manager.": "グループマネージャーが少なくとも1人いることを確認してください。", "Please make sure there is at least one owner.": "所有者が少なくとも一人いることを確認してください。", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "秘密鍵", + "Secure": "Secure", "Security token": "セキュリティトークン", "See error details": "エラーの詳細を見る", "See list": "リストを見る", "See structure": "構造を見る", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "インポートするファイルを選択", "Select a provider": "Select a provider", "Select all": "Select all", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "何か問題が発生しました。次のエラーでサインインに失敗しました:", "Something went wrong!": "何か問題が発生しました!", "Sorry the account recovery feature is not enabled for this organization.": "Sorry the account recovery feature is not enabled for this organization.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "申し訳ありませんが、現時点ではキーセットは1つしか持てません", "Sorry your subscription is either missing or not readable.": "申し訳ありませんが、サブスクリプションが見つからないか、読み取り可能ではありません。", "Sorry, it is not possible to proceed. The first QR code is empty.": "申し訳ありませんが、続行できません。最初のQRコードが空です。", @@ -876,13 +893,14 @@ "The passphrase was updated!": "パスフレーズが更新されました!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "The passphrase you defined when initiating the account recovery is required to complete the operation.", - "The password field is not defined.": "パスワードフィールドが定義されていません。", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "パスワードがお気に入りとして追加されました", "The password has been added successfully": "パスワードが正常に追加されました", "The password has been copied to clipboard": "パスワードがクリップボードにコピーされました", "The password has been removed from favorites": "パスワードがお気に入りから削除されました", "The password has been updated successfully": "パスワードが正常に更新されました", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "パスワードが空です。", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "秘密をクリップボードにコピーしました", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "秘密のプレーンテキストは空です。", "The security token code should be 3 characters long.": "セキュリティトークンコードは3文字でなければなりません。", "The security token code should not be empty.": "セキュリティトークンコードは空にしないでください。", "The security token has been updated successfully": "セキュリティトークンが正常に更新されました", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "テーマが正常に更新されました", "The Time-based One Time Password provider is disabled for all users.": "時間ベースのワンタイムパスワードプロバイダーは、すべてのユーザに対して無効になっています。", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "時間ベースのワンタイムパスワードプロバイダーは、すべてのユーザに対して有効になっています。プロフィールでこのプロバイダーをセットアップし、第二要素認証として使用できます。", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "他のクライアントがエラーを返したため、転送はキャンセルされました。", "The uri has been copied to clipboard": "URIがクリップボードにコピーされました", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "ユーザーが正常に削除されました", "The user has been updated successfully": "ユーザーが正常に更新されました", "The user is not a member of any group yet": "このユーザーはまだどのグループのメンバーでもありません", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "The user who requested an account recovery does not exist.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "このパスフレーズは、これから覚えておく必要がある唯一のパスフレーズです。賢明に選択してください!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "このセキュリティトークンは、あなたのパスフレーズが要求されたときに表示されますので、パスボルトからのフォームであることをすぐに確認することができます。", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "このセキュリティトークンは、あなたのパスフレーズが要求されたときに表示されますので、パスボルトからのフォームであることをすぐに確認することができます。", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "時間ベースのワンタイムパスワード", "Tips for choosing a good passphrase": "良いパスフレーズを選ぶためのヒント", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "転送が完了しました!", "Transfer in progress...": "転送中...", "Transfer your account key": "Transfer your account key", @@ -1007,6 +1029,7 @@ "updated": "更新されました", "upload": "アップロード", "Upload a new avatar picture": "新しいアバターの画像をアップロード", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "大文字", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "User ids", "User object class": "ユーザーオブジェクトクラス", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "ユーザーパス", "User path is used in addition to base DN while searching users.": "ユーザーパスは、ユーザー検索時にベースDNに加えて使用されます。", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "パスフレーズを忘れた場合はどうなりますか?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "パスフレーズの役割は何ですか?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "コメントがパスワードに投稿された場合、このパスワードにアクセスできるユーザーに通知します。", "When a folder is created, notify its creator.": "フォルダが作成されたら、作成者に通知します。", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "ユーザーがグループから削除されたら、それらのユーザーに通知します。", "When users completed the recover of their account, notify them.": "When users completed the recover of their account, notify them.", "When users try to recover their account, notify them.": "ユーザーがアカウントを復元しようとしたら、それらのユーザーに通知します。", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "なぜこのトークンが必要なのですか?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "これらの新たにインポートされたパスワードは、フォルダ<1>{{folderName}}にあります。", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "これらの新たにインポートされたパスワードは、<1>{{tagName}}タグの下にあります。", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "下のボタンをクリックすると、別の招待メールをリクエストできます。", "You can restart this process if you want to configure another phone.": "別の携帯電話を設定する場合は、このプロセスを再起動できます。", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "このグループは削除できません!", "You cannot delete this user!": "このユーザーは削除できません!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "あなたはまだパスワードを所有していません。ここは少し空っぽに感じます。最初のパスワードを作成してください。", "You need to click save for the changes to take place.": "変更を反映させるには、保存をクリックする必要があります。", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "You need to finalize the account recovery process with the same computer you used for the account recovery request.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "You need use the same computer and browser to finalize the process.", "You need your passphrase to continue.": "続行するにはパスフレーズが必要です。", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "passbolt.php (または環境変数) でメール通知設定が定義されているようです。", diff --git a/src/locales/ko-KR/common.json b/src/locales/ko-KR/common.json index 4a2a4f775..af131fcaf 100644 --- a/src/locales/ko-KR/common.json +++ b/src/locales/ko-KR/common.json @@ -28,14 +28,14 @@ "<0>Warning: These are the settings provided by a configuration file. If you save it, will ignore the settings on file and use the ones from the database.": "<0>경고: 구성 파일에서 제공하는 설정입니다. 파일을 저장하면, 파일의 설정을 무시하고 데이터베이스의 설정을 사용합니다.", "<0>Warning: This secret will expire after some time (typically a few months). Make sure you save the expiry date and rotate it on time.": "<0>경고: 이 암호는 시간이 지나면(일반적으로 몇 개월) 만료됩니다. 만료 날짜를 저장하고 시간에 맞게 교체해야 합니다.", "<0>Warning: UPN is not active by default on Azure and requires a specific option set on Azure to be working.": "<0>경고: UPN(사용자계정이름)은 Azure에서 기본적으로 활성화되지 않으며 Azure에서 작동하려면 특정 옵션이 필요합니다.", - "1. Click download the account kit.": "1. Click download the account kit.", + "1. Click download the account kit.": "1. 클릭해서 계정 키트를 다운로드하세요.", "1. Install the application from the store.": "1. 스토어에서 앱을 설치하세요.", "2. Install the application from the store.": "2. 스토어에서 앱을 설치하세요.", "2. Open the application on your phone.": "2. 스마트폰에서 앱을 여세요.", "3. Click start, here, in your browser.": "3. 브라우저에서 여기 시작을 클릭하세요.", - "3. Open the application.": "3. Open the application.", + "3. Open the application.": "3. 앱을 실행하세요.", "4. Scan the QR codes with your phone.": "4. 스마트폰으로 QR코드를 스캔하세요.", - "4. Upload the account kit on the desktop app.": "4. Upload the account kit on the desktop app.", + "4. Upload the account kit on the desktop app.": "4. 데스크톱 앱에 계정 키트를 업로드하세요.", "5. And you are done!": "5. 그리고 완료하세요!", "A comment is required.": "의견이 필요합니다.", "A comment must be less than 256 characters": "의견은 256자 미만이어야 합니다.", @@ -62,6 +62,7 @@ "Accept new key": "새 키 수락", "Accept the new SSO provider": "새 SSO 제공자 수락", "Access to this service requires an invitation.": "서비스 접근은 초대가 필요합니다.", + "Account kit": "Account kit", "Account recovery": "계정 복구", "Account Recovery": "계정 복구", "Account recovery enrollment": "계정 복구 등록", @@ -95,13 +96,14 @@ "All users": "모든 사용자", "Allow": "허용", "Allow “Remember this device for a month.“ option during MFA.": "MFA를 사용하는 동안 “이 장치를 한 달 동안 기억하기.“ 옵션을 허용하세요.", - "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if a password has been compromised.": "이 옵션을 사용하면 암호를 해독할 때 외부 서비스에 접근할 수 있습니다.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "허용 도메인", "Allows Azure and Passbolt API to securely share information.": "Azure 와 Passbolt API가 정보를 안전하게 공유할 수 있습니다.", "Allows Google and Passbolt API to securely share information.": "Google과 Passbolt API가 정보를 안전하게 공유할 수 있습니다.", "Also delete items inside this folder.": "또한 이 폴더 내의 항목을 삭제합니다.", "Alternatively you can also get in touch with support on community forum or via the paid support channels.": "또는 커뮤니티 포럼 또는 유료 지원 채널을 통해 지원을 받을 수도 있습니다.", - "An account kit is required to transfer your profile and private key to the desktop app.": "An account kit is required to transfer your profile and private key to the desktop app.", + "An account kit is required to transfer your profile and private key to the desktop app.": "계정 키트는 데스크톱 앱으로 프로필과 개인키를 전송할 수 있는 권한이 필요합니다.", "An email is required.": "이메일이 필요합니다.", "An error occured during the sign-in via SSO.": "SSO를 통해 로그인하는 동안 오류가 발생했습니다.", "An organization key is required.": "조직 키가 필요합니다.", @@ -119,7 +121,7 @@ "Are you sure you want to disable the current Single Sign-On settings?": "현재의 싱글사인온 설정을 사용하지 않도록 설정하시겠습니까?", "Are you sure?": "확실합니까?", "As soon as an administrator validates your request you will receive an email link to complete the process.": "관리자가 요청을 확인하는 즉시 이메일 링크를 통해 프로세스를 완료할 수 있습니다.", - "At least 1 set of characters must be selected": "At least 1 set of characters must be selected", + "At least 1 set of characters must be selected": "하나 이상의 문자 집합을 선택해야 합니다", "Authentication method": "인증 방법", "Authentication token is missing from server response.": "서버 응답으로부터 인증 토큰이 없습니다.", "Avatar": "아바타", @@ -223,11 +225,12 @@ "currently:": "현재:", "Customer id:": "고객 id:", "Decrypting": "복호화 중...", + "Decrypting secret": "비밀번호 복호화 중", "Decryption failed, click here to retry": "복호화에 실패했습니다, 여기를 클릭하여 재시도하세요.", "Default": "기본", "Default admin": "기본 관리자", "Default group admin": "기본 그룹 관리자", - "Default password type": "Default password type", + "Default password type": "기본 암호 유형", "Default users multi factor authentication policy": "기본 사용자 다단계 인증 정책", "Defines the Azure login behaviour by prompting the user to fully login each time or not.": "사용자에게 매번 전체 로그인 여부를 묻는 메시지를 표시하여 Azure 로그인 동작을 정의합니다.", "Defines which Azure field needs to be used as Passbolt username.": "Passbolt 사용자 이름으로 사용할 Azure 필드를 정의합니다.", @@ -244,7 +247,7 @@ "deleted": "삭제됨", "Deny": "거부", "Description": "설명", - "Desktop app setup": "Desktop app setup", + "Desktop app setup": "데스크톱 앱 설정", "Directory (tenant) ID": "디렉터리( 테넌트) ID", "Directory configuration": "디렉토리 구성", "Directory group's users field to map to Passbolt group's field.": "디렉터리 그룹' 사용자 필드를 사용하여 패스볼트 그룹' 필드에 매핑합니다.", @@ -267,10 +270,10 @@ "Download again": "재 다운로드", "Download backup": "백업 다운로드", "Download extension": "확장프로그램 다운로드", - "Download the desktop app": "Download the desktop app", + "Download the desktop app": "데스크톱 앱 다운로드", "Download the kit again!": "키트를 다시 다운로드", "Download the mobile app": "모바일 앱 다운로드", - "Download your account kit": "Download your account kit", + "Download your account kit": "계정 키트 다운로드", "Edit": "수정", "Edit Avatar": "아바타 수정", "Edit group": "그룹 수정", @@ -304,11 +307,12 @@ "Enter the password and/or key file": "암호 및(또는) 키파일 입력", "Enter the private key used by your organization for account recovery": "조직에서 계정 복구에 사용하는 개인키 입력하세요.", "entropy:": "엔트로피:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "오류", "Error details": "오류 내역", "Error, this is not the current organization recovery key.": "오류, 현재 조직 복구 키가 아닙니다.", "Errors:": "오류", - "Estimated entropy": "Estimated entropy", + "Estimated entropy": "추정 엔트로피", "Every user can decide to provide a copy of their private key and passphrase by default during the setup, but they can opt in.": "모든 사용자는 설정 중에 기본적으로 개인키와 패스프레이즈 사본을 제공하기로 결정할 수 있지만 선택할 수 있습니다.", "Every user is required to provide a copy of their private key and passphrase during setup.": "모든 사용자는 설정 중에 개인키와 패스프레이즈의 사본을 제공해야 합니다.", "Every user will be prompted to provide a copy of their private key and passphrase by default during the setup, but they can opt out.": "모든 사용자는 설치 중에 기본적으로 개인키와 패스프레이즈의 사본을 제공하라는 메시지가 표시되지만, 사용자는 이를 거부할 수 있습니다.", @@ -321,7 +325,8 @@ "Export": "내보내기", "Export all": "모두 내보내기", "Export passwords": "암호 내보내기", - "External services": "External services", + "External password dictionary check": "External password dictionary check", + "External services": "외부 서비스", "Fair": "적합", "FAQ: Why are my emails not sent?": "FAQ: 왜 이메일이 안 보내집니까?", "Favorite": "즐겨찾기", @@ -341,7 +346,8 @@ "For more information about email notification, checkout the dedicated page on the help website.": "이메일 알림에 대한 자세한 내용은 도움말 웹 사이트의 전용 페이지를 확인하세요.", "For more information about MFA policy settings, checkout the dedicated page on the help website.": "다단계인증 정책 설정에 대한 자세한 내용은 도움말 웹 사이트의 전용 페이지를 확인하세요.", "For more information about SSO, checkout the dedicated page on the help website.": "SSO에 대한 자세한 내용은 도움말 웹 사이트의 전용 페이지를 확인하세요.", - "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the password policy settings, checkout the dedicated page on the help website.": "암호 정책 설정에 대한 자세한 내용은 도움말 웹 사이트에서 전용 페이지를 확인하세요.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Openldap 전용. 사용할 그룹 개체를 정의합니다.", "For Openldap only. Defines which user object to use.": "Openldap 전용. 사용할 사용자 개체를 정의합니다.", "For security reasons please check with your administrator that this is a change that they initiated.": "보안상의 이유로 관리자에게 변경 사항이 시작되었는지 확인하세요.", @@ -352,6 +358,7 @@ "Generate a new password securely": "안전하게 새 암호 생성", "Generate new key instead": "대신 새 키 생성", "Generate password": "암호 생성", + "Get started !": "시작하기 !", "Get started in 5 easy steps": "쉬운 5단계로 시작", "Go back": "뒤로 가기", "Go to MFA settings": "MFA 설정으로 이동", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "여전히 계정을 복구해야 하는 경우 처음부터 프로세스를 시작해야 합니다.", "Ignored:": "무시됨", "Import": "가져오기", + "Import account": "Import account", "Import an OpenPGP Public key": "OpenPGP 공개키 가져오기", + "Import another account": "Import another account", "Import folders": "폴더 가져오기", "Import passwords": "암호 가져오기", "Import success!": "가져오기 성공!", "Import/Export": "가져오기/내보내기", "Important notice:": "중요 공지:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": ""사용자 이름 및 비밀번호"를 사용하려면 Google 인증 방법 사용하여, Google 계정에서 MFA를 활성화해야 합니다. 비밀번호는 로그인 비밀번호가 아니어야 하며 Google에서 생성된 "앱 비밀번호"를 만들어야 합니다. 하지만 이메일은 동일하게 유지됩니다.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "이 섹션에서는 이메일의 구성(예: 알림에 포함될 정보)을 조정할 수 있습니다.", "In this section you can choose the default behavior of account recovery for all users.": "이 섹션에서는 모든 사용자에 대한 계정 복구의 기본 동작을 선택할 수 있습니다.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "공유 권한 항목에 대한 권한 유형이 잘못되었습니다.", "is owner": "은(는) 소유자입니다.", "Is owner": "은(는) 소유자입니다.", - "It contains letters and numbers": "문자와 숫자를 포함합니다.", - "It contains lower and uppercase characters": "소문자와 대문자를 포함합니다.", - "It contains special characters (like / or * or %)": "특수 문자(예: / 또는 * 또는 %) 를 포함합니다.", "It does feel a bit empty here.": "텅! 허전하네요 채워주세요.", - "It is at least 8 characters in length": "길이는 최소 8자 이상입니다.", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "개인키의 복사본을 조직 복구 담당자와 안전하게 공유해야 합니다. 계속하시겠습니까?", - "It is not part of an exposed data breach": "노출된 데이터 침해의 일부가 아닙니다.", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "아직 로그인 중이므로 새 계정 설정을 수행할 수 없습니다. 계속하기 전에 먼저 로그아웃해야 합니다", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "아직 로그인 중이므로 계정 복구를 수행할 수 없습니다. 계속하기 전에 먼저 로그아웃해야 합니다.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "아직 로그인 중이므로 개인키 복구를 수행할 수 없습니다. 계속하기 전에 먼저 로그아웃해야 합니다.", @@ -477,6 +482,8 @@ "Metadata": "메타데이터", "MFA": "다단계인증", "MFA Policy": "MFA 정책", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "모바일 앱", "Mobile setup": "모바일 설정", "Mobile transfer": "모바일 전송", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "즐겨찾기로 표시된 암호가 아직 없습니다. 나중에 쉽게 찾을 수 있는 암호에 별표를 추가합니다.", "None of your passwords matched this search.": "이 검색결과와 일치하는 암호가 없습니다.", "not available": "없음", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "참고: 관리자는 사용자를 추가하거나 삭제할 수 있습니다. 또한 그룹을 만들고 그룹 관리자를 할당할 수 있습니다. 기본적으로 모든 암호를 볼 수는 없습니다.", "Number of recovery": "복구 횟수", "Number of words": "단어수", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "관리자만 사용자를 등록하도록 초대할 수 있습니다.", "Only administrators would be able to invite users to register. ": "관리자만 사용자를 등록하도록 초대할 수 있습니다. ", "Only numeric characters allowed.": "숫자만 사용할 수 있습니다.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "활성화된 사용자만 동기화 (AD)", "Only the group manager can add new people to a group.": "그룹 관리자만 그룹에 새 사용자를 추가할 수 있습니다.", "Oops, something went wrong": "앗, 문제가 발생했습니다!", @@ -570,26 +579,29 @@ "Otherwise, you may lose access to your data.": "그렇지 않으면 데이터에 대한 접근이 손실될 수 있습니다.", "Owned by me": "내 소유", "Passbolt is available on AppStore & PlayStore": "패스볼트는 앱스토와 플레이스토어에서 사용할수 있습니다.", - "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", + "Passbolt is available on the Windows store.": "Windows 스토어에서 패스볼트를 사용할 수 있습니다.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "계정 생성 후 초대 이메일을 보내고 이메일 알림을 보내려면 패스볼트에 smtp 서버가 필요합니다.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "패스프레이즈", "Passphrase required": "패스프레이즈가 필요합니다.", - "Passphrase settings": "Passphrase settings", + "Passphrase settings": "패스프레이즈 설정", "Password": "암호", "Password Generator": "암호 생성기", - "Password generator default settings": "Password generator default settings", + "Password generator default settings": "암호 생성기 기본 설정", "Password must be a valid string": "패스워드는 반드시 문자열이여야 합니다.", - "Password Policy": "Password Policy", + "Password Policy": "암호 정책", "passwords": "암호", "Passwords": "암호", - "Passwords settings": "Passwords settings", + "Passwords settings": "암호 설정", "Paste the OpenPGP Private key here": "OpenPGP 개인키를 여기에 붙여넣으세요.", "Pending": "보류 중", "Pick a color and enter three characters.": "색상을 선택하고 세글자를 입력하세요.", "Please authenticate with the Single Sign-On provider to continue.": "계속하려면 싱글사인온 제공자를 인증하세요.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "암호를 삭제할지 확인하십시오. 확인을 클릭하면 암호가 영구적으로 삭제됩니다.", + "Please contact your administrator to enable multi-factor authentication.": "다단계 인증을 사용하려면 관리자에게 문의하세요.", "Please contact your administrator to enable the account recovery feature.": "관리자에게 문의하여 계정 복구 기능을 활성화하세요.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "관리자에게 문의하여 초대 링크를 요청하세요.", "Please double check with the user in case they still need some help to log in.": "로그인하는데 여전히 도움이 필요한 경우 사용자에게 다시 확인하세요.", "Please download one of these browsers to get started with passbolt:": "패스볼트를 시작하려면 이 브라우저 중의 하나를 다운로드 하세요:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "계속 하려면 패스프레이즈를 입력하세요.", "Please enter your passphrase.": "패스프레이즈를 입력하세요.", "Please enter your private key to continue.": "계속 하려면 개인키를 입력하세요.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "브라우저 확장프로그램을 설치하세요.", "Please make sure there is at least one group manager.": "그룹 관리자가 하나 이상 있는지 확인하세요.", "Please make sure there is at least one owner.": "소유자가 한 명 이상 있는지 확인하세요.", @@ -701,16 +714,18 @@ "Secret": "암호", "Secret expiry": "암호 만료", "Secret key": "비밀키", + "Secure": "Secure", "Security token": "비밀 토큰", "See error details": "오류 내용 보기", "See list": "결과 보기", "See structure": "구조 보기", "See the {settings.provider.name} documentation": "{settings.provider.name} 설명서를 참조하세요.", + "Select a file": "Select a file", "Select a file to import": "가져올 파일을 선택", "Select a provider": "공급자 선택", "Select all": "모두 선택", "Select user": "사용자 선택", - "Selected set of characters": "Selected set of characters", + "Selected set of characters": "선택한 문자 집합", "Self Registration": "자체 등록", "Send": "보내기", "Send test email": "테스트 이메일 보내기", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "문제가 발생했습니다. 로그인이 실패하고 다음 오류가 발생했습니다.:", "Something went wrong!": "문제가 발생했습니다!", "Sorry the account recovery feature is not enabled for this organization.": "죄송합니다. 이 조직에 대해 계정 복구 기능을 사용할 수 없습니다.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "죄송합니다. 현재 하나의 키 세트만 가질 수 있습니다.", "Sorry your subscription is either missing or not readable.": "죄송합니다. 구독이 누락되었거나 읽을 수 없습니다.", "Sorry, it is not possible to proceed. The first QR code is empty.": "죄송합니다. 진행이 불가능합니다. 첫 QR 코드가 비었습니다.", @@ -807,7 +824,7 @@ "Test settings": "테스트 설정", "Test settings report": "테스트 설정 보고서", "Test Single Sign-On configuration": "싱글사인온 구성 테스트", - "The account kit has been downloaded successfully.": "The account kit has been downloaded successfully.", + "The account kit has been downloaded successfully.": "계정 키트가 성공적으로 다운로드되었습니다.", "The account recovery request does not exist.": "계정 복구 요청이 존재하지 않습니다.", "The account recovery review has been saved successfully": "계정 복구 검토가 성공적으로 저장되었습니다.", "The account recovery subscription setting has been updated.": "계정 복구 구독 설정이 업데이트되었습니다.", @@ -819,14 +836,14 @@ "The base DN (default naming context) for the domain.": "도메인의 기본 DN(기본 명명 컨텍스트) 입니다.", "The comment has been added successfully": "의견이 성공적으로 추가되었습니다", "The comment has been deleted successfully": "의견이 성공적으로 삭제되었습니다", - "The configuration has been disabled as it needs to be checked to make it correct before using it.": "The configuration has been disabled as it needs to be checked to make it correct before using it.", - "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.", - "The current passphrase configuration generates passphrases that are not strong enough.": "The current passphrase configuration generates passphrases that are not strong enough.", - "The current password configuration generates passwords that are not strong enough.": "The current password configuration generates passwords that are not strong enough.", + "The configuration has been disabled as it needs to be checked to make it correct before using it.": "사용하기 전에 올바른 구성을 확인해야 하므로 구성이 비활성화되었습니다.", + "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "현재 구성은 환경 변수에서 가져옵니다. 저장하면 덮어쓰여지고 대신 데이터베이스에서 가져옵니다.", + "The current passphrase configuration generates passphrases that are not strong enough.": "현재 패스프레이즈 구성은 충분히 강하지 않은 패스프레이즈가 생성됩니다.", + "The current password configuration generates passwords that are not strong enough.": "현재 암호 구성은 충분히 강하지 않은 암호가 생성됩니다.", "The default admin user is the user that will perform the operations for the the directory.": "기본 관리 사용자는 디렉토리에 대한 작업을 수행할 사용자입니다.", "The default group manager is the user that will be the group manager of newly created groups.": "기본 그룹 관리자는 새로 생성된 그룹의 그룹 관리자가 될 사용자입니다.", "The default language of the organisation.": "조직의 기본 언어입니다.", - "The default type is": "The default type is", + "The default type is": "기본 유형은", "The description content will be encrypted.": "설명 내용이 암호화됩니다.", "The description has been updated successfully": "설명이 성공적으로 수정되었습니다", "The dialog has been closed.": "대화 상자가 닫혔습니다.", @@ -866,7 +883,7 @@ "The organization private recovery key should not be stored in passbolt.": "조직의 개인 복구 키를 패스볼트에 저장해서는 안 됩니다.", "The organization recovery policy has been updated successfully": "조직 복구 정책이 성공적으로 업데이트되었습니다.", "The passphrase from the SSO kit doesn't match your private key: {{error}}": "SSO 키트의 암호가 개인 키와 일치하지 않습니다. {{error}}", - "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required", + "The passphrase generator will not generate strong enough passphrase. Minimum of {{minimum}}bits is required": "패스프레이즈 생성기에서 강력한 패스프레이즈가 생성되지 않습니다. 최소 {{minimum}}비트가 필요합니다", "The passphrase is invalid.": "패스프레이즈가 올바르지 않습니다.", "The passphrase is part of an exposed data breach.": "패스프레이즈는 노출된 데이터 유출의 일부입니다.", "The passphrase is stored on your device and never sent server side.": "패스프레이즈는 장치에 저장되며 서버 측에서 전송되지 않습니다.", @@ -874,19 +891,20 @@ "The passphrase should not be empty.": "패스프레이즈는 비워둘 수 없습니다.", "The passphrase should not be part of an exposed data breach.": "패스프레이즈는 노출된 데이터 유출의 일부가 되어서는 안 됩니다.", "The passphrase was updated!": "패스프레이즈가 업데이트되었습니다!", - "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", + "The passphrase word count must be set to 4 at least": "패스프레이즈 단어 수는 4 이상으로 설정해야 합니다", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "작업을 완료하려면 계정 복구를 시작할 때 정의한 패스프레이즈가 필요합니다.", - "The password field is not defined.": "암호 필드가 정의되지 않았습니다.", - "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", + "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "암호 생성기에서 강력한 암호가 생성되지 않습니다. 최소 {{minimum}}비트가 필요합니다", "The password has been added as a favorite": "암호가 즐겨찾기로 추가되었습니다.", "The password has been added successfully": "암호가 성공적으로 추가되었습니다", "The password has been copied to clipboard": "암호가 클립보드에 복사되었습니다.", "The password has been removed from favorites": "암호가 즐겨찾기에서 삭제되었습니다.", "The password has been updated successfully": "암호가 성공적으로 업데이트되었습니다", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "암호가 비어 있습니다.", "The password is part of an exposed data breach.": "이 암호는 노출된 데이터 위반의 일부입니다.", - "The password length must be set to 8 at least": "The password length must be set to 8 at least", - "The password policy settings were updated.": "The password policy settings were updated.", + "The password length must be set to 8 at least": "암호 길이는 8 이상으로 설정해야 합니다", + "The password policy settings were updated.": "암호 정책 설정이 업데이트되었습니다.", "The passwords have been exported successfully": "암호가 성공적으로 내보내졌습니다", "The permalink has been copied to clipboard": "영구링크가 클립보드에 복사되었습니다.", "The permissions do not match the destination folder permissions.": "권한이 대상 폴더 사용 권한과 일치하지 않습니다.", @@ -906,7 +924,6 @@ "The Secret expiry is required": "암호 만료가 필요합니다", "The secret has been copied to clipboard": "암호가 클립보드에 복사되었습니다.", "The Secret is required": "암호가 필요합니다.", - "The secret plaintext is empty.": "암호 평문이 비어 있습니다.", "The security token code should be 3 characters long.": "보안 토큰 코드는 3자여야 합니다.", "The security token code should not be empty.": "보안 토큰 코드는 비워 둘 수 없습니다.", "The security token has been updated successfully": "보안 토큰이 성공적으로 수정되었습니다", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "테마가 성공적으로 업데이트되었습니다", "The Time-based One Time Password provider is disabled for all users.": "시간 기반 일회용 암호 공급자가 모든 사용자에 대해 비활성화되었습니다.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "시간 기반 일회용 암호 공급자가 모든 사용자에 대해 사용 가능합니다. 프로필에 이 공급자를 설정하고 2차 인증으로 사용할 수 있습니다.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "다른 클라이언트가 오류를 반환했기 때문에 전송이 취소되었습니다.", "The uri has been copied to clipboard": "uri가 클립보드에 복사되었습니다.", "The URL to provide to Azure when registering the application.": "애플리케이션 등록 시 Azure에 제공할 URL.", @@ -936,12 +955,13 @@ "The user has been deleted successfully": "사용자가 성공적으로 삭제되었습니다", "The user has been updated successfully": "사용자가 성공적으로 업데이트되었습니다", "The user is not a member of any group yet": "사용자가 아직 그룹의 구성원이 아닙니다.", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "사용자의 사용자이름은 필드 매핑은 비워 둘 수 없습니다", "The user username field mapping cannot exceed 128 characters.": "사용자의 사용자이름 필드 매핑은 128자를 초과할 수 없습니다.", "The user who requested an account recovery does not exist.": "계정 복구를 요청한 사용자가 없습니다.", "The username has been copied to clipboard": "사용자명이 클립보드에 복사되었습니다.", "The username should be a valid username address.": "사용자이름은 올바른 사용자이름 주소여야 합니다.", - "The words separator should be at a maximum of 10 characters long": "The words separator should be at a maximum of 10 characters long", + "The words separator should be at a maximum of 10 characters long": "단어 구분자는 최대 10자여야 합니다", "The Yubikey provider is disabled for all users.": "모든 사용자에 대해 Yubikey 공급자가 비활성화되었습니다.", "The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "모든 사용자에 대해 Yubikey 공급자가 활성화되어 있습니다. 프로필에 이 공급자를 설정하고 2차 인증으로 사용할 수 있습니다.", "Theme": "테마", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "이것은 패스볼트가 알림을 보낼 때 사용자가 우편함에 볼 수 있는 이메일 주소입니다.<1>사용자가 회신할 수 있는 사용중인 이메일 주소를 제공하는 것이 좋습니다.", "this is the maximum size for this field, make sure your data was not truncated": "이 필드의 최대 크기입니다. 데이터가 누락되지 않았는지 확인하세요.", "This is the name users will see in their mailbox when passbolt sends a notification.": "이 이름은 패스볼트가 알림을 보낼 때 사용자가 우편함에 표시할 이름입니다.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "지금부터 기억해야 할 유일한 패스프레이즈이므로 현명하게 선택하십시오!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "이 보안 토큰은 패스프레이즈가 요청될 때 표시되므로, 패스볼트에서 가져온 양식을 신속하게 확인할 수 있습니다.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "이 보안 토큰은 패스프레이즈가 요청될 때 표시되므로, 패스볼트에서 가져온 양식을 신속하게 확인할 수 있습니다.", @@ -979,10 +1000,11 @@ "Time-based One Time Password": "시간 기반 일회성 패스워드", "Tips for choosing a good passphrase": "올바른 패스프레이즈을 선택하기 위한 팁", "TLS must be set to 'Yes' or 'No'": "TLS를 '예' 또는 '아니오'로 설정해야 합니다.", + "TOTP": "TOTP", "Transfer complete!": "전송 완료!", "Transfer in progress...": "전송 중...", "Transfer your account key": "계정 키 전송", - "Transfer your account kit": "Transfer your account kit", + "Transfer your account kit": "계정 키트 전송", "Try again": "재시도", "Try another search or use the left panel to navigate into your organization.": "다른 검색을 시도하거나 왼쪽 패널을 사용하여 조직으로 이동하세요.", "Try another search or use the left panel to navigate into your passwords.": "다른 검색을 시도하거나 왼쪽 패널을 사용하여 암호를 탐색하세요.", @@ -1007,6 +1029,7 @@ "updated": "업데이트됨", "upload": "업로드", "Upload a new avatar picture": "새로운 아바타 사진을 업로드", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "대문자", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "사용자를 검색하는 동안 기본 DN 및 사용자 경로 외에 사용자 사용자 정의 필터가 사용됩니다.", "User ids": "사용자 Id", "User object class": "사용자 개체 클래스", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "사용자 경로", "User path is used in addition to base DN while searching users.": "사용자 검색 시 기본 DN 외에 사용자 경로가 사용됩니다.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "사용자 자체 등록을 통해 화이트리스트 도메인의 전자 메일을 가진 사용자는 사전에 관리자 초대가 없어도 자신의 패스볼트 계정을 만들 수 있습니다.", @@ -1061,11 +1086,12 @@ "Welcome back!": "다시 오신 것을 환영합니다!", "Welcome to Passbolt, please select a passphrase!": "패스볼트에 어서 오세요. 패스프레이즈를 선택하세요.", "Welcome to passbolt!": "패스볼트에 어서 오세요!", - "Welcome to the desktop app setup": "Welcome to the desktop app setup", + "Welcome to the desktop app setup": "데스크톱 앱 설정에 어서 오세요", "Welcome to the mobile app setup": "모바일앱 설정에 어서 오세요", "What if I forgot my passphrase?": "패스프레이즈를 잊어버린 경우 어떻게 합니까?", - "What is password policy?": "What is password policy?", + "What is password policy?": "암호 정책은 무엇인가요?", "What is the role of the passphrase?": "패스프레이즈의 역할은 무엇입니까?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "자체 등록이란 무엇입니까?", "When a comment is posted on a password, notify the users who have access to this password.": "암호에 의견이 작성되면 이 암호에 대한 접근 권한이 있는 사용자에게 알립니다.", "When a folder is created, notify its creator.": "폴더가 생성되면 해당 폴더를 만든 사람에게 알립니다.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "그룹에서 사용자가 삭제되면 사용자에게 알립니다.", "When users completed the recover of their account, notify them.": "사용자가 계정 복구를 완료하면 사용자에게 알립니다.", "When users try to recover their account, notify them.": "사용자가 계정 복구를 시도하면 사용자에게 알립니다.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "어디서 찾을 수 있나요?", "Why do I need an SMTP server?": "왜 SMTP 서버가 필요하죠?", "Why is this token needed?": "왜 이 토큰이 필요한가요?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "모든 사용자에 대해 다단계 인증의 기본 동작을 선택할 수 있습니다.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "새로 가져온 암호는 <1>{{folderName}} 폴더에서 찾을 수 있습니다.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "새로 가져온 태그는 <1>{{tagName}} 태그에서 찾을 수 있습니다.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "아래 버튼을 클릭하여 다른 초대 이메일을 요청할 수 있습니다.", "You can restart this process if you want to configure another phone.": "다른 스마트폰을 구성하려면 이 작업을 다시 시작할 수 있습니다.", - "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", - "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "암호 생성기에서 passbolt에 의해 임의로 생성된 암호에 대해 사용된 문자 집합을 선택할 수 있습니다.", + "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "암호 생성기에서 passbolt에 의해 임의로 생성된 암호에 대한 기본 길이를 설정할 수 있습니다.", + "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "암호 생성기에서 passbolt에 의해 임의로 생성된 암호에 대한 기본 길이를 설정할 수 있습니다.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "이 그룹을 삭제할 수 없습니다.", "You cannot delete this user!": "이 사용자를 삭제할 수 없습니다.", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "아직 소유한 암호가 없습니다. 여기는 좀 허전하네요, 첫 번째 암호를 만드세요.", "You need to click save for the changes to take place.": "변경 내용을 적용하려면 저장을 클릭해야 합니다.", "You need to enter your current passphrase.": "현재의 암호를 입력하세요.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "계정 복구 요청에 사용한 것과 동일한 시스템으로 계정 복구 작업을 완료해야 합니다.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "작업을 완료하려면 동일한 컴퓨터와 브라우저를 사용해야 합니다.", "You need your passphrase to continue.": "계속 하려면 패스프레이즈가 필요합니다.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "이메일 알림 설정이 passbolt.php(또는 환경 변수를 통해)에 정의된 것 같습니다.", @@ -1144,7 +1173,7 @@ "You will be able to save it after submitting": "제출 후 저장하면 됩니다.", "you@organization.com": "you@organization.com", "Your browser is not configured to work with this passbolt instance.": "브라우저가 이 패스볼트 인스턴스와 함께 작동하도록 구성되어 있지 않습니다.", - "Your language is missing or you discovered an error in the translation, help us to improve passbolt.": "언어가 누락되었거나 번역에서 오류가 발견되었습니다. 패스볼트를 개선할 수 있도록 도와주세요.", + "Your language is missing or you discovered an error in the translation, help us to improve passbolt.": "언어가 누락되었거나 번역에 오류가 경우 패스볼트를 개선할 수 있도록 도와주세요.", "Your OpenPGP private key block": "OpenPGP 개인키 블록", "Your organization recovery key will be used to decrypt and recover the private key and passphrase of the users that are participating in the account recovery program.": "조직 복구 키는 계정 복구 프로그램에 참여하는 사용자의 개인키 및 패스프레이즈를 해독하고 복구하는 데 사용됩니다.", "Your passphrase has been changed. Make sure you keep a backup of your secret key encrypted with this new passphrase.": "패스프레이즈가 변경되었습니다. 이 새 패스프레이즈로 암호화된 비밀키의 백업을 보관해야 합니다.", diff --git a/src/locales/lt-LT/common.json b/src/locales/lt-LT/common.json index a24dc466e..e3397d628 100644 --- a/src/locales/lt-LT/common.json +++ b/src/locales/lt-LT/common.json @@ -62,6 +62,7 @@ "Accept new key": "Priimti naują raktą", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "Norint pasiekti šią paslaugą, reikia pakvietimo.", + "Account kit": "Account kit", "Account recovery": "Paskyros atkūrimas\n", "Account Recovery": "Paskyros Atkūrimas\n", "Account recovery enrollment": "Paskyros atkūrimo registracija\n", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Leisti „Prisiminti šį įrenginį mėnesį.“ galimybė MFA metu.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Leidžiami domenai\n", "Allows Azure and Passbolt API to securely share information.": "Leidžia „Azure“ ir „Passbolt“ API saugiai dalintis informacija.\n", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "šiuo metu:", "Customer id:": "Vartotojo id:", "Decrypting": "Iššifruojama", + "Decrypting secret": "Iššifruoti paslaptį", "Decryption failed, click here to retry": "Iššifruoti nepavyko, paspauskite čia ir bandykite dar kartą", "Default": "Numatytas", "Default admin": "Numatytasis administratorius", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Įvesti slaptažodį ir (arba) rakto failą", "Enter the private key used by your organization for account recovery": "Enter the private key used by your organization for account recovery", "entropy:": "entropija:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Klaida", "Error details": "Klaidos detalės", "Error, this is not the current organization recovery key.": "Error, this is not the current organization recovery key.", @@ -321,6 +325,7 @@ "Export": "Eksportuoti", "Export all": "Eksportuoti viską", "Export passwords": "Eksportuoti slaptažodžius\n", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Fair", "FAQ: Why are my emails not sent?": "DUK: Kodėl mano el. laiškai nesiunčiami?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Norėdami gauti daugiau informacijos apie kelių faktorių autentifikavimo krypties nustatymus, apsilankykite specialiame pagalbos svetainės puslapyje.\n", "For more information about SSO, checkout the dedicated page on the help website.": "Norėdami gauti daugiau informacijos apie SSO, apsilankykite tam skirtame pagalbos svetainės puslapyje.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Tik „Openldap“. Nustato, kurį grupės objektą naudoti.", "For Openldap only. Defines which user object to use.": "Tik „Openldap“. Nustato, kurį vartotojo objektą naudoti.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Saugiai sugeneruokite naują slaptažodį", "Generate new key instead": "Vietoj to sugeneruokite naują raktą\n", "Generate password": "Generuoti slaptažodį", + "Get started !": "Pradėti !", "Get started in 5 easy steps": "Pradėkite atlikdami 5 paprastus veiksmus\n", "Go back": "Grįžti atgal", "Go to MFA settings": "Eikite į kelių faktorių autentifikavimo nustatymus\n", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "If you still need to recover your account, you will need to start the process from scratch.", "Ignored:": "Ignoruojama", "Import": "Importuoti", + "Import account": "Import account", "Import an OpenPGP Public key": "Import an OpenPGP Public key", + "Import another account": "Import another account", "Import folders": "Importuoti aplankus", "Import passwords": "Importuoti slaptažodžius", "Import success!": "Importo sėkmė!", "Import/Export": "Import/Export", "Important notice:": "Svarbus pastebėjimas:\n", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "Norėdami naudoti "Vartotojo vardas & Slaptažodis" autentifikavimo metodą naudodami „Google“, savo „Google“ paskyroje turėsite įgalinti MFA. Slaptažodis neturėtų būti jūsų prisijungimo slaptažodis, turite sukurti "Programos slaptažodį" sukurtą „Google“. Tačiau el. laiškas išlieka toks pat.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "Šiame skyriuje galite koreguoti el. laiškų sudėtį, pvz. kokia informacija bus įtraukta į pranešimą.", "In this section you can choose the default behavior of account recovery for all users.": "Šiame skyriuje galite pasirinkti numatytąjį paskyros atkūrimo veiksmą visiems vartotojams.\n", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Netinkamas leidimo tipas dalintis elementu.\n", "is owner": "yra savininkas\n", "Is owner": "Yra savininkas", - "It contains letters and numbers": "Jame yra raidės ir skaičiai", - "It contains lower and uppercase characters": "Jame yra mažųjų ir didžiųjų raidžių simbolių", - "It contains special characters (like / or * or %)": "Jame yra specialių simbolių (pvz. / arba * arba %)", "It does feel a bit empty here.": "Čia jaučiasi šiek tiek tuščia.", - "It is at least 8 characters in length": "Mažiausiai 8 simbolių ilgio", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Privaloma saugiai dalintis privataus rakto kopiją su organizacijos atkūrimo kontaktais. Ar norėtumėte tęsti?\n", - "It is not part of an exposed data breach": "Tai nėra atskleisto duomenų pažeidimo dalis\n", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Neįmanoma atlikti naujos paskyros sąrankos, nes vis dar esate prisijungę. Prieš tęsdami pirmiausia turite atsijungti.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Neįmanoma atkurti paskyros, nes vis dar esate prisijungę. Prieš tęsdami pirmiausia turite atsijungti.\n", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Neįmanoma atkurti privataus paskyros rakto, nes vis dar esate prisijungę. Prieš tęsdami pirmiausia turite atsijungti.\n", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "Kelių veiksnių autentifikavimas", "MFA Policy": "Kelių faktorių autentifikavimo kryptis", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobile Apps", "Mobile setup": "Mobiliojo telefono sąranka\n", "Mobile transfer": "Mobilusis perdavimas\n", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Nė vienas jūsų slaptažodis dar nėra pažymėtas kaip mėgstamiausias. Pridėkite žvaigždutes prie slaptažodžių, kuriuos norite lengvai rasti vėliau.", "None of your passwords matched this search.": "Nė vienas jūsų slaptažodis neatitiko šios paieškos.", "not available": "not available", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.", "Number of recovery": "Number of recovery", "Number of words": "Žodžių skaičius\n", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Tik administratoriai gali pakviesti vartotojus registruotis.", "Only administrators would be able to invite users to register. ": "Tik administratoriai galės pakviesti vartotojus registruotis.\n", "Only numeric characters allowed.": "Leidžiami tik skaitmeniniai simboliai.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Sinchronizuoti tik įgalintus vartotojus", "Only the group manager can add new people to a group.": "Tik grupės valdytojas gali pridėti naujų žmonių prie grupės.", "Oops, something went wrong": "Oi! Kažkas negerai\n", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt is available on AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "„Passbolt“ reikalingas smtp serveris, kad sukūrus paskyrą būtų išsiųsti kvietimai ir el. pašto pranešimai.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Slaptafrazė", "Passphrase required": "Reikalinga slaptafrazė", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Pasirinkite spalvą ir įveskite tris simbolius.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Patvirtinkite, kad tikrai norite ištrinti slaptažodžius. Paspaudus\"Gerai\", slaptažodžiai bus ištrinti visam laikui.", + "Please contact your administrator to enable multi-factor authentication.": "Norėdami įgalinti kelių veiksnių autentifikavimą, susisiekite su administratoriumi.", "Please contact your administrator to enable the account recovery feature.": "Please contact your administrator to enable the account recovery feature.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Susisiekite su administratoriumi ir paprašykite kvietimo nuorodos.", "Please double check with the user in case they still need some help to log in.": "Please double check with the user in case they still need some help to log in.", "Please download one of these browsers to get started with passbolt:": "Please download one of these browsers to get started with passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Jei norite tęsti, įveskite slaptafrazę.", "Please enter your passphrase.": "Įveskite slaptafrazę.", "Please enter your private key to continue.": "Please enter your private key to continue.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Įdiekite naršyklės plėtinį.", "Please make sure there is at least one group manager.": "Įsitikinkite, kad yra bent vienas grupės vadovas.", "Please make sure there is at least one owner.": "Įsitikinkite, kad yra bent vienas savininkas.", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Slaptas raktas", + "Secure": "Secure", "Security token": "Saugumo priemonė", "See error details": "Peržiūrėkite išsamią klaidos informaciją", "See list": "Žiūrėkite sąrašą", "See structure": "Žiūrėkite struktūrą\n", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "Pasirinkite importuojamą failą\n", "Select a provider": "Select a provider", "Select all": "Select all", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Kažkas nepavyko, nepavyko prisijungti su šia klaida:", "Something went wrong!": "Kažkas nepavyko!\n", "Sorry the account recovery feature is not enabled for this organization.": "Sorry the account recovery feature is not enabled for this organization.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "atsiprašome, šiuo metu galite turėti tik vieną raktą", "Sorry your subscription is either missing or not readable.": "Deja, jūsų prenumeratos trūksta arba jos negalima perskaityti.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Deja, tęsti negalima. Pirmasis QR kodas tuščias.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "Slaptafrazė atnaujinta!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "The passphrase you defined when initiating the account recovery is required to complete the operation.", - "The password field is not defined.": "Slaptažodžio laukas nėra apibrėžtas.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Slaptažodis pridėtas kaip mėgstamiausias", "The password has been added successfully": "Slaptažodis sėkmingai pridėtas", "The password has been copied to clipboard": "Slaptažodis nukopijuotas į iškarpinę", "The password has been removed from favorites": "Slaptažodis pašalintas iš mėgstamiausių", "The password has been updated successfully": "Slaptažodis sėkmingai atnaujintas", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Slaptažodis tuščias.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "Paslaptis nukopijuota į mainų sritį", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "Slaptas paprastas tekstas tuščias.", "The security token code should be 3 characters long.": "Apsaugos prieigos rakto kodas turi būti 3 simbolių ilgio.", "The security token code should not be empty.": "Saugos prieigos rakto kodas neturi būti tuščias.", "The security token has been updated successfully": "Saugos prieigos raktas sėkmingai atnaujintas", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Tema sėkmingai atnaujinta", "The Time-based One Time Password provider is disabled for all users.": "Laiku pagrįstas vieno slaptažodžio teikėjas yra išjungtas visiems vartotojams.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Visiems vartotojams įgalintas vieno laiko slaptažodžio teikėjas. Jie gali nustatyti šį teikėją savo profilyje ir naudoti jį kaip antrojo veiksnio autentifikavimą.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Pervedimas buvo atšauktas, nes kitas klientas grąžino klaidą.", "The uri has been copied to clipboard": "Uri nukopijuotas į iškarpinę", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "Vartotojas sėkmingai ištrintas", "The user has been updated successfully": "Vartotojas sėkmingai atnaujintas", "The user is not a member of any group yet": "Vartotojas dar nėra jokios grupės narys", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "The user who requested an account recovery does not exist.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Ši slaptafrazė yra vienintelė slaptafrazė, kurią nuo šiol turėsite prisiminti, rinkitės protingai!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Šis saugos raktas bus rodomas, kai bus paprašyta slaptafrazė, kad galėtumėte greitai patikrinti, ar forma gaunama iš „passbolt“.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Šis saugos raktas bus rodomas, kai bus paprašyta slaptafrazė, kad galėtumėte greitai patikrinti, ar forma gaunama iš „passbolt“.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Vienkartinis slaptažodis pagal laiką", "Tips for choosing a good passphrase": "Patarimai, kaip pasirinkti gerą slaptafrazę", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "Perkėlimas baigtas!", "Transfer in progress...": "Vykdomas perkėlimas...", "Transfer your account key": "Transfer your account key", @@ -1007,6 +1029,7 @@ "updated": "atnaujinta", "upload": "įkelti", "Upload a new avatar picture": "Įkelkite naują avataro nuotrauką", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Didžiosios raidės\n", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "User ids", "User object class": "Vartotojo objektų klasė", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Vartotojo kelias", "User path is used in addition to base DN while searching users.": "Naudotojo kelias naudojamas papildomai nustatyti numatytąjį vardų suteikimą ieškant vartotojų.\n\n", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "Naudotojo savarankiška registracija leidžia vartotojams, turintiems el. laišką iš į baltąjį sąrašą įtraukto domeno, be išankstinio administratoriaus kvietimo susikurti „passbolt“ paskyrą.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "Ką daryti, jei pamiršau slaptafrazę?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Koks yra slaptafrazės vaidmuo?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "Kai komentaras paskelbiamas apie slaptažodį, praneškite vartotojams, kurie turi prieigą prie šio slaptažodžio.", "When a folder is created, notify its creator.": "Kai aplankas sukurtas, praneškite jo kūrėjui.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Kai vartotojai pašalinami iš grupės, praneškite jiems.", "When users completed the recover of their account, notify them.": "When users completed the recover of their account, notify them.", "When users try to recover their account, notify them.": "Kai vartotojai bando atkurti savo paskyrą, praneškite jiems.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "Kam reikalingas šis žetonas?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "Galite pasirinkti numatytąjį kelių veiksnių autentifikavimo elgesį visiems vartotojams.\n", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Šiuos naujai importuotus slaptažodžius rasite aplanke <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Šiuos naujai importuotus slaptažodžius rasite po žyma <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Galite paprašyti kito kvietimo el. paštu spustelėdami toliau esantį mygtuką.", "You can restart this process if you want to configure another phone.": "Galite iš naujo paleisti šį procesą, jei norite sukonfigūruoti kitą telefoną.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Negalite ištrinti šios grupės!", "You cannot delete this user!": "Negalite ištrinti šio vartotojo!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Jūs dar neturite jokių slaptažodžių. Čia atrodo šiek tiek tuščia, sukurkite pirmąjį slaptažodį.", "You need to click save for the changes to take place.": "Kad pakeitimai įvyktų, turite paspausti išsaugoti.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "You need to finalize the account recovery process with the same computer you used for the account recovery request.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "You need use the same computer and browser to finalize the process.", "You need your passphrase to continue.": "Jei norite tęsti, turite įvesti slaptafrazę.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Panašu, kad jūsų el. pašto pranešimų nustatymai yra nustatyti passbolt.php (arba per aplinkos kintamuosius) ", diff --git a/src/locales/nl-NL/common.json b/src/locales/nl-NL/common.json index a3eedd5b1..78ebb622d 100644 --- a/src/locales/nl-NL/common.json +++ b/src/locales/nl-NL/common.json @@ -62,6 +62,7 @@ "Accept new key": "Accepteer nieuwe sleutel", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "Een uitnodiging is vereist voor toegang tot deze service.", + "Account kit": "Account kit", "Account recovery": "Herstel van je account", "Account Recovery": "Herstellen account", "Account recovery enrollment": "Account recovery enrollment", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Allowed domains", "Allows Azure and Passbolt API to securely share information.": "Allows Azure and Passbolt API to securely share information.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "momenteel:", "Customer id:": "Klant-ID:", "Decrypting": "Ontsleutelen", + "Decrypting secret": "Ontsleutelen van het geheim", "Decryption failed, click here to retry": "Ontsleutelen mislukt, klik hier om het opnieuw te proberen", "Default": "Standaard", "Default admin": "Standaard beheerder", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Voer het wachtwoord en/of sleutelbestand in", "Enter the private key used by your organization for account recovery": "Enter the private key used by your organization for account recovery", "entropy:": "entropie:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Foutmelding", "Error details": "Details foutmeldingen", "Error, this is not the current organization recovery key.": "Error, this is not the current organization recovery key.", @@ -321,6 +325,7 @@ "Export": "Exporteren", "Export all": "Alles exporteren", "Export passwords": "Wachtwoorden exporteren", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Fair", "FAQ: Why are my emails not sent?": "FAQ: Why are my emails not sent?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Alleen voor OpenLDAP. Definieert welk groepsobject gebruikt moet worden.", "For Openldap only. Defines which user object to use.": "Alleen voor OpenLDAP. Definieert welk gebruikersobject gebruikt moet worden.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Maak veilig een nieuw wachtwoord aan", "Generate new key instead": "Generate new key instead", "Generate password": "Maak een wachtwoord aan", + "Get started !": "Aan de slag !", "Get started in 5 easy steps": "Ga aan de slag in 5 eenvoudige stappen", "Go back": "Ga terug", "Go to MFA settings": "Go to MFA settings", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Als u uw account nog wilt herstellen, moet u het proces helemaal opnieuw starten.", "Ignored:": "Genegeerd", "Import": "Importeren", + "Import account": "Import account", "Import an OpenPGP Public key": "Een OpenPGP Publieke sleutel importeren", + "Import another account": "Import another account", "Import folders": "Importeer mappen", "Import passwords": "Importeer wachtwoorden", "Import success!": "Importeren gelukt!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "In deze sectie kunt u de samenstelling van de e-mails aanpassen, bijvoorbeeld welke informatie zal worden opgenomen in de notificatie.", "In this section you can choose the default behavior of account recovery for all users.": "Hier kunt u het standaard gedrag van account herstel voor alle gebruikers kiezen.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Ongeldig type machtiging voor het delen van machtigingsonderdeel.", "is owner": "is eigenaar", "Is owner": "Is eigenaar", - "It contains letters and numbers": "Het bevat letters en cijfers", - "It contains lower and uppercase characters": "Het bevat kleine en hoofdletters", - "It contains special characters (like / or * or %)": "Het bevat speciale tekens (zoals / of * of %)", "It does feel a bit empty here.": "Het voelt hier wel een beetje leeg.", - "It is at least 8 characters in length": "Het is tenminste 8 tekens lang", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Het is verplicht om een kopie van uw persoonlijke sleutel op een veilige manier te delen met uw organisatie herstelcontacten. Wilt u doorgaan?", - "It is not part of an exposed data breach": "Het maakt geen deel uit van een bekend datalek", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobiele Apps", "Mobile setup": "Mobiele installatie", "Mobile transfer": "Mobiele overdracht", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Er zijn nog geen wachtwoorden gemarkeerd als favoriet. Voeg sterren toe aan wachtwoorden die je later gemakkelijk wilt terugvinden.", "None of your passwords matched this search.": "Geen van je wachtwoorden komt overeen met deze zoekopdracht.", "not available": "niet beschikbaar", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Opmerking: Beheerders kunnen gebruikers toevoegen en verwijderen; zij kunnen ook groepen maken en groepsbeheerders toewijzen; standaard kunnen zij niet alle wachtwoorden zien.", "Number of recovery": "Aantal herstelpogingen", "Number of words": "Aantal woorden", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Only administrators can invite users to register.", "Only administrators would be able to invite users to register. ": "Only administrators would be able to invite users to register. ", "Only numeric characters allowed.": "Alleen numerieke tekens toegestaan.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Alleen actieve gebruikers synchroniseren (AD)", "Only the group manager can add new people to a group.": "Alleen de groepsbeheerder kan nieuwe mensen toevoegen aan een groep.", "Oops, something went wrong": "Oeps, er ging iets mis", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt is available on AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt heeft een SMTP-server nodig om uitnodigingse-mails te versturen na het aanmaken van een account en om e-mailnotificaties te verzenden.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Wachtwoordzin", "Passphrase required": "Wachtwoordzin vereist", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Kies een kleur en voer 3 tekens in.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Bevestig dat je de wachtwoorden daadwerkelijk wilt verwijderen. Als je op OK klikt, zullen de wachtwoorden permanent verwijderd worden.", + "Please contact your administrator to enable multi-factor authentication.": "Neem contact op met je beheerder om Multi-factor Authenticatie in te schakelen.", "Please contact your administrator to enable the account recovery feature.": "Please contact your administrator to enable the account recovery feature.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Neem contact op met je beheerder om een uitnodigingslink aan te vragen.", "Please double check with the user in case they still need some help to log in.": "Please double check with the user in case they still need some help to log in.", "Please download one of these browsers to get started with passbolt:": "Please download one of these browsers to get started with passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Voer je wachtwoordzin in om door te gaan.", "Please enter your passphrase.": "Voer je wachtwoordzin in.", "Please enter your private key to continue.": "Please enter your private key to continue.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Installeer de browserextensie.", "Please make sure there is at least one group manager.": "Zorg ervoor dat er tenminste één groepsbeheerder is.", "Please make sure there is at least one owner.": "Zorg ervoor dat er tenminste één eigenaar is.", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Geheime sleutel", + "Secure": "Secure", "Security token": "Beveiligingstoken", "See error details": "Bekijk details foutmelding", "See list": "Lijst weergeven", "See structure": "Structuur weergeven", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "Selecteer een bestand om te importeren", "Select a provider": "Select a provider", "Select all": "Select all", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Er ging iets mis. Het aanmelden is mislukt met de volgende foutmelding:", "Something went wrong!": "Er ging iets mis!", "Sorry the account recovery feature is not enabled for this organization.": "Sorry the account recovery feature is not enabled for this organization.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "sorry, je kunt op het moment maar één sleutelset hebben", "Sorry your subscription is either missing or not readable.": "Sorry, je abonnement ontbreekt of is niet leesbaar.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Sorry, het is niet mogelijk om verder te gaan. De eerste QR-code is niet ingevuld.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "De wachtwoordzin is bijgewerkt!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "The passphrase you defined when initiating the account recovery is required to complete the operation.", - "The password field is not defined.": "Het veld voor het wachtwoord is niet gedefinieerd.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Het wachtwoord is als favoriet toegevoegd", "The password has been added successfully": "Het wachtwoord is met succes toegevoegd", "The password has been copied to clipboard": "Het wachtwoord is gekopieerd naar het klembord", "The password has been removed from favorites": "Het wachtwoord is verwijderd uit je favorieten", "The password has been updated successfully": "Het wachtwoord is met succes bijgewerkt", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Het wachtwoord is niet ingevuld.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "Het geheim is naar het klembord gekopieerd", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "De geheime platte tekst is niet ingevuld.", "The security token code should be 3 characters long.": "De code van het beveiligingstoken moet 3 tekens lang zijn.", "The security token code should not be empty.": "De code van het beveiligingstoken moet ingevuld worden.", "The security token has been updated successfully": "Het beveiligingstoken is met succes bijgewerkt", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Het thema is met succes bijgewerkt", "The Time-based One Time Password provider is disabled for all users.": "De aanbieder van het Tijdelijk Eenmalig Wachtwoord (TOTP) is uitgeschakeld voor alle gebruikers.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "De aanbieder van het Tijdelijk Eenmalig Wachtwoord (TOTP) is ingeschakeld voor alle gebruikers. Ze kunnen deze aanbieder instellen in hun profiel en als tweefactorauthenticatie gebruiken.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "De overdracht is geannuleerd, omdat de andere cliënt een foutmelding geeft.", "The uri has been copied to clipboard": "De URI is gekopieerd naar het klembord", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "De gebruiker is met succes verwijderd", "The user has been updated successfully": "De gebruiker is met succes bijgewerkt", "The user is not a member of any group yet": "De gebruiker is nog geen lid van een groep", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "The user who requested an account recovery does not exist.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Deze wachtwoordzin is de enige die je vanaf nu hoeft te onthouden, dus kies wijs!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Dit beveiligingstoken wordt weergegeven wanneer er om uw wachtwoordzin wordt gevraagd, zodat u snel kunt controleren of het formulier afkomstig is van Passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Dit beveiligingstoken wordt weergegeven wanneer er om uw wachtwoordzin wordt gevraagd, zodat u snel kunt controleren of het formulier afkomstig is van Passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Tijdelijk Eenmalig Wachtwoord (TOTP)", "Tips for choosing a good passphrase": "Tips voor het kiezen van een goede wachtwoordzin", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "Overdracht voltooid!", "Transfer in progress...": "Overdracht is bezig...", "Transfer your account key": "Uw account sleutel overdragen", @@ -1007,6 +1029,7 @@ "updated": "bijgewerkt", "upload": "uploaden", "Upload a new avatar picture": "Upload een nieuwe avatarfoto", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Hoofdletters", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "Gebruikers ID's", "User object class": "Gebruikersobjectklasse", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Gebruikerspad", "User path is used in addition to base DN while searching users.": "Het gebruikerspad wordt toegepast in combinatie met de basis-DN tijdens het zoeken naar gebruikers.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "Wat als ik mijn wachtwoordzin vergeten ben?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Wat is de functie van de wachtwoordzin?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "Als er een opmerking is geplaatst met betrekking tot een wachtwoord, informeer dan de gebruikers die toegang hebben tot dit wachtwoord.", "When a folder is created, notify its creator.": "Als een map is aangemaakt, breng de maker hiervan op de hoogte.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Wanneer gebruikers worden verwijderd uit een groep, breng ze daarvan op de hoogte.", "When users completed the recover of their account, notify them.": "When users completed the recover of their account, notify them.", "When users try to recover their account, notify them.": "Als gebruikers proberen hun account te herstellen, breng ze daarvan op de hoogte.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "Waar is dit token voor nodig?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Je vindt deze zojuist geïmporteerde wachtwoorden in de map <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Je vindt deze zojuist geïmporteerde wachtwoorden onder de label <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Je kunt een andere uitnodigingsmail aanvragen door op de knop hieronder te klikken.", "You can restart this process if you want to configure another phone.": "Je kunt dit proces opnieuw beginnen als je een andere telefoon wilt configureren.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Je kunt deze groep niet verwijderen!", "You cannot delete this user!": "Je kunt deze gebruiker niet verwijderen!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Je hebt nog geen wachtwoorden. Het voelt hier wel een beetje leeg, maak je eerste wachtwoord aan.", "You need to click save for the changes to take place.": "Klik op opslaan om de wijzigingen door te voeren.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "You need to finalize the account recovery process with the same computer you used for the account recovery request.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "U moet dezelfde computer en browser gebruiken om het proces af te ronden.", "You need your passphrase to continue.": "Je hebt jouw wachtwoordzin nodig om door te gaan.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Het lijkt erop dat je notificatie-instellingen voor e-mail gedefinieerd hebt in Passbolt.php (of via de omgevingsvariabelen).", diff --git a/src/locales/pl-PL/common.json b/src/locales/pl-PL/common.json index 2fa8f6f96..4d96b2b23 100644 --- a/src/locales/pl-PL/common.json +++ b/src/locales/pl-PL/common.json @@ -62,6 +62,7 @@ "Accept new key": "Zaakceptuj nowy klucz", "Accept the new SSO provider": "Zaakceptuj nowego dostawcę SSO", "Access to this service requires an invitation.": "Dostęp do tej usługi wymaga zaproszenia.", + "Account kit": "Account kit", "Account recovery": "Odzyskiwanie konta", "Account Recovery": "Odzyskiwanie konta", "Account recovery enrollment": "Rejestracja do odzyskiwania konta", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Zezwól na opcję “Zapamiętaj to urządzenie na miesiąc“ podczas uwierzytelniania wieloskładnikowego.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Dozwolone domeny", "Allows Azure and Passbolt API to securely share information.": "Pozwala Azure i Passbolt API na bezpieczne udostępnianie informacji.", "Allows Google and Passbolt API to securely share information.": "Pozwala na bezpieczną wymianę informacji pomiędzy Google i API Passbolta.", @@ -223,6 +225,7 @@ "currently:": "aktualnie:", "Customer id:": "Id klienta:", "Decrypting": "Odszyfrowywanie", + "Decrypting secret": "Odszyfrowywanie sekretu", "Decryption failed, click here to retry": "Odszyfrowywanie nie powiodło się, kliknij tutaj, aby spróbować ponownie", "Default": "Domyślnie", "Default admin": "Domyślny administrator", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Wpisz hasło i/lub plik klucza", "Enter the private key used by your organization for account recovery": "Wprowadź klucz prywatny, którego Twoja organizacja używa do odzyskiwania konta", "entropy:": "entropia:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Błąd", "Error details": "Szczegóły błędu", "Error, this is not the current organization recovery key.": "Błąd, to nie jest aktualny klucz odzyskiwania organizacji.", @@ -321,6 +325,7 @@ "Export": "Eksportuj", "Export all": "Eksportuj wszystkie", "Export passwords": "Eksportuj hasła", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Przeciętne", "FAQ: Why are my emails not sent?": "FAQ: Dlaczego moje emaile się nie wysyłają?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Aby uzyskać więcej informacji o ustawieniach polityki uwierzytelniania wieloskładnikowego, sprawdź specjalnie wydzielony artykuł na stronie pomocy.", "For more information about SSO, checkout the dedicated page on the help website.": "Aby uzyskać więcej informacji na temat SSO, sprawdź specjalnie wydzielony artykuł na stronie pomocy.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Tylko dla Openldap. Określa, którego obiektu z grupy użyć.", "For Openldap only. Defines which user object to use.": "Tylko dla Openldap. Określa, którego obiektu użytkownika użyć.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Wygeneruj bezpiecznie nowe hasło", "Generate new key instead": "Wygeneruj nowy klucz", "Generate password": "Wygeneruj hasło", + "Get started !": "Zaczynamy !", "Get started in 5 easy steps": "Zacznij w 5 prostych krokach", "Go back": "Wróć", "Go to MFA settings": "Przejdź do ustawień MFA", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Jeżeli wciąż potrzebujesz odzyskać swoje konto, musisz rozpocząć cały proces od początku.", "Ignored:": "Zignorowano", "Import": "Importuj", + "Import account": "Import account", "Import an OpenPGP Public key": "Importuj klucz publiczny OpenPGP", + "Import another account": "Import another account", "Import folders": "Importuj foldery", "Import passwords": "Importuj hasła", "Import success!": "Import zakończony sukcesem!", "Import/Export": "Import/Export", "Important notice:": "Ważna informacja:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "Do korzystania z metody uwierzytelniania przez Google i jego "Nazwę użytkownika oraz hasło" musisz włączyć uwierzytelnianie wieloskładnikowe na Twoim koncie Google. Hasło nie powinno być Twoim hasłem logowania, musisz stworzyć "Hasło Aplikacji" wygenerowane przez Google. Adres email pozostaje bez zmian.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "W tej sekcji możesz dostosować układ wiadomości e-mail, np. jakie dane będą zawarte w powiadomieniu.", "In this section you can choose the default behavior of account recovery for all users.": "W tej sekcji możesz sprecyzować domyślne zachowanie procesu odzyskiwania kont dla wszystkich użytkowników.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Nieprawidłowy typ uprawnień dla elementu uprawnień udostępniania.", "is owner": "jest właścicielem", "Is owner": "Jest właścicielem", - "It contains letters and numbers": "Zawiera litery oraz cyfry", - "It contains lower and uppercase characters": "Zawiera małe i duże litery", - "It contains special characters (like / or * or %)": "Zawiera znaki specjalne (takie jak / lub * lub %)", "It does feel a bit empty here.": "Trochę tutaj pusto.", - "It is at least 8 characters in length": "Składa się z minimum 8 znaków", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Udostępnienie kopii Twojego prywatnego klucza i hasła dostępu kontaktom awaryjnym z Twojej organizacji jest obowiązkowe. Czy chcesz kontynuować?", - "It is not part of an exposed data breach": "Nie jest to część zbioru danych, które wyciekły", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Nie można wykonać operacji konfigurowania nowego konta, ponieważ wciąż jesteś zalogowany. Musisz najpierw wylogować się z konta.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Nie można wykonać operacji odzyskiwania konta, ponieważ wciąż jesteś zalogowany. Musisz najpierw wylogować się z konta.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Nie można odzyskać klucza prywatnego do Twojego konta, ponieważ wciąż jesteś zalogowany. Musisz najpierw wylogować się z konta.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "Polityka uwierzytelniania wieloskładnikowego", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Aplikacje mobilne", "Mobile setup": "Instalacja mobilna", "Mobile transfer": "Transfer mobilny", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Żadne z Twoich haseł nie zostało jeszcze oznaczone jako ulubione. Dodaj gwiazdki do haseł, które chcesz później łatwo odnaleźć.", "None of your passwords matched this search.": "Żadne z Twoich haseł nie pasowało do tego wyszukiwania.", "not available": "brak dostępu", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Uwaga: administratorzy mogą dodawać i usuwać użytkowników. Mogą też tworzyć grupy i przypisywać do nich menedżerów. Domyślnie nie widzą wszystkich haseł.", "Number of recovery": "Liczba odzyskiwań", "Number of words": "Liczba słów", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Tylko administratorzy mogą zapraszać użytkowników do rejestracji.", "Only administrators would be able to invite users to register. ": "Tylko administratorzy będą mogli zapraszać użytkowników do rejestracji. ", "Only numeric characters allowed.": "Możesz użyć tylko znaków numerycznych.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Synchronizuj tylko aktywnych użytkowników (AD)", "Only the group manager can add new people to a group.": "Tylko menedżer grupy może dodawać nowe osoby do grupy.", "Oops, something went wrong": "Ups, coś poszło nie tak", @@ -570,9 +579,10 @@ "Otherwise, you may lose access to your data.": "W przeciwnym razie możesz utracić dostęp do swoich danych.", "Owned by me": "Należące do mnie", "Passbolt is available on AppStore & PlayStore": "Passbolt jest dostępny w AppStore oraz PlayStore", - "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", + "Passbolt is available on the Windows store.": "Passbolt jest dostępny w sklepie Windows.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt potrzebuje serwera SMTP, aby wysyłać e-maile z zaproszeniami po utworzeniu konta oraz do wysyłki powiadomień e-mail.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Hasło dostępu", "Passphrase required": "Wymagane hasło dostępu", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Wybierz kolor i wpisz trzy znaki.", "Please authenticate with the Single Sign-On provider to continue.": "Uwierzytelnij się u dostawcy pojedynczego logowania (SSO), aby kontynuować.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Potwierdź, czy na pewno chcesz usunąć hasła. Jeśli klikniesz przycisk OK, hasła zostaną trwale usunięte.", + "Please contact your administrator to enable multi-factor authentication.": "Skontaktuj się ze swoim administratorem, aby włączyć uwierzytelnianie wieloskładnikowe.", "Please contact your administrator to enable the account recovery feature.": "Skontaktuj się z administratorem, aby włączyć funkcję odzyskiwania konta.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Skontaktuj się z administratorem, aby poprosić o link z zaproszeniem.", "Please double check with the user in case they still need some help to log in.": "Skontaktuj się z użytkownikiem na wypadek, gdyby potrzebował pomocy z logowaniem.", "Please download one of these browsers to get started with passbolt:": "Proszę pobrać jedną z tych przeglądarek, aby rozpocząć pracę z Passboltem:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Wpisz swoje hasło dostępu, aby kontynuować.", "Please enter your passphrase.": "Wpisz swoje hasło dostępu.", "Please enter your private key to continue.": "Wpisz swój klucz prywatny, aby kontynuować.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Zainstaluj rozszerzenie przeglądarki.", "Please make sure there is at least one group manager.": "Upewnij się, że istnieje przynajmniej jeden menedżer grupy.", "Please make sure there is at least one owner.": "Upewnij się, że istnieje przynajmniej jeden właściciel.", @@ -701,11 +714,13 @@ "Secret": "Sekret", "Secret expiry": "Termin ważności sekretu", "Secret key": "Tajny klucz", + "Secure": "Secure", "Security token": "Token bezpieczeństwa", "See error details": "Zobacz szczegóły błędu", "See list": "Wyświetl listę", "See structure": "Sprawdź strukturę", "See the {settings.provider.name} documentation": "Sprawdź dokumentację usługi {settings.provider.name}", + "Select a file": "Select a file", "Select a file to import": "Wybierz plik do importu", "Select a provider": "Wybierz dostawcę", "Select all": "Wybierz wszystkie", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Coś poszło nie tak. Logowanie nie powiodło się z następującym błędem:", "Something went wrong!": "Coś poszło nie tak!", "Sorry the account recovery feature is not enabled for this organization.": "Niestety funkcja odzyskiwania konta nie jest włączona w tej organizacji.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "przepraszamy, w tej chwili możesz mieć tylko jeden klucz", "Sorry your subscription is either missing or not readable.": "Niestety nie widzimy Twojej subskrypcji lub nie możemy jej odczytać.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Niestety nie możesz przejść dalej. Pierwszy kod QR jest pusty.", @@ -819,7 +836,7 @@ "The base DN (default naming context) for the domain.": "Bazowy DN (domyślny kontekst nazewnictwa) domeny.", "The comment has been added successfully": "Komentarz został dodany", "The comment has been deleted successfully": "Komentarz został usunięty", - "The configuration has been disabled as it needs to be checked to make it correct before using it.": "The configuration has been disabled as it needs to be checked to make it correct before using it.", + "The configuration has been disabled as it needs to be checked to make it correct before using it.": "Konfiguracja została wyłączona, ponieważ musi być sprawdzona, tak aby była poprawna przed jej użyciem.", "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.": "The current configuration comes from the environment variable. If you save them, they will be overwritten and come from the database instead.", "The current passphrase configuration generates passphrases that are not strong enough.": "The current passphrase configuration generates passphrases that are not strong enough.", "The current password configuration generates passwords that are not strong enough.": "The current password configuration generates passwords that are not strong enough.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "Zaktualizowano hasło dostępu!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "Do zakończenia operacji potrzebujesz hasła dostępu, które zdefiniowano podczas rozpoczęcia procesu odzyskiwania konta.", - "The password field is not defined.": "Pole hasła nie jest zdefiniowane.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Hasło zostało dodane do ulubionych", "The password has been added successfully": "Hasło zostało dodane", "The password has been copied to clipboard": "Hasło zostało skopiowane do schowka", "The password has been removed from favorites": "Hasło zostało usunięte z ulubionych", "The password has been updated successfully": "Hasło zostało zaktualizowane", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Pole hasła jest puste.", "The password is part of an exposed data breach.": "Hasło należy do zbioru danych, które wyciekły.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "Data ważności Sekretu jest wymagana", "The secret has been copied to clipboard": "Sekret został skopiowany do schowka", "The Secret is required": "Sekret jest wymagany", - "The secret plaintext is empty.": "Tajny czysty tekst jest pusty.", "The security token code should be 3 characters long.": "Kod tokenu bezpieczeństwa powinien składać się z 3 znaków.", "The security token code should not be empty.": "Kod tokenu bezpieczeństwa nie powinien być pusty.", "The security token has been updated successfully": "Token bezpieczeństwa został zaktualizowany", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Motyw został zaktualizowany", "The Time-based One Time Password provider is disabled for all users.": "Opcja dostawcy Haseł jednorazowych ograniczonych czasowo jest wyłączona u wszystkich użytkowników.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Opcja dostawcy Haseł jednorazowych ograniczonych czasowo jest włączona u wszystkich użytkowników. Mogą oni skonfigurować tego dostawcę w swoich profilach i użyć go jako drugiego składnika uwierzytelniania.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Transfer został anulowany, ponieważ inny klient zwrócił błąd.", "The uri has been copied to clipboard": "Adres URL został skopiowany do schowka", "The URL to provide to Azure when registering the application.": "Adres URL do podania w Azure podczas procesu rejestracji aplikacji.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "Użytkownik został usunięty", "The user has been updated successfully": "Użytkownik został zaktualizowany", "The user is not a member of any group yet": "Użytkownik nie jest jeszcze członkiem żadnej grupy", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "Użytkownik, który zażądał odzyskiwania konta, już nie istnieje.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "To jest adres email, który zobaczą użytkownicy w swoich skrzynkach, gdy passbolt wyśle im powiadomienie.<1>Warto tutaj podać działający adres email, na który użytkownicy będą mogli wysłać odpowiedź.", "this is the maximum size for this field, make sure your data was not truncated": "to maksymalny rozmiar dla tego pola, upewnij się, że Twoje dane nie zostały ucięte.", "This is the name users will see in their mailbox when passbolt sends a notification.": "To jest nazwa, którą zobaczą użytkownicy w skrzynce pocztowej, gdy passbolt wyśle im powiadomienie.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "To hasło dostępu jest jedynym hasłem, które od teraz musisz pamiętać, więc wybierz mądrze!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Ten token bezpieczeństwa wyświetli się, gdy będzie wymagane Twoje hasło dostępu, więc możesz szybko sprawdzić, czy formularz pochodzi od passbolta.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Ten token bezpieczeństwa wyświetli się, gdy będzie wymagane Twoje hasło dostępu, więc możesz szybko sprawdzić, czy formularz pochodzi od passbolta.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Hasło jednorazowe ograniczone czasowo", "Tips for choosing a good passphrase": "Wskazówki stworzenia dobrego hasła dostępu", "TLS must be set to 'Yes' or 'No'": "TLS musi być ustawiony na wartość 'Tak' lub 'Nie'", + "TOTP": "TOTP", "Transfer complete!": "Transfer zakończony!", "Transfer in progress...": "Transfer w toku...", "Transfer your account key": "Przenieś swój klucz konta", @@ -1007,6 +1029,7 @@ "updated": "zaktualizowano", "upload": "prześlij", "Upload a new avatar picture": "Prześlij nowy awatar", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Duże litery", "URI": "Adres URL", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "Identyfikatory użytkownika", "User object class": "Klasa obiektu użytkownika", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Ścieżka użytkownika", "User path is used in addition to base DN while searching users.": "Ścieżka użytkownika jest używana jako dodatek do bazowego DN podczas wyszukiwania użytkowników.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "Samodzielna rejestracja pozwala użytkownikom posiadającym adres e-mail w autoryzowanej domenie na stworzenie konta passbolt bez wcześniejszego zaproszenia od administratora.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "A co, jeśli zapomnę mojego hasła dostępu?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Do czego służy hasło dostępu?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "Co to jest samodzielna rejestracja użytkowników?", "When a comment is posted on a password, notify the users who have access to this password.": "Gdy do hasła zostanie dopisany komentarz, powiadom użytkowników z dostępem do tego hasła.", "When a folder is created, notify its creator.": "Gdy folder zostanie utworzony, powiadom jego twórcę.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Gdy użytkownicy zostaną usunięci z grupy, powiadom ich.", "When users completed the recover of their account, notify them.": "Gdy użytkownik zakończy proces odzyskiwania swojego konta, powiadom go o tym.", "When users try to recover their account, notify them.": "Gdy użytkownicy próbują odzyskać swoje konto, powiadom ich.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Gdzie to znaleźć?", "Why do I need an SMTP server?": "Dlaczego serwer SMTP jest mi potrzebny?", "Why is this token needed?": "Do czego służy ten token?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "Możesz wybrać domyślne zachowanie uwierzytelniania wieloskładnikowego dla wszystkich użytkowników.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Możesz znaleźć te nowo zaimportowane hasła w folderze <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Możesz znaleźć te nowo zaimportowane hasła pod tagiem <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Możesz poprosić o kolejny e-mail z zaproszeniem, klikając na poniższy przycisk.", "You can restart this process if you want to configure another phone.": "Możesz uruchomić ten proces ponownie, jeśli chcesz skonfigurować inny telefon.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Nie możesz usunąć tej grupy!", "You cannot delete this user!": "Nie możesz usunąć tego użytkownika!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Nie posiadasz jeszcze żadnych haseł. Trochę tutaj pusto, więc stwórz swoje pierwsze hasło.", "You need to click save for the changes to take place.": "Musisz kliknąć przycisk Zapisz, aby zmiany zostały wprowadzone.", "You need to enter your current passphrase.": "Musisz wprowadzić aktualne hasło dostępu.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Musisz zakończyć proces odzyskiwania konta na tym samym komputerze, z którego wysłano prośbę o kopię zapasową konta.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Musisz użyć tego samego komputera i przeglądarki, aby dokończyć proces.", "You need your passphrase to continue.": "Potrzebujesz hasła dostępu, aby kontynuować.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Wygląda na to, że Twoje ustawienia powiadomień e-mail są zdefiniowane w pliku passbolt.php (lub poprzez zmienne środowiskowe).", diff --git a/src/locales/pt-BR/common.json b/src/locales/pt-BR/common.json index 44fd11283..c8804cad8 100644 --- a/src/locales/pt-BR/common.json +++ b/src/locales/pt-BR/common.json @@ -62,6 +62,7 @@ "Accept new key": "Aceitar nova chave", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "O acesso a esse serviço requer um convite.", + "Account kit": "Account kit", "Account recovery": "Recuperação de conta", "Account Recovery": "Recuperação de conta", "Account recovery enrollment": "Inscrição de recuperação de conta", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Permitir “Lembrar este dispositivo por um mês.“ opção durante o MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Domínios permitidos", "Allows Azure and Passbolt API to securely share information.": "Permite que o Azure e a API do Passbolt compartilhem informações com segurança.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "atualmente:", "Customer id:": "Id do cliente:", "Decrypting": "Descriptografando", + "Decrypting secret": "Descriptografando segredo", "Decryption failed, click here to retry": "Descriptografia falhou, clique aqui para tentar novamente", "Default": "Padrão", "Default admin": "Administrador padrão", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Insira a senha e/ou arquivo chave", "Enter the private key used by your organization for account recovery": "Digite a chave privada usada pela sua organização para a recuperação de conta", "entropy:": "entropia:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Erro", "Error details": "Detalhes do erro", "Error, this is not the current organization recovery key.": "Erro, esta não é a chave de recuperação da organização atual.", @@ -321,6 +325,7 @@ "Export": "Exportar", "Export all": "Exportar tudo", "Export passwords": "Exportar senhas", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Média", "FAQ: Why are my emails not sent?": "FAQ: Por que meus e-mails não foram enviados?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "Para mais informações sobre configurações de políticas de MFA, verifique a página dedicada no site de suporte.", "For more information about SSO, checkout the dedicated page on the help website.": "Para obter mais informações sobre SSO, confira a página dedicada no site de ajuda.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Somente para Openldap. Define qual objeto de grupo a ser usado.", "For Openldap only. Defines which user object to use.": "Somente para Openldap. Define qual objeto de usuário a ser usado.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Gerar uma nova senha com segurança", "Generate new key instead": "Gerar nova chave em vez disso", "Generate password": "Gerar Senha", + "Get started !": "Iniciar !", "Get started in 5 easy steps": "Comece em 5 passos simples", "Go back": "Voltar", "Go to MFA settings": "Vá para configurações de MFA", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Se você ainda precisa recuperar sua conta, você precisará iniciar o processo do zero.", "Ignored:": "Ignorado", "Import": "Importar", + "Import account": "Import account", "Import an OpenPGP Public key": "Importar uma chave pública do OpenPGP", + "Import another account": "Import another account", "Import folders": "Importar pastas", "Import passwords": "Importar senhas", "Import success!": "Importado com sucesso!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "Nessa seção você pode ajustar a composição dos e-mails, por exemplo, quais informações serão incluídas na notificação.", "In this section you can choose the default behavior of account recovery for all users.": "Nesta seção, você pode escolher o comportamento padrão de recuperação de conta para todos os usuários.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Tipo de permissão inválido para compartilhar item de permissão.", "is owner": "é o proprietário", "Is owner": "É o proprietário", - "It contains letters and numbers": "Contém letras e números", - "It contains lower and uppercase characters": "Contém caracteres minúsculos e maiúsculos", - "It contains special characters (like / or * or %)": "Contém caracteres especiais (como / ou * ou %)", "It does feel a bit empty here.": "Parece um pouco solitário aqui.", - "It is at least 8 characters in length": "É de pelo menos 8 caracteres", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "É obrigatório compartilhar com segurança uma cópia da sua chave privada com os seus contatos de recuperação de organização. Você gostaria de continuar?", - "It is not part of an exposed data breach": "Não faz parte de um vazamento de dados", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Não é possível executar a configuração de uma nova conta já que você ainda está logado. Você precisa encerrar a sessão antes de continuar.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Não é possível realizar a recuperação de sua conta já que você ainda está logado. Você precisa encerrar a sessão antes de continuar.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Não é possível recuperar a sua chave privada da sua conta já que você ainda está logado. Você precisa encerrar a sessão antes de continuar.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "Multiplo Fator Autenticação", "MFA Policy": "Política de MFA", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Aplicativos Móveis", "Mobile setup": "Configuração de dispositivos móveis", "Mobile transfer": "Transferência móvel", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Nenhuma das suas senhas está marcada como favorita. Adicione estrelas às senhas que você deseja encontrar mais tarde.", "None of your passwords matched this search.": "Nenhuma das suas senhas corresponde a esta pesquisa.", "not available": "não disponível", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Nota: os Administradores podem adicionar e excluir usuários. Eles também podem criar grupos e associar gerentes a eles. Por padrão, Administradores não podem visualizar todas as senhas.", "Number of recovery": "Número de recuperação", "Number of words": "Número de palavras", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Somente administradores podem convidar usuários para se registrarem.", "Only administrators would be able to invite users to register. ": "Somente administradores poderiam convidar usuários para se registrarem. ", "Only numeric characters allowed.": "Apenas caracteres numéricos são permitidos.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Sincronizar apenas os usuários habilitados (AD)", "Only the group manager can add new people to a group.": "Somente o gerente de grupo pode adicionar novas pessoas a um grupo.", "Oops, something went wrong": "Ops, algo deu errado", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt está disponível na AppStore e na PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "O Passbolt precisa de um servidor smtp para enviar e-mails de convites após a criação de uma conta e para enviar notificações por e-mail.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Senha", "Passphrase required": "Senha requerida", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Escolha uma cor e insira três caracteres.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Por favor, confirme que você realmente deseja excluir as senhas. Depois de clicar em ok, as senhas serão excluídas permanentemente.", + "Please contact your administrator to enable multi-factor authentication.": "Entre em contato com seu administrador para habilitar a autenticação multifator.", "Please contact your administrator to enable the account recovery feature.": "Entre em contato com o administrador para habilitar o recurso de recuperação de conta.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Entre em contato com o administrador para solicitar um link de convite.", "Please double check with the user in case they still need some help to log in.": "Por favor, verifique novamente com o usuário caso ele ainda precise de ajuda para fazer o login.", "Please download one of these browsers to get started with passbolt:": "Por favor, baixe um destes navegadores para começar a usar o passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Por favor, digite sua senha para continuar.", "Please enter your passphrase.": "Por favor, digite sua senha.", "Please enter your private key to continue.": "Por favor, digite a sua chave privada para continuar.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Por favor, instale a extensão do navegador.", "Please make sure there is at least one group manager.": "Por favor verifique se há pelo menos um gerente de grupo.", "Please make sure there is at least one owner.": "Por favor, verifique se há pelo menos um proprietário.", @@ -701,11 +714,13 @@ "Secret": "Segredo", "Secret expiry": "Expiração de segredo", "Secret key": "Chave secreta", + "Secure": "Secure", "Security token": "Token de segurança", "See error details": "Ver detalhes do erro", "See list": "Ver lista", "See structure": "Ver estrutura", "See the {settings.provider.name} documentation": "Veja a documentação {settings.provider.name}", + "Select a file": "Select a file", "Select a file to import": "Selecione um arquivo para importar", "Select a provider": "Selecione um provedor", "Select all": "Selecionar todos", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Algo deu errado, o login falhou com o seguinte erro:", "Something went wrong!": "Algo deu errado!", "Sorry the account recovery feature is not enabled for this organization.": "Desculpe, o recurso de recuperação de conta não está habilitado para esta organização.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "Lamentamos, mas você só pode ter uma chave definida no momento", "Sorry your subscription is either missing or not readable.": "Desculpe, sua assinatura está ausente ou não está legível.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Desculpe, não é possível continuar. O primeiro código QR está vazio.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "A senha é inválida!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "A senha que você definiu ao iniciar a recuperação de conta é necessária para concluir a operação.", - "The password field is not defined.": "O campo senha não está definido.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "A senha foi adicionada como favorita", "The password has been added successfully": "O grupo foi adicionado com sucesso", "The password has been copied to clipboard": "A senha foi copiada para a área de transferência", "The password has been removed from favorites": "A senha foi removida dos favoritos", "The password has been updated successfully": "O grupo foi adicionado com sucesso", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "A senha está vazia.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "A senha foi copiada para a área de transferência", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "O texto secreto está vazio.", "The security token code should be 3 characters long.": "O código do token de segurança deve ter 3 caracteres.", "The security token code should not be empty.": "O tipo de objeto favorito não pode estar vazio.", "The security token has been updated successfully": "O recurso foi atualizado com sucesso", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Etiqueta foi atualizada com sucesso", "The Time-based One Time Password provider is disabled for all users.": "O provedor de senha baseada em tempo único está desabilitado para todos os usuários.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "O provedor de senha baseada em tempo único está habilitado para todos os usuários. Eles podem configurar esse provedor em seu perfil e usá-lo como autenticação de segundo fator.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "A transferência foi cancelada porque o outro cliente retornou um erro.", "The uri has been copied to clipboard": "A senha foi copiada para a área de transferência", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "O usuário foi excluído com sucesso", "The user has been updated successfully": "O usuário foi atualizado com sucesso", "The user is not a member of any group yet": "O usuário ainda não é membro de nenhum grupo", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "O usuário que solicitou uma recuperação de conta não existe.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "esse é o tamanho máximo para este campo, certifique-se de que seus dados não foram truncados.", "This is the name users will see in their mailbox when passbolt sends a notification.": "Este é o nome que os usuários verão em sua caixa de entrada quando o passbolt enviar uma notificação.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Essa senha é a única senha que você precisará lembrar de agora em diante, escolha com sabedoria!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Este token de segurança será exibido quando a sua frase secreta for solicitada, e você poderá verificar rapidamente o formulário vem do passbolt", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Esse token de segurança será exibido quando sua senha for solicitada, para que você possa verificar rapidamente se o formulário está vindo do passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Senha de uso único com base no tempo", "Tips for choosing a good passphrase": "Dicas para escolher uma boa senha", "TLS must be set to 'Yes' or 'No'": "TLS deve ser definido como 'Sim' ou 'Não'", + "TOTP": "TOTP", "Transfer complete!": "Transferência concluída!", "Transfer in progress...": "Transferência em andamento...", "Transfer your account key": "Transferir sua chave de conta", @@ -1007,6 +1029,7 @@ "updated": "Atualizado", "upload": "enviar", "Upload a new avatar picture": "Enviar uma nova imagem de avatar", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Letras minúsculas", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "Ids de usuário", "User object class": "Classe do objeto usuário", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Caminho do Usuário", "User path is used in addition to base DN while searching users.": "O caminho do usuário é usado além do DN base durante a pesquisa dos usuários.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "O registro próprio de usuários permite que usuários com um e-mail de um domínio na lista branca criem a sua conta de acesso sem previamente receber um convite de administrador.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "E se eu esqueci minha senha?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Qual é o papel da senha?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "O que é registro próprio de usuário?", "When a comment is posted on a password, notify the users who have access to this password.": "Quando um comentário é postado em uma senha, notificar os usuários que têm acesso a esta senha.", "When a folder is created, notify its creator.": "Quando uma pasta for criada, notifique seu criador.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Quando os usuários são removidos de um grupo, notificá-los.", "When users completed the recover of their account, notify them.": "Notificar os usuários quando eles completarem a recuperação de suas contas.", "When users try to recover their account, notify them.": "Quando usuários tentarem recuperar as suas contas, notificá-los.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Onde encontrar?", "Why do I need an SMTP server?": "Por que preciso de um servidor SMTP?", "Why is this token needed?": "Por que este token é necessário?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Você pode encontrar essas senhas importadas recentemente na pasta <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Você pode encontrar essas senhas recém-importadas através da etiqueta <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Você pode solicitar outro e-mail de convite clicando no botão abaixo.", "You can restart this process if you want to configure another phone.": "Você pode reiniciar esse processo se desejar configurar outro telefone.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Você não pode excluir este grupo!", "You cannot delete this user!": "Você não pode excluir este usuário!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Você ainda não possui nenhuma senha. Parece estar um pouco vazio aqui, crie a sua primeira senha.", "You need to click save for the changes to take place.": "Você precisa clicar em salvar para as alterações a serem realizadas.", "You need to enter your current passphrase.": "Você precisa digitar sua senha atual.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Você precisa finalizar o processo de recuperação de conta com o mesmo computador que usou para o pedido de recuperação de conta.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Você precisa utilizar o mesmo computador e navegador para finalizar o processo.", "You need your passphrase to continue.": "Você precisa da sua senha para continuar.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Você parece ter as configurações de notificação de e-mail definidas em seu passbolt.php (ou através de variáveis de ambiente).", diff --git a/src/locales/ro-RO/common.json b/src/locales/ro-RO/common.json index 37ba04bab..afa2f3b3a 100644 --- a/src/locales/ro-RO/common.json +++ b/src/locales/ro-RO/common.json @@ -62,6 +62,7 @@ "Accept new key": "Acceptați noua cheie", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "Accesul la acest serviciu necesită o invitație.", + "Account kit": "Account kit", "Account recovery": "Recuperare cont", "Account Recovery": "Recuperare cont", "Account recovery enrollment": "Înregistrare recuperare cont", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Allowed domains", "Allows Azure and Passbolt API to securely share information.": "Allows Azure and Passbolt API to securely share information.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "actual:", "Customer id:": "Id client:", "Decrypting": "Se decriptează", + "Decrypting secret": "Se decriptează secretul", "Decryption failed, click here to retry": "Decriptare eșuată, faceți clic aici pentru a reîncerca", "Default": "Implicit", "Default admin": "Administrator implicit", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Introduceți parola şi/sau fișierul cheii", "Enter the private key used by your organization for account recovery": "Introduceți cheia privată utilizată de organizație pentru recuperarea contului", "entropy:": "entropie:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Eroare", "Error details": "Detalii eroare", "Error, this is not the current organization recovery key.": "Eroare, aceasta nu este actuala cheie de recuperare a organizației.", @@ -321,6 +325,7 @@ "Export": "Exportați", "Export all": "Exportați tot", "Export passwords": "Exportă parole", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Bună", "FAQ: Why are my emails not sent?": "FAQ: Why are my emails not sent?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Doar pentru OpenLdap. Definește ce obiect de grup să folosesc.", "For Openldap only. Defines which user object to use.": "Doar pentru OpenLdap. Definește ce obiect utilizator să folosesc.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Generează o parolă nouă în siguranță", "Generate new key instead": "Generează o cheie nouă în schimb", "Generate password": "Generează parolă", + "Get started !": "Începeți !", "Get started in 5 easy steps": "Începeți în 5 pași simpli", "Go back": "Mergeți înapoi", "Go to MFA settings": "Go to MFA settings", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "Dacă încă mai trebuie să-ți recuperezi contul, va trebui să începi procesul de la zero.", "Ignored:": "Ignorat", "Import": "Importă", + "Import account": "Import account", "Import an OpenPGP Public key": "Importă o cheie publică OpenPGP", + "Import another account": "Import another account", "Import folders": "Importă foldere", "Import passwords": "Importă parole", "Import success!": "Importul a reușit!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "În această secțiune puteți ajusta conținutul e-mailurilor, de ex. ce informații vor fi incluse în notificare.", "In this section you can choose the default behavior of account recovery for all users.": "În această secțiune puteți alege comportamentul implicit de recuperare a contului pentru toți utilizatorii.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Tip de permisiune invalid pentru articolul de permisiune partajat.", "is owner": "este proprietar", "Is owner": "Este proprietar", - "It contains letters and numbers": "Conține litere și numere", - "It contains lower and uppercase characters": "Conține caractere mai mici și majuscule", - "It contains special characters (like / or * or %)": "Conține caractere speciale (ca / sau * sau %)", "It does feel a bit empty here.": "Pare cam pustiu.", - "It is at least 8 characters in length": "Are cel puțin 8 caractere în lungime", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "Este obligatoriu să partajați în siguranță o copie a cheii private cu contactele de recuperare ale organizației. Doriți să continuați?", - "It is not part of an exposed data breach": "Nu face parte dintr-o listă de parole compromise", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "Nu este posibil să efectuați o configurare a unui cont nou deoarece sunteți conectat. Trebuie să te deconectezi mai întâi înainte de a continua.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "Nu este posibil să efectuați recuperarea contului dvs. deoarece sunteți conectat. Trebuie să vă deconectați mai întâi înainte de a continua.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "Nu este posibilă recuperarea cheii dvs private deoarece sunteți conectat. Trebuie să vă deconectați mai întâi înainte de a continua.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Aplicații mobile", "Mobile setup": "Configurare mobil", "Mobile transfer": "Transfer mobil", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Niciuna dintre parolele dvs. nu este marcată ca favorită. Adaugă stele parolelor pe care vrei să le găsești mai târziu.", "None of your passwords matched this search.": "Niciuna dintre parolele tale se potrivesc cu această căutare.", "not available": "nu este disponibil", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Notă: Administratorii pot adăuga și șterge utilizatori; ei pot crea, de asemenea, grupuri și atribui manageri de grup; În mod implicit, ei nu pot vedea toate parolele.", "Number of recovery": "Numărul de recuperare", "Number of words": "Numarul de cuvinte", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Only administrators can invite users to register.", "Only administrators would be able to invite users to register. ": "Only administrators would be able to invite users to register. ", "Only numeric characters allowed.": "Sunt permise doar caractere numerice.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Sincronizează doar utilizatorii activați (AD)", "Only the group manager can add new people to a group.": "Numai managerul grupului poate adăuga persoane noi la un grup.", "Oops, something went wrong": "Hopa, ceva nu a mers bine", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt este disponibil în AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt are nevoie de un server SMTP pentru a trimite e-mail-uri de invitație după crearea unui cont și pentru a trimite ulterior notificări e-mail.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Parolă", "Passphrase required": "Parolă necesară", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Alegeți o culoare și introduceți trei caractere.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Vă rugăm să confirmați că doriți cu adevărat să ștergeți parolele. După ce faceți clic pe ok, parolele vor fi șterse definitiv.", + "Please contact your administrator to enable multi-factor authentication.": "Vă rugăm să contactați administratorul pentru a activa autentificarea multi-factor.", "Please contact your administrator to enable the account recovery feature.": "Vă rugăm să contactați administratorul pentru a activa funcția de recuperare a contului.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Vă rugăm să contactați administratorul dvs. pentru a solicita un link de invitație.", "Please double check with the user in case they still need some help to log in.": "Te rugăm să verifici de două ori utilizatorul în cazul în care are nevoie de ajutor pentru a se autentifica.", "Please download one of these browsers to get started with passbolt:": "Vă rugăm să descărcați unul dintre aceste browsere pentru a accesa Passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Vă rugăm să vă introduceți parola pentru a continua.", "Please enter your passphrase.": "Vă rugăm să vă introduceți parola.", "Please enter your private key to continue.": "Vă rugăm să vă introduceți cheia privată pentru a continua.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Vă rugăm să instalați extensia browser.", "Please make sure there is at least one group manager.": "Vă rugăm să vă asigurați că există cel puțin un manager grup.", "Please make sure there is at least one owner.": "Vă rugăm să vă asiguraţi că există cel puţin un proprietar.", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Cheie secretă", + "Secure": "Secure", "Security token": "Token de securitate", "See error details": "Vizualizați detalii eroare", "See list": "Vizualizați lista", "See structure": "Vizualizați structura", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "Selectați un fișier pentru import", "Select a provider": "Select a provider", "Select all": "Selectați tot", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Ceva nu a funcționat corect, autentificarea a eșuat cu următoarea eroare:", "Something went wrong!": "Ceva nu a funcționat bine!", "Sorry the account recovery feature is not enabled for this organization.": "Ne pare rău, funcția de recuperare a contului nu este activată pentru această organizație.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "Ne pare rău, puteți avea doar o singură cheie setată în acest moment", "Sorry your subscription is either missing or not readable.": "Ne pare rău, abonamentul dvs. lipsește sau nu poate fi citit.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Ne pare rău, nu se poate continua. Primul cod QR este gol.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "Parola a fost actualizată!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "Parola definită la inițierea recuperării contului este necesară pentru a finaliza operațiunea.", - "The password field is not defined.": "Câmpul pentru parolă nu este definit.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Parola a fost adăugată ca favorită", "The password has been added successfully": "Parola a fost adăugată cu succes", "The password has been copied to clipboard": "Parola a fost copiată în clipboard", "The password has been removed from favorites": "Parola a fost ștearsă din favorite", "The password has been updated successfully": "Parola a fost actualizată cu succes", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Parola este goală.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "Secretul a fost copiat în clipboard", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "Secretul în clar este gol.", "The security token code should be 3 characters long.": "Codul token-ului de securitate ar trebui să aibă 3 caractere.", "The security token code should not be empty.": "Codul token-ului de securitate nu trebuie să fie gol.", "The security token has been updated successfully": "Token-ul de securitate a fost actualizat cu succes", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Tema a fost actualizată cu succes", "The Time-based One Time Password provider is disabled for all users.": "Furnizorul de parole unice bazat pe timp este dezactivat pentru toți utilizatorii.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Furnizorul de parole unice bazat pe timp este activat pentru toți utilizatorii. Ei își pot configura acest furnizor în profilul lor și îl pot folosi ca autentificare secundară.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Transferul a fost anulat deoarece celălalt client a returnat o eroare.", "The uri has been copied to clipboard": "URI-ul au fost copiat în clipboard", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "Utilizatorul a fost șters cu succes", "The user has been updated successfully": "Utilizatorul a fost actualizat cu succes", "The user is not a member of any group yet": "Utilizatorul nu este încă membru al vreunui grup", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "Utilizatorul care a solicitat recuperarea contului nu există.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Această parolă de acces este singura parolă pe care va trebui să v-o amintiți de acum înainte, alegeți cu înțelepciune!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Acest token de securitate va fi afișat atunci când este solicitată parola de acces, astfel încât să puteți verifica rapid că formularul provine de la Passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Acest token de securitate va fi afișat atunci când este solicitată parola de acces, astfel încât să puteți verifica rapid că formularul provine de la Passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Parolă de unică folosință bazată pe timp (TOTP)", "Tips for choosing a good passphrase": "Sfaturi pentru alegerea unei parole bune", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "Transfer finalizat!", "Transfer in progress...": "Transfer în curs...", "Transfer your account key": "Transferă-ți cheia contului", @@ -1007,6 +1029,7 @@ "updated": "actualizat", "upload": "încărcaţi", "Upload a new avatar picture": "Încărcați o poză nouă pentru avatar", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Majuscule", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "Id-urile utilizatorului", "User object class": "Clasa obiect user", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Cale utilizator", "User path is used in addition to base DN while searching users.": "Calea utilizatorului este folosită în plus față de baza DN în timpul căutării utilizatorilor.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "Ce se întâmplă dacă mi-am uitat parola de acces?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Care este rolul parolei de acces?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "Când un comentariu este postat pentru o parolă, notifică utilizatorii care au acces la această parolă.", "When a folder is created, notify its creator.": "Când un folder este creat, anunțați creatorul.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "Când utilizatori sunt șterși dintr-un grup, notificați-i.", "When users completed the recover of their account, notify them.": "Când utilizatorii au finalizat recuperarea contului, notifică-i.", "When users try to recover their account, notify them.": "Când utilizatorii încearcă să își recupereze contul, notifică-i.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "De ce este necesar acest token?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Poți găsi parolele nou importate în folder-ul <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Poți găsi parolele nou importate cu eticheta <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Puteți solicita un alt e-mail de invitație făcând clic pe butonul de mai jos.", "You can restart this process if you want to configure another phone.": "Puteți reporni acest proces dacă doriți să configurați un alt telefon.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Nu puteți șterge acest grup!", "You cannot delete this user!": "Nu puteți șterge acest utilizator!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Nu dețineți încă nicio parolă. Pare cam pustiu pe aici, creați prima parolă.", "You need to click save for the changes to take place.": "Trebuie să faceți clic pe salvare pentru ca modificările să aibă loc.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "Trebuie să finalizați procesul de recuperare a contului pe același calculator pe care l-ați folosit pentru cererea de recuperare a contului.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "Trebuie să folosiți același computer și browser pentru a finaliza procesul.", "You need your passphrase to continue.": "Aveți nevoie de parola dvs. pentru a continua.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Se pare că aveți Setările de Notificare prin E-mail definite în passbolt.php (sau în variabilele de mediu).", diff --git a/src/locales/sv-SE/common.json b/src/locales/sv-SE/common.json index 432372896..c3dc4bec6 100644 --- a/src/locales/sv-SE/common.json +++ b/src/locales/sv-SE/common.json @@ -62,6 +62,7 @@ "Accept new key": "Godkänn ny nyckel", "Accept the new SSO provider": "Accept the new SSO provider", "Access to this service requires an invitation.": "Åtkomst till denna tjänst kräver en inbjudan.", + "Account kit": "Account kit", "Account recovery": "Account recovery", "Account Recovery": "Account Recovery", "Account recovery enrollment": "Account recovery enrollment", @@ -96,6 +97,7 @@ "Allow": "Allow", "Allow “Remember this device for a month.“ option during MFA.": "Allow “Remember this device for a month.“ option during MFA.", "Allow passbolt to access external services to check if a password has been compromised.": "Allow passbolt to access external services to check if a password has been compromised.", + "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.": "Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it.", "Allowed domains": "Allowed domains", "Allows Azure and Passbolt API to securely share information.": "Allows Azure and Passbolt API to securely share information.", "Allows Google and Passbolt API to securely share information.": "Allows Google and Passbolt API to securely share information.", @@ -223,6 +225,7 @@ "currently:": "för närvarande:", "Customer id:": "Kundnummer:", "Decrypting": "Dekrypterar", + "Decrypting secret": "Dekrypterar hemlighet", "Decryption failed, click here to retry": "Dekryptering misslyckades, klicka här för att försöka igen", "Default": "Förvald", "Default admin": "Förvald admin", @@ -304,6 +307,7 @@ "Enter the password and/or key file": "Ange lösenordet och/eller nyckelfilen", "Enter the private key used by your organization for account recovery": "Enter the private key used by your organization for account recovery", "entropy:": "entropi:", + "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits": "entropy: {this.formatEntropy(this.props.entropy)} / {this.formatEntropy(this.props.targetEntropy)} bits", "Error": "Fel", "Error details": "Detaljerad felinformation", "Error, this is not the current organization recovery key.": "Error, this is not the current organization recovery key.", @@ -321,6 +325,7 @@ "Export": "Exportera", "Export all": "Exportera alla", "Export passwords": "Exportera lösenord", + "External password dictionary check": "External password dictionary check", "External services": "External services", "Fair": "Fair", "FAQ: Why are my emails not sent?": "FAQ: Why are my emails not sent?", @@ -342,6 +347,7 @@ "For more information about MFA policy settings, checkout the dedicated page on the help website.": "For more information about MFA policy settings, checkout the dedicated page on the help website.", "For more information about SSO, checkout the dedicated page on the help website.": "For more information about SSO, checkout the dedicated page on the help website.", "For more information about the password policy settings, checkout the dedicated page on the help website.": "For more information about the password policy settings, checkout the dedicated page on the help website.", + "For more information about the user passphrase policies, checkout the dedicated page on the help website.": "For more information about the user passphrase policies, checkout the dedicated page on the help website.", "For Openldap only. Defines which group object to use.": "Endast för Openldap Definierar vilket gruppobjekt som ska användas.", "For Openldap only. Defines which user object to use.": "Endast för Openldap Definierar vilken användare som ska användas.", "For security reasons please check with your administrator that this is a change that they initiated.": "For security reasons please check with your administrator that this is a change that they initiated.", @@ -352,6 +358,7 @@ "Generate a new password securely": "Skapa ett nytt lösenord säkert", "Generate new key instead": "Generate new key instead", "Generate password": "Skapa lösenord", + "Get started !": "Kom igång !", "Get started in 5 easy steps": "Kom igång med 5 enkla steg", "Go back": "Gå tillbaka", "Go to MFA settings": "Go to MFA settings", @@ -404,12 +411,15 @@ "If you still need to recover your account, you will need to start the process from scratch.": "If you still need to recover your account, you will need to start the process from scratch.", "Ignored:": "Ignorerad", "Import": "Importera", + "Import account": "Import account", "Import an OpenPGP Public key": "Import an OpenPGP Public key", + "Import another account": "Import another account", "Import folders": "Importera mappar", "Import passwords": "Importera lösenord", "Import success!": "Importen lyckades!", "Import/Export": "Import/Export", "Important notice:": "Important notice:", + "Importing account kit": "Importing account kit", "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.": "In order to use the "Username & Password" authentication method with Google, you will need to enable MFA on your Google Account. The password should not be your login password, you have to create an "App Password" generated by Google.. However, the email remain the same.", "In this section you can adjust the composition of the emails, e.g. which information will be included in the notification.": "Här kan du justera kompositionen av e-postmeddelandena, t.ex. vilken information som kommer att ingå i notifikationen.", "In this section you can choose the default behavior of account recovery for all users.": "In this section you can choose the default behavior of account recovery for all users.", @@ -422,13 +432,8 @@ "Invalid permission type for share permission item.": "Ogiltig behörighetstyp för att dela behörighetsobjekt.", "is owner": "är ägare", "Is owner": "Är ägare", - "It contains letters and numbers": "Den innehåller bokstäver och siffror", - "It contains lower and uppercase characters": "Den innehåller små och stora bokstäver", - "It contains special characters (like / or * or %)": "Den innehåller specialtecken (som / eller * eller %)", "It does feel a bit empty here.": "Det känns lite tomt här.", - "It is at least 8 characters in length": "Det är minst 8 tecken långt", "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?": "It is mandatory to share securely a copy of your private key with your organization recovery contacts. Would you like to continue?", - "It is not part of an exposed data breach": "It is not part of an exposed data breach", "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform a setup of a new account as you are still logged in. You need to log out first before continuing.", "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to perform the recovery of your account as you are still logged in. You need to log out first before continuing.", "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.": "It is not possible to recover your private key of your account as you are still logged in. You need to log out first before continuing.", @@ -477,6 +482,8 @@ "Metadata": "Metadata", "MFA": "MFA", "MFA Policy": "MFA Policy", + "Minimal recommendation": "Minimal recommendation", + "Minimal requirement": "Minimal requirement", "Mobile Apps": "Mobile Apps", "Mobile setup": "Mobila inställningar", "Mobile transfer": "Mobil överföring", @@ -533,6 +540,7 @@ "None of your passwords are yet marked as favorite. Add stars to passwords you want to easily find later.": "Inget av dina lösenord är ännu markerat som favorit. Lägg till stjärnor till lösenord som du enkelt vill hitta senare.", "None of your passwords matched this search.": "Inget av dina lösenord matchade denna sökning.", "not available": "not available", + "Note that this will not prevent a user from customizing the settings while generating a password.": "Note that this will not prevent a user from customizing the settings while generating a password.", "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.": "Note: Administrators can add and delete users; They can also create groups and assign group managers; By default they can not see all passwords.", "Number of recovery": "Number of recovery", "Number of words": "Antal ord", @@ -546,6 +554,7 @@ "Only administrators can invite users to register.": "Only administrators can invite users to register.", "Only administrators would be able to invite users to register. ": "Only administrators would be able to invite users to register. ", "Only numeric characters allowed.": "Endast numeriska tecken tillåts.", + "Only passbolt format is allowed.": "Only passbolt format is allowed.", "Only synchronize enabled users (AD)": "Synkronisera endast aktiverade användare (AD)", "Only the group manager can add new people to a group.": "Endast gruppansvarig kan lägga till nya personer i en grupp.", "Oops, something went wrong": "Hoppsan, något gick fel", @@ -572,7 +581,8 @@ "Passbolt is available on AppStore & PlayStore": "Passbolt is available on AppStore & PlayStore", "Passbolt is available on the Windows store.": "Passbolt is available on the Windows store.", "Passbolt needs an smtp server in order to send invitation emails after an account creation and to send email notifications.": "Passbolt behöver en SMTP-server för att kunna skicka inbjudningsmail efter att ett konto har skapats och för att kunna skicka e-postmeddelanden.", - "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe.", + "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.": "Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.", + "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.": "Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe.", "Passphrase": "Lösenfras", "Passphrase required": "Lösenfras krävs", "Passphrase settings": "Passphrase settings", @@ -589,7 +599,9 @@ "Pick a color and enter three characters.": "Välj en färg och ange tre tecken.", "Please authenticate with the Single Sign-On provider to continue.": "Please authenticate with the Single Sign-On provider to continue.", "Please confirm you really want to delete the passwords. After clicking ok, the passwords will be deleted permanently.": "Bekräfta att du verkligen vill ta bort lösenorden. Efter att du klickat på OK kommer lösenorden att raderas permanent.", + "Please contact your administrator to enable multi-factor authentication.": "Kontakta din administratör för att aktivera multi-faktor autentisering.", "Please contact your administrator to enable the account recovery feature.": "Please contact your administrator to enable the account recovery feature.", + "Please contact your administrator to fix this issue.": "Please contact your administrator to fix this issue.", "Please contact your administrator to request an invitation link.": "Kontakta din administratör för att begära en inbjudningslänk.", "Please double check with the user in case they still need some help to log in.": "Please double check with the user in case they still need some help to log in.", "Please download one of these browsers to get started with passbolt:": "Please download one of these browsers to get started with passbolt:", @@ -603,6 +615,7 @@ "Please enter your passphrase to continue.": "Vänligen ange din lösenfras för att fortsätta.", "Please enter your passphrase.": "Vänligen ange din lösenfras.", "Please enter your private key to continue.": "Please enter your private key to continue.", + "Please follow these instructions:": "Please follow these instructions:", "Please install the browser extension.": "Vänligen installera tillägget till webbläsaren.", "Please make sure there is at least one group manager.": "Vänligen se till att det finns minst en gruppchef.", "Please make sure there is at least one owner.": "Vänligen se till att det finns minst en ägare.", @@ -701,11 +714,13 @@ "Secret": "Secret", "Secret expiry": "Secret expiry", "Secret key": "Hemlig nyckel", + "Secure": "Secure", "Security token": "Säkerhetstoken", "See error details": "Se felinformation", "See list": "Se lista", "See structure": "Se struktur", "See the {settings.provider.name} documentation": "See the {settings.provider.name} documentation", + "Select a file": "Select a file", "Select a file to import": "Välj en fil att importera", "Select a provider": "Select a provider", "Select all": "Select all", @@ -764,6 +779,8 @@ "Something went wrong, the sign in failed with the following error:": "Något gick fel, inloggningen misslyckades med följande fel:", "Something went wrong!": "Något gick fel!", "Sorry the account recovery feature is not enabled for this organization.": "Sorry the account recovery feature is not enabled for this organization.", + "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).": "Sorry the Mobile app setup feature is only available in a secure context (HTTPS).", + "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).": "Sorry the multi factor authentication feature is only available in a secure context (HTTPS).", "sorry you can only have one key set at the moment": "tyvärr kan du bara ha en nyckel inställd för tillfället", "Sorry your subscription is either missing or not readable.": "Tyvärr, din prenumeration antingen saknas eller inte är läsbar.", "Sorry, it is not possible to proceed. The first QR code is empty.": "Tyvärr, det går inte att fortsätta. Den första QR-koden är tom.", @@ -876,13 +893,14 @@ "The passphrase was updated!": "Lösenfrasen uppdaterades!", "The passphrase word count must be set to 4 at least": "The passphrase word count must be set to 4 at least", "The passphrase you defined when initiating the account recovery is required to complete the operation.": "The passphrase you defined when initiating the account recovery is required to complete the operation.", - "The password field is not defined.": "Lösenordsfältet är inte definierat.", "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required": "The password generator will not generate strong enough password. Minimum of {{minimum}}bits is required", "The password has been added as a favorite": "Lösenordet har lagts till som favorit", "The password has been added successfully": "Lösenordet har lagts till", "The password has been copied to clipboard": "Lösenordet har kopierats till urklipp", "The password has been removed from favorites": "Lösenordet har tagits bort från favoriter", "The password has been updated successfully": "Lösenordet har uppdaterats", + "The password is empty and cannot be copied to clipboard.": "The password is empty and cannot be copied to clipboard.", + "The password is empty and cannot be previewed.": "The password is empty and cannot be previewed.", "The password is empty.": "Lösenordet är tomt.", "The password is part of an exposed data breach.": "The password is part of an exposed data breach.", "The password length must be set to 8 at least": "The password length must be set to 8 at least", @@ -906,7 +924,6 @@ "The Secret expiry is required": "The Secret expiry is required", "The secret has been copied to clipboard": "Hemligheten har kopierats till urklipp", "The Secret is required": "The Secret is required", - "The secret plaintext is empty.": "Hemligheten i klartext är tom.", "The security token code should be 3 characters long.": "Koden för säkerhetstoken måste vara 3 tecken lång.", "The security token code should not be empty.": "Koden för säkerhetstoken får inte vara tom.", "The security token has been updated successfully": "Säkerhetstoken har uppdaterats", @@ -927,6 +944,8 @@ "The theme has been updated successfully": "Temat har uppdaterats", "The Time-based One Time Password provider is disabled for all users.": "Den tidsbaserade One Time Password-leverantören är inaktiverad för alla användare.", "The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication.": "Den tidsbaserade One Time Password-leverantören är aktiverad för alla användare. De kan ställa in denna leverantör i sin profil och använda den som andra faktor-autentisering.", + "The TOTP has been copied to clipboard": "The TOTP has been copied to clipboard", + "The totp is empty and cannot be previewed.": "The totp is empty and cannot be previewed.", "The transfer was cancelled because the other client returned an error.": "Överföringen avbröts eftersom den andra klienten returnerade ett fel.", "The uri has been copied to clipboard": "URI har kopierats till urklipp", "The URL to provide to Azure when registering the application.": "The URL to provide to Azure when registering the application.", @@ -936,6 +955,7 @@ "The user has been deleted successfully": "Användaren har tagits bort", "The user has been updated successfully": "Användaren har uppdaterats", "The user is not a member of any group yet": "Användaren är inte medlem i någon grupp ännu", + "The user passphrase policies were updated.": "The user passphrase policies were updated.", "The user username field mapping cannot be empty": "The user username field mapping cannot be empty", "The user username field mapping cannot exceed 128 characters.": "The user username field mapping cannot exceed 128 characters.", "The user who requested an account recovery does not exist.": "The user who requested an account recovery does not exist.", @@ -964,6 +984,7 @@ "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.": "This is the email address users will see in their mail box when passbolt sends a notification.<1>It's a good practice to provide a working email address that users can reply to.", "this is the maximum size for this field, make sure your data was not truncated": "this is the maximum size for this field, make sure your data was not truncated.", "This is the name users will see in their mailbox when passbolt sends a notification.": "This is the name users will see in their mailbox when passbolt sends a notification.", + "This is the passphrase that is asked during sign in or recover.": "This is the passphrase that is asked during sign in or recover.", "This passphrase is the only passphrase you will need to remember from now on, choose wisely!": "Denna lösenfras är det enda lösenfras du behöver komma ihåg från och med nu, välj klokt!", "This security token will be displayed when your passphrase is requested, so you can quickly verify the form is coming from passbolt.": "Detta säkerhetstoken kommer att visas när din lösenfras begärs, så att du snabbt kan verifiera att formuläret kommer från passbolt.", "This security token will be displayed when your passphrase is requested, so you can verify quickly the form is coming from passbolt.": "Detta säkerhetstoken kommer att visas när din lösenfras begärs, så att du snabbt kan verifiera att formuläret kommer från passbolt.", @@ -979,6 +1000,7 @@ "Time-based One Time Password": "Tidsbaserat Engångslösenord", "Tips for choosing a good passphrase": "Tips för att välja en bra lösenfras", "TLS must be set to 'Yes' or 'No'": "TLS must be set to 'Yes' or 'No'", + "TOTP": "TOTP", "Transfer complete!": "Överföring slutförd!", "Transfer in progress...": "Överföring pågår...", "Transfer your account key": "Transfer your account key", @@ -1007,6 +1029,7 @@ "updated": "uppdaterad", "upload": "ladda upp", "Upload a new avatar picture": "Ladda upp en ny avatarbild", + "Upload your account kit": "Upload your account kit", "UPN": "UPN", "Upper case": "Stora bokstäver", "URI": "URI", @@ -1021,6 +1044,8 @@ "User custom filters are used in addition to the base DN and user path while searching users.": "User custom filters are used in addition to the base DN and user path while searching users.", "User ids": "User ids", "User object class": "Användarens objektklass", + "User passphrase minimal entropy": "User passphrase minimal entropy", + "User Passphrase Policies": "User Passphrase Policies", "User path": "Sökväg för användare", "User path is used in addition to base DN while searching users.": "Användarens sökväg används utöver bas-DN vid sökning av användare.", "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.": "User self registration enables users with an email from a whitelisted domain to create their passbolt account without prior admin invitation.", @@ -1066,6 +1091,7 @@ "What if I forgot my passphrase?": "Vad händer om jag har glömt min lösenfras?", "What is password policy?": "What is password policy?", "What is the role of the passphrase?": "Vilken roll har lösenfrasen?", + "What is user passphrase policies?": "What is user passphrase policies?", "What is user self registration?": "What is user self registration?", "When a comment is posted on a password, notify the users who have access to this password.": "När en kommentar läggs upp på ett lösenord, meddela de användare som har tillgång till detta lösenord.", "When a folder is created, notify its creator.": "När en mapp skapas, meddela dess skapare.", @@ -1094,6 +1120,7 @@ "When users are removed from a group, notify them.": "När användare tas bort från en grupp, meddela dem.", "When users completed the recover of their account, notify them.": "When users completed the recover of their account, notify them.", "When users try to recover their account, notify them.": "När användare försöker återställa sitt konto, meddela dem.", + "Where can I find my account kit ?": "Where can I find my account kit ?", "Where to find it?": "Where to find it?", "Why do I need an SMTP server?": "Why do I need an SMTP server?", "Why is this token needed?": "Varför behövs denna token?", @@ -1121,18 +1148,20 @@ "You can choose the default behaviour of multi factor authentication for all users.": "You can choose the default behaviour of multi factor authentication for all users.", "You can find these newly imported passwords in the folder <1>{{folderName}}.": "Du kan hitta dessa nyimporterade lösenord i mappen <1>{{folderName}}.", "You can find these newly imported passwords under the tag <1>{{tagName}}.": "Du kan hitta dessa nyimporterade lösenord under taggen <1>{{tagName}}.", - "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.": "You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.", + "You can modify the default settings of the passwords generator.": "You can modify the default settings of the passwords generator.", "You can request another invitation email by clicking on the button below.": "Du kan begära en till inbjudan via e-post genom att klicka på knappen nedan.", "You can restart this process if you want to configure another phone.": "Du kan starta om denna process om du vill konfigurera en annan telefon.", "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.": "You can select the set of characters used for the passwords that are generated randomly by passbolt in the password generator.", "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.": "You can set the default length for the passphrases that are generated randomly by passbolt in the password generator.", "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.": "You can set the default length for the passwords that are generated randomly by passbolt in the password generator.", + "You can set the minimal entropy for the users' private key passphrase.": "You can set the minimal entropy for the users' private key passphrase.", "You cannot delete this group!": "Du kan inte radera denna grupp!", "You cannot delete this user!": "Du kan inte radera den här användaren!", "You do not own any passwords yet. It does feel a bit empty here, create your first password.": "Du äger inga lösenord ännu. Det känns lite tomt här, skapa ditt första lösenord.", "You need to click save for the changes to take place.": "Du måste klicka på spara för att ändringarna ska ske.", "You need to enter your current passphrase.": "You need to enter your current passphrase.", "You need to finalize the account recovery process with the same computer you used for the account recovery request.": "You need to finalize the account recovery process with the same computer you used for the account recovery request.", + "You need to upload an account kit to start using the desktop app. ": "You need to upload an account kit to start using the desktop app. ", "You need use the same computer and browser to finalize the process.": "You need use the same computer and browser to finalize the process.", "You need your passphrase to continue.": "Du behöver din lösenfras för att fortsätta.", "You seem to have Email Notification Settings defined in your passbolt.php (or via environment variables).": "Du verkar ha inställningar för e-postaviseringar definierade i din passbolt.php (eller via miljövariabler).", diff --git a/src/react-extension/ApiApp.js b/src/react-extension/ApiApp.js index a0145a40c..051ea3c28 100644 --- a/src/react-extension/ApiApp.js +++ b/src/react-extension/ApiApp.js @@ -86,6 +86,7 @@ class ApiApp extends Component { "/app/administration/subscription", "/app/administration/account-recovery", "/app/administration/password-policies", + "/app/administration/user-passphrase-policies", ]}/> diff --git a/src/react-extension/ExtApp.js b/src/react-extension/ExtApp.js index b9dd92f75..1b77a211b 100644 --- a/src/react-extension/ExtApp.js +++ b/src/react-extension/ExtApp.js @@ -51,7 +51,6 @@ import HandlePassphraseEntryEvents import HandleFolderMoveStrategyEvents from "./components/ResourceFolder/HandleFolderMoveStrategyEvents/HandleFolderMoveStrategyEvents"; import HandleProgressEvents from "./components/Common/Progress/HandleProgressEvents/HandleProgressEvents"; -import HandleErrorEvents from "./components/Common/Error/HandleErrorEvents/HandleErrorEvents"; import DisplayResourcesWorkspace from "./components/Resource/DisplayResourcesWorkspace/DisplayResourcesWorkspace"; import DragContextProvider from "./contexts/DragContext"; import AccountRecoveryUserContextProvider from "./contexts/AccountRecoveryUserContext"; @@ -60,13 +59,18 @@ import WorkflowContextProvider from "./contexts/WorkflowContext"; import ManageWorkflows from "./components/Common/Workflow/ManageWorkflows/ManageWorkflows"; import AdminAccountRecoveryContextProvider from "./contexts/AdminAccountRecoveryContext"; import HandleApplicationFirstLoadRoute from "./components/Common/Route/HandleApplicationFirstLoadRoute"; -import AdminSubscriptionContextProvider from "./contexts/Administration/AdministrationSubscription/AdministrationSubscription"; +import AdminSubscriptionContextProvider + from "./contexts/Administration/AdministrationSubscription/AdministrationSubscription"; import HandleStatusCheck from './components/HandleStatusCheck/HandleStatusCheck'; import MfaContextProvider from "./contexts/MFAContext"; import AdminSsoContextProvider from "./contexts/AdminSsoContext"; import RbacContextProvider from "../shared/context/Rbac/RbacContext"; import PasswordPoliciesContext from "../shared/context/PasswordPoliciesContext/PasswordPoliciesContext"; -import AdminPasswordPoliciesContextProvider from "./contexts/Administration/AdministrationPasswordPoliciesContext/AdministrationPasswordPoliciesContext"; +import AdminPasswordPoliciesContextProvider + from "./contexts/Administration/AdministrationPasswordPoliciesContext/AdministrationPasswordPoliciesContext"; +import ProgressContextProvider from "./contexts/ProgressContext"; +import AdministrationUserPassphrasePoliciesContextProvider from "./contexts/Administration/AdministrationUserPassphrasePoliciesContext/AdministrationUserPassphrasePoliciesContext"; +import UserPassphrasePoliciesContextProvider from "./contexts/UserPassphrasePoliciesContext"; /** * The passbolt application served by the browser extension. @@ -98,133 +102,138 @@ class ExtApp extends Component { + + { /* Action Feedback Management */} + - { /* Action Feedback Management */} - + { /* Dialogs Management */} + + + + - { /* Dialogs Management */} - - - - - + { /* Announcement Management */} + {appContext.loggedInUser && appContext.loggedInUser.role.name === "admin" + && appContext.siteSettings.canIUse('ee') + && } - { /* Announcement Management */} - {appContext.loggedInUser && appContext.loggedInUser.role.name === "admin" - && appContext.siteSettings.canIUse('ee') - && } - - - - { /* Account Recovery Management */} - {appContext.loggedInUser && (appContext.siteSettings.canIUse('accountRecovery') || appContext.siteSettings.canIUse('mfaPolicies')) - && } - - - { /* The application first load route points to an html document */ } - - { /* The following routes are not handled by the browser extension application. */} - - {/* Passwords workspace */} - - - + + + { /* Account Recovery Management */} + {appContext.loggedInUser && (appContext.siteSettings.canIUse('accountRecovery') || appContext.siteSettings.canIUse('mfaPolicies')) + && } + + + { /* The application first load route points to an html document */ } + + { /* The following routes are not handled by the browser extension application. */} + + {/* Passwords workspace */} + + + + + + + +
+
+
+ +
+ +
+
+
+
+
+
+ {/* Users workspace */} + + + - -
+
+
+
+ +
+ +
+
+ + + {/* User settings workspace */} + + + + + +
- +
- - - -
- {/* Users workspace */} - - - - - - -
-
-
- -
- -
-
-
-
- {/* User settings workspace */} - - - - -
-
-
- -
- -
-
-
-
- {/* SSO, Subscription and Account Recovery settings */} - - - - - - - - - - - - - - - - {/* Fallback */} - - - - - - - -
+ + + + {/* SSO, Subscription and Account Recovery settings */} + + + + + + + + + + + + + + + + + + {/* Fallback */} + + + + + + + +
+ diff --git a/src/react-extension/ExtAuthenticationLogin.js b/src/react-extension/ExtAuthenticationLogin.js index e94403e87..a1716c482 100644 --- a/src/react-extension/ExtAuthenticationLogin.js +++ b/src/react-extension/ExtAuthenticationLogin.js @@ -82,7 +82,7 @@ class ExtAuthenticationLogin extends Component { async initializeUserSettings() { const storageData = await this.props.storage.local.get(["_passbolt_data"]); const userSettings = new UserSettings(storageData._passbolt_data.config); - await this.setState({userSettings}); + this.setState({userSettings}); } /** diff --git a/src/react-extension/ExtBootstrapApp.js b/src/react-extension/ExtBootstrapApp.js index c0d37163e..5fccfe02b 100644 --- a/src/react-extension/ExtBootstrapApp.js +++ b/src/react-extension/ExtBootstrapApp.js @@ -143,6 +143,7 @@ class ExtBootstrapApp extends Component { "/app/administration/account-recovery", "/app/administration/sso", "/app/administration/password-policies", + "/app/administration/user-passphrase-policies", "/app/folders/view/:filterByFolderId", "/app/groups/view/:selectedGroupId", "/app/groups/edit/:selectedGroupId", diff --git a/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js b/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js index 3c04036fb..769fa1cd4 100644 --- a/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js +++ b/src/react-extension/components/AccountRecovery/HandleReviewAccountRecoveryRequestWorkflow/HandleReviewAccountRecoveryRequestWorkflow.test.data.js @@ -15,7 +15,7 @@ import {v4 as uuidv4} from "uuid"; import {defaultDialogContext} from "../../../contexts/DialogContext.test.data"; import {defaultAppContext} from "../../../contexts/ExtAppContext.test.data"; -import {defaultActionFeedbackContextContext} from "../../../contexts/ActionFeedbackContext.test.data"; +import {defaultActionFeedbackContext} from "../../../contexts/ActionFeedbackContext.test.data"; import {defaultAccountRecoveryUserContext} from "../../../contexts/AccountRecoveryUserContext.test.data"; /** @@ -33,7 +33,7 @@ export function defaultProps(props = {}) { } } }), - actionFeedbackContext: defaultActionFeedbackContextContext(props?.actionFeedbackContext), + actionFeedbackContext: defaultActionFeedbackContext(props?.actionFeedbackContext), context: defaultAppContext(props?.context), dialogContext: defaultDialogContext(props?.dialogContext), onStop: jest.fn(), diff --git a/src/react-extension/components/Administration/AdministrationWorkspace.js b/src/react-extension/components/Administration/AdministrationWorkspace.js index 98354a07e..f82596a5d 100644 --- a/src/react-extension/components/Administration/AdministrationWorkspace.js +++ b/src/react-extension/components/Administration/AdministrationWorkspace.js @@ -41,6 +41,7 @@ import ManageSsoSettings from "./ManageSsoSettings/ManageSsoSettings"; import DisplayMfaPolicyAdministration from "./DisplayMfaPolicyAdministration/DisplayMfaPolicyAdministration"; import DisplayRbacAdministration from "./DisplayRbacAdministration/DisplayRbacAdministration"; import DisplayPasswordPoliciesAdministration from "./DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration"; +import DisplayAdministrationUserPassphrasePolicies from "./DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies"; class AdministrationWorkspace extends Component { /** @@ -139,6 +140,14 @@ class AdministrationWorkspace extends Component { return AdministrationWorkspaceMenuTypes.RBAC === this.props.administrationWorkspaceContext.selectedAdministration; } + /** + * If User Passphrase Policies menu is selected + * @returns {boolean} + */ + isUserPassphrasePoliciesSelected() { + return AdministrationWorkspaceMenuTypes.USER_PASSPHRASE_POLICIES === this.props.administrationWorkspaceContext.selectedAdministration; + } + render() { const AdministrationWorkspaceAction = this.props.administrationWorkspaceContext.administrationWorkspaceAction; return ( @@ -201,6 +210,9 @@ class AdministrationWorkspace extends Component { {this.isRbacSelected() && } + {this.isUserPassphrasePoliciesSelected() && + + }
diff --git a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js index 796a0c68e..185805e98 100644 --- a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js +++ b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.js @@ -126,7 +126,7 @@ class DisplayAdministrationMenu extends React.Component { } /** - * Can if the user can use RBACS + * Can I use the RBACS plugin * @returns {boolean} */ get canIUseRbacs() { @@ -134,6 +134,15 @@ class DisplayAdministrationMenu extends React.Component { return siteSettings && siteSettings.canIUse('rbacs'); } + /** + * Can I use the User Passphrase Policies plugin + * @returns {boolean} + */ + get canIUseUserPassphrasePolicies() { + const siteSettings = this.props.context.siteSettings; + return siteSettings && siteSettings.canIUse('userPassphrasePolicies'); + } + /** * Bind callbacks methods */ @@ -150,6 +159,7 @@ class DisplayAdministrationMenu extends React.Component { this.handleMfaPolicyClick = this.handleMfaPolicyClick.bind(this); this.handleRbacsClick = this.handleRbacsClick.bind(this); this.handlePasswordPoliciesClick = this.handlePasswordPoliciesClick.bind(this); + this.handleUserPassphrasePoliciesClick = this.handleUserPassphrasePoliciesClick.bind(this); } /** @@ -236,6 +246,13 @@ class DisplayAdministrationMenu extends React.Component { this.props.navigationContext.onGoToAdministrationPasswordPoliciesRequested(); } + /** + * Handle when the user click on the User Passphrase Policies menu + */ + handleUserPassphrasePoliciesClick() { + this.props.navigationContext.onGoToAdministrationUserPassphrasePoliciesRequested(); + } + /** * If MFA menu is selected * @returns {boolean} @@ -332,6 +349,14 @@ class DisplayAdministrationMenu extends React.Component { return AdministrationWorkspaceMenuTypes.SELF_REGISTRATION === this.props.administrationWorkspaceContext.selectedAdministration; } + /** + * If User Passphrase Policies menu is selected + * @returns {boolean} + */ + isUserPassphrasePoliciesSelected() { + return AdministrationWorkspaceMenuTypes.USER_PASSPHRASE_POLICIES === this.props.administrationWorkspaceContext.selectedAdministration; + } + /** * Render the component * @returns {JSX} @@ -480,6 +505,19 @@ class DisplayAdministrationMenu extends React.Component { } + {this.canIUseUserPassphrasePolicies && +
  • +
    +
    +
    + +
    +
    +
    +
  • + } ); diff --git a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js index 61ef6c86d..0e0e2f9a7 100644 --- a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js +++ b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.data.js @@ -33,7 +33,8 @@ export function defaultProps(data = {}) { onGoToAdministrationSelfRegistrationRequested: jest.fn(), onGoToAdministrationSsoRequested: jest.fn(), onGoToAdministrationMfaPolicyRequested: jest.fn(), - onGoToAdministrationRbacsRequested: jest.fn() + onGoToAdministrationRbacsRequested: jest.fn(), + onGoToAdministrationUserPassphrasePoliciesRequested: jest.fn(), } }, data); } diff --git a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js index 161065ebe..43406eed5 100644 --- a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js +++ b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.js @@ -194,6 +194,7 @@ describe("As AD I can see the administration menu", () => { expect(page.ssoSettings).toBeNull(); }); }); + describe("As a logged in administrator in the administrator workspace, I can see the Mfa Policy settings option in the left-side bar", () => { it('If the feature flag is true, the menu should be visible', async() => { expect.assertions(4); @@ -253,4 +254,34 @@ describe("As AD I can see the administration menu", () => { expect(page.rbacs).toBeNull(); }); }); + + describe("As a signed-in administrator on the administration workspace, I can see the User Passphrase Policies option in the left-side bar", () => { + it('If the feature flag is true, the menu should be visible', async() => { + expect.assertions(4); + const props = defaultProps({ + administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.USER_PASSPHRASE_POLICIES} + }); // The props to pass + page = new DisplayAdministrationMenuPage(context, props); + expect(page.exists()).toBeTruthy(); + await page.gotoUserPassphrasePolicies(); + expect(page.userPassphrasePolicies).toBeTruthy(); + expect(page.menuSelected).toBe('User Passphrase Policies'); + expect(props.navigationContext.onGoToAdministrationUserPassphrasePoliciesRequested).toHaveBeenCalled(); + }); + + it('If the feature flag is false, the menu should not be visible', async() => { + expect.assertions(2); + const props = defaultProps({ + context: { + siteSettings: { + canIUse: feature => feature !== "userPassphrasePolicies" + } + }, + administrationWorkspaceContext: {selectedAdministration: AdministrationWorkspaceMenuTypes.USER_PASSPHRASE_POLICIES} + }); // The props to pass + page = new DisplayAdministrationMenuPage(context, props); + expect(page.exists()).toBeTruthy(); + expect(page.userPassphrasePolicies).toBeNull(); + }); + }); }); diff --git a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js index dcb31bd00..e4c282f36 100644 --- a/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js +++ b/src/react-extension/components/Administration/DisplayAdministrationMenu/DisplayAdministrationMenu.test.page.js @@ -132,6 +132,14 @@ export default class DisplayAdministrationMenuPage { return this._page.container.querySelector('#sso_menu .row .main-cell-wrapper .main-cell button'); } + /** + * Returns the User Passphrase Policies menu + */ + get userPassphrasePolicies() { + return this._page.container.querySelector('#user_passphrase_policies_menu .row .main-cell-wrapper .main-cell button'); + } + + /** * Returns true if the page object exists in the container */ @@ -201,4 +209,9 @@ export default class DisplayAdministrationMenuPage { async gotoRbacs() { await this.click(this.rbacs); } + + /** Click on the User Passphrase Policies settings element */ + async gotoUserPassphrasePolicies() { + await this.click(this.userPassphrasePolicies); + } } diff --git a/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.js b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.js new file mode 100644 index 000000000..c2a199629 --- /dev/null +++ b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.js @@ -0,0 +1,189 @@ +/** + * Passbolt ~ Open source password manager for teams + * Copyright (c) Passbolt SA (https://www.passbolt.com) + * + * Licensed under GNU Affero General Public License version 3 of the or any later version. + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com) + * @license https://opensource.org/licenses/AGPL-3.0 AGPL License + * @link https://www.passbolt.com Passbolt(tm) + * @since 4.3.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import Icon from "../../../../shared/components/Icons/Icon"; +import {Trans, withTranslation} from "react-i18next"; +import {withAppContext} from "../../../../shared/context/AppContext/AppContext"; +import {withAdministrationWorkspace} from "../../../contexts/AdministrationWorkspaceContext"; +import {withAdminUserPassphrasePolicies} from "../../../contexts/Administration/AdministrationUserPassphrasePoliciesContext/AdministrationUserPassphrasePoliciesContext"; +import DisplayAdministrationUserPassphrasePoliciesActions from "../DisplayAdministrationWorkspaceActions/DisplayAdministrationUserPassphrasePoliciesActions/DisplayAdministrationUserPassphrasePoliciesActions"; +import Range from "../../Common/Range/Range"; + +const MINIMAL_ADVISED_ENTROPY = 80; + +class DisplayAdministrationUserPassphrasePolicies extends React.PureComponent { + /** + * Default constructor + */ + constructor(props) { + super(props); + this.state = this.defaultState; + this.bindCallbacks(); + } + + /** + * Get default state + * @returns {Object} + */ + get defaultState() { + return { + isReady: false, + }; + } + + /** + * On the component did mount, set the workspace action component and get the account recovery policy + * + */ + async componentDidMount() { + this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(DisplayAdministrationUserPassphrasePoliciesActions); + await this.props.adminUserPassphrasePoliciesContext.findSettings(); + this.setState({isReady: true}); + } + + /** + * On the component will unmount. + */ + componentWillUnmount() { + this.props.administrationWorkspaceContext.resetDisplayAdministrationWorkspaceAction(); + } + + /** + * Bind callbacks methods + */ + bindCallbacks() { + this.handleMinimumEntropyChange = this.handleMinimumEntropyChange.bind(this); + this.handleCheckboxInputChange = this.handleCheckboxInputChange.bind(this); + } + + /** + * Should input be disabled? True if state is loading or processing + * @returns {boolean} + */ + hasAllInputDisabled() { + return this.props.adminUserPassphrasePoliciesContext.isProcessing(); + } + + /** + * Handles the minium entropy value change + * @param {string} name the settings name to change the value + * @param {number} val the valud to apply to the settings + */ + handleMinimumEntropyChange(name, val) { + const value = parseInt(val, 10) || 0; + this.props.adminUserPassphrasePoliciesContext.setSettings(name, value); + } + + /** + * Handles checkbox check's state change + */ + handleCheckboxInputChange(e) { + const target = e.target; + const name = target.name; + const value = Boolean(target.checked); + this.props.adminUserPassphrasePoliciesContext.setSettings(name, value); + } + + /** + * Returns true if the settings are considered too weak to be safe + * @returns {boolean} + */ + isWeakSettings(settings) { + return settings.entropy_minimum < MINIMAL_ADVISED_ENTROPY; + } + + /** + * Render the component + * @returns {JSX} + */ + render() { + if (!this.state.isReady) { + return null; + } + const allInputDisabled = this.hasAllInputDisabled(); + const adminContext = this.props.adminUserPassphrasePoliciesContext; + const settings = adminContext.getSettings(); + return ( +
    +
    +

    User Passphrase Policies

    + {adminContext.hasSettingsChanges() && +
    +

    + Don't forget to save your settings to apply your modification. +

    +
    + } + {this.isWeakSettings(settings) && +
    +

    + Passbolt recommends passphrase strength to be at minimum of {{MINIMAL_ADVISED_ENTROPY}} bits to be safe. +

    +
    + } +

    User passphrase minimal entropy

    +
    + +
    +
    You can set the minimal entropy for the users' private key passphrase. This is the passphrase that is asked during sign in or recover.
    + +

    + + + + +

    + + Allow passbolt to access external services to check if the user passphrase has been compromised when the user creates it. + + +
    +
    +
    +

    What is user passphrase policies?

    +

    For more information about the user passphrase policies, checkout the dedicated page on the help website.

    + + + Read the documentation + +
    +
    +
    + ); + } +} + +DisplayAdministrationUserPassphrasePolicies.propTypes = { + context: PropTypes.object, // Application context + administrationWorkspaceContext: PropTypes.object, // The administration workspace context + adminUserPassphrasePoliciesContext: PropTypes.object, // The admin password context context + t: PropTypes.func, // The translation function +}; + +export default withAppContext(withAdministrationWorkspace(withAdminUserPassphrasePolicies(withTranslation('common')(DisplayAdministrationUserPassphrasePolicies)))); diff --git a/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.data.js b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.data.js new file mode 100644 index 000000000..cdeaabdb6 --- /dev/null +++ b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.data.js @@ -0,0 +1,34 @@ +/** + * Passbolt ~ Open source password manager for teams + * Copyright (c) Passbolt SA (https://www.passbolt.com) + * + * Licensed under GNU Affero General Public License version 3 of the or any later version. + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com) + * @license https://opensource.org/licenses/AGPL-3.0 AGPL License + * @link https://www.passbolt.com Passbolt(tm) + * @since 4.3.0 + */ + +import {defaultActionFeedbackContext} from "../../../contexts/ActionFeedbackContext.test.data"; +import {defaultAdministrationWorkspaceContext} from "../../../contexts/AdministrationWorkspaceContext.test.data"; +import {defaultAdministratorAppContext} from "../../../contexts/ExtAppContext.test.data"; +import {defaultDialogContext} from "../../../contexts/DialogContext.test.data"; + +/** + * Default props. + * @param {Object} data The props to override + * @returns {object} + */ +export function defaultProps(data = {}) { + const defaultData = { + context: defaultAdministratorAppContext(), + dialogContext: defaultDialogContext(), + administrationWorkspaceContext: defaultAdministrationWorkspaceContext(), + actionFeedbackContext: defaultActionFeedbackContext(), + t: text => text, + }; + return Object.assign(defaultData, data); +} diff --git a/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.js b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.js new file mode 100644 index 000000000..75741abb5 --- /dev/null +++ b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.js @@ -0,0 +1,246 @@ +/** + * Passbolt ~ Open source password manager for teams + * Copyright (c) Passbolt SA (https://www.passbolt.com) + * + * Licensed under GNU Affero General Public License version 3 of the or any later version. + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com) + * @license https://opensource.org/licenses/AGPL-3.0 AGPL License + * @link https://www.passbolt.com Passbolt(tm) + * @since 4.3.0 + */ + +import each from 'jest-each'; +import {defaultAppContext} from '../../../contexts/ApiAppContext.test.data'; +import {defaultProps} from './DisplayAdministrationUserPassphrasePolicies.test.data'; +import {defaultUserPassphrasePoliciesEntityDto, userPassphrasePoliciesEntityDtoFromApi} from '../../../../shared/models/userPassphrasePolicies/UserPassphrasePoliciesDto.test.data'; +import DisplayAdministrationUserPassphrasePoliciesPage from './DisplayAdministrationUserPassphrasePolicies.test.page'; +import {waitForTrue} from '../../../../../test/utils/waitFor'; +import NotifyError from '../../Common/Error/NotifyError/NotifyError'; + +/** + * Unit tests on DisplayAdministrationUserPassphrasePolicies in regard of specifications + */ +describe("DisplayAdministrationUserPassphrasePolicies", () => { + beforeEach(() => { + jest.clearAllMocks(); + jest.resetModules(); + }); + + describe("As a signed-in administrator I can see the user passphrase policy settings", () => { + it('The component loads properly', async() => { + expect.assertions(2); + const context = defaultAppContext(); + const props = defaultProps(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => null); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + expect(page.saveSettingsButton).not.toBeNull(); + expect(page.title.textContent).toBe("User Passphrase Policies"); + }); + + it('As an administrator I can access the user passphrase policies help page', async() => { + expect.assertions(3); + const context = defaultAppContext(); + const props = defaultProps(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => null); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + const helpPageLink = page.helpPageLink; + expect(helpPageLink).not.toBeNull(); + expect(helpPageLink.getAttribute('rel')).toStrictEqual("noopener noreferrer"); + expect(helpPageLink.getAttribute('href')).toStrictEqual("https://help.passbolt.com/configure/user-passphrase-policies"); + }); + + it('As an administrator I should see the default settings', async() => { + expect.assertions(2); + const context = defaultAppContext(); + const props = defaultProps(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => null); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + expect(page.getSelectedEntropyMinimumValue()).toStrictEqual(`50 bits`); + expect(page.externalDictionaryCheck.checked).toStrictEqual(false); + }); + + each([ + {external_dictionary_check: true, entropy_minimum: 64}, + {external_dictionary_check: false, entropy_minimum: 128}, + {external_dictionary_check: true, entropy_minimum: 50}, + ]).describe("As an administrator I should see the custom settings", dto => { + it(`with ${JSON.stringify(dto)}`, async() => { + expect.assertions(2); + + const context = defaultAppContext(); + const props = defaultProps(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => dto); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + expect(page.getSelectedEntropyMinimumValue()).toStrictEqual(`${dto.entropy_minimum.toString()} bits`); + expect(page.externalDictionaryCheck.checked).toStrictEqual(dto.external_dictionary_check); + }); + }); + }); + + describe('As a signed-in administrator I can customise the user passphrase policy settings', () => { + it('As an administrator when I modify a field, I can see a changes warning message', async() => { + expect.assertions(1); + const context = defaultAppContext(); + const props = defaultProps(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => null); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + await page.clickOnExternalDictionaryCheck(); + + expect(page.saveWarningBanner).not.toBeNull(); + }); + + it('As an administrator I should be warned if I define weak settings', async() => { + expect.assertions(1); + const context = defaultAppContext(); + const props = defaultProps(); + const strongEntityDto = defaultUserPassphrasePoliciesEntityDto({ + entropy_minimum: 112 + }); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => strongEntityDto); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + const entropyLabelIndex = 1; + await page.clickOnEntropyLabel(entropyLabelIndex); + + expect(page.weakSettingsWarningBanner).not.toBeNull(); + }); + + it('As an administrator when I save the policy, I can see a success feedback', async() => { + expect.assertions(3); + const context = defaultAppContext(); + const props = defaultProps(); + const entityDto = defaultUserPassphrasePoliciesEntityDto(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => entityDto); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + //changes are pending + await page.clickOnExternalDictionaryCheck(); + + expect(page.saveWarningBanner).not.toBeNull(); + await page.clickOnSave(); + + //changes are not pending anymore, saved happened + expect(page.saveWarningBanner).toBeNull(); + expect(props.actionFeedbackContext.displaySuccess).toHaveBeenCalledTimes(1); + }); + + it('As an administrator I can save the policy', async() => { + expect.assertions(2); + const context = defaultAppContext(); + const props = defaultProps(); + const entityDto = userPassphrasePoliciesEntityDtoFromApi({ + entropy_minimum: 50, + external_dictionary_check: false + }); + const expectedData = { + entropy_minimum: 128, + external_dictionary_check: true + }; + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => entityDto); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.save", entityDtoToSave => { + expect(entityDtoToSave?.entropy_minimum).toStrictEqual(expectedData.entropy_minimum); + expect(entityDtoToSave?.external_dictionary_check).toStrictEqual(expectedData.external_dictionary_check); + return expectedData; + }); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + const entropyLabel128Index = 4; + await page.clickOnExternalDictionaryCheck(); + await page.clickOnEntropyLabel(entropyLabel128Index); + await page.clickOnSave(); + }); + + it('As an administrator when I save the policy, I cannot update any form fields', async() => { + expect.assertions(2); + const context = defaultAppContext(); + const props = defaultProps(); + const entityDto = defaultUserPassphrasePoliciesEntityDto(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => entityDto); + + let savePromise; + props.context.port.addRequestListener("passbolt.user-passphrase-policies.save", () => new Promise(resolve => { + savePromise = resolve; + })); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + page.clickOn(page.saveSettingsButton); + + await waitForTrue(() => page.externalDictionaryCheck.hasAttribute('disabled')); + expect(page.externalDictionaryCheck.hasAttribute('disabled')).toStrictEqual(true); + + await savePromise(entityDto); + + await waitForTrue(() => !page.externalDictionaryCheck.hasAttribute('disabled')); + expect(page.externalDictionaryCheck.hasAttribute('disabled')).toStrictEqual(false); + }); + + it('As an administrator when I save the policy, I cannot trigger an action on settings page', async() => { + expect.assertions(2); + const context = defaultAppContext(); + const props = defaultProps(); + const entityDto = defaultUserPassphrasePoliciesEntityDto(); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => entityDto); + + let savePromise; + props.context.port.addRequestListener("passbolt.user-passphrase-policies.save", () => new Promise(resolve => { + savePromise = resolve; + })); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + + page.clickOn(page.saveSettingsButton); + + await waitForTrue(() => page.saveSettingsButton.hasAttribute('disabled')); + expect(page.saveSettingsButton.hasAttribute('disabled')).toStrictEqual(true); + + await savePromise(entityDto); + + await waitForTrue(() => !page.saveSettingsButton.hasAttribute('disabled')); + expect(page.saveSettingsButton.hasAttribute('disabled')).toStrictEqual(false); + }); + + it('As an administrator when an unexpected error happened while saving the policy, I should see the error dialog', async() => { + expect.assertions(3); + const context = defaultAppContext(); + const props = defaultProps(); + const entityDto = defaultUserPassphrasePoliciesEntityDto(); + const expectedError = new Error("Something went wrong!"); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.find", () => entityDto); + props.context.port.addRequestListener("passbolt.user-passphrase-policies.save", () => { throw expectedError; }); + + const page = new DisplayAdministrationUserPassphrasePoliciesPage(context, props); + await waitForTrue(() => page.exists()); + await page.clickOnSave(); + expect(props.actionFeedbackContext.displayError).toHaveBeenCalledTimes(1); + expect(props.dialogContext.open).toHaveBeenCalledTimes(1); + expect(props.dialogContext.open).toHaveBeenCalledWith(NotifyError, {error: expectedError}); + }); + }); +}); diff --git a/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.page.js b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.page.js new file mode 100644 index 000000000..b610f2b17 --- /dev/null +++ b/src/react-extension/components/Administration/DisplayAdministrationUserPassphrasePolicies/DisplayAdministrationUserPassphrasePolicies.test.page.js @@ -0,0 +1,177 @@ +/** + * Passbolt ~ Open source password manager for teams + * Copyright (c) Passbolt SA (https://www.passbolt.com) + * + * Licensed under GNU Affero General Public License version 3 of the or any later version. + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com) + * @license https://opensource.org/licenses/AGPL-3.0 AGPL License + * @link https://www.passbolt.com Passbolt(tm) + * @since 4.3.0 + */ + +import React from "react"; +import {fireEvent, render} from "@testing-library/react"; +import AppContext from "../../../../shared/context/AppContext/AppContext"; +import MockTranslationProvider from "../../../test/mock/components/Internationalisation/MockTranslationProvider"; +import DisplayAdministrationUserPassphrasePoliciesActions from "../DisplayAdministrationWorkspaceActions/DisplayAdministrationUserPassphrasePoliciesActions/DisplayAdministrationUserPassphrasePoliciesActions"; +import AdministrationUserPassphrasePoliciesContextProvider from "../../../contexts/Administration/AdministrationUserPassphrasePoliciesContext/AdministrationUserPassphrasePoliciesContext"; +import DisplayAdministrationUserPassphrasePolicies from "./DisplayAdministrationUserPassphrasePolicies"; +import {waitForTrue} from "../../../../../test/utils/waitFor"; + +/** + * The DisplayPasswordPoliciesAdministration component represented as a page + */ +export default class DisplayAdministrationUserPassphrasePoliciesPage { + /** + * Default constructor + * @param appContext An app context + * @param props Props to attach + */ + constructor(appContext, props) { + this._page = render( + + + + + + + + + ); + } + + /** + * Shortcut for selecting an element in the current page container. + * @param {string} cssSelector + * @returns {HTMLElement} + */ + select(cssSelector) { + return this._page.container.querySelector(cssSelector); + } + + /** + * Shortcut for selecting all matching element in the current page container. + * @param {string} cssSelector + * @returns {HTMLElement} + */ + selectAll(cssSelector) { + return this._page.container.querySelectorAll(cssSelector); + } + + /** + * Returns true if the page object exists in the container + * @returns {boolean} + */ + exists() { + return this.title !== null; + } + + /** + * Returns the main title of the page + * @returns {HTMLElement} + */ + get title() { + return this.select('#user-passphrase-policies-title'); + } + + /** + * Returns the help page link button + * @returns {HTMLElement} + */ + get helpPageLink() { + return this.select('.sidebar-help a.button'); + } + + /** + * Returns the main title of the page + * @returns {HTMLElement} + */ + get saveSettingsButton() { + return this.select(".actions #save-settings"); + } + + /** + * Returns an entropy label element given its index + * @returns {HTMLElement} + */ + entropyLabel(index) { + const elements = this.selectAll("#entropy_minimum + .range-options .range-option"); + return elements[index]; + } + + /** + * Returns the external dictionary check checkbox element + * @returns {HTMLElement} + */ + get externalDictionaryCheck() { + return this.select("#user-passphrase-policies-external-services-toggle-button"); + } + + /** + * Returns the save warning banner element + * @returns {HTMLElement} + */ + get saveWarningBanner() { + return this.select("#user-passphrase-policies-save-banner"); + } + + /** + * Returns the weak settings warning banner element + * @returns {HTMLElement} + */ + get weakSettingsWarningBanner() { + return this.select("#user-passphrase-policies-weak-settings-banner"); + } + + /** + * Returns the select entropy minimum label option + * @returns {string} + */ + getSelectedEntropyMinimumValue() { + const element = this.select(".range-options .range-option--active"); + return element.textContent; + } + + /** + * Simulates a click on the "external dictionary check" checkbox + * @returns {Promise} + */ + async clickOnExternalDictionaryCheck() { + const isChecked = this.externalDictionaryCheck.checked; + this.clickOn(this.externalDictionaryCheck); + await waitForTrue(() => isChecked !== this.externalDictionaryCheck.checked); + } + + /** + * Simulates a click on an entropy_minimum label matching the given index + * @param {number} elementIndex + * @returns {Promise} + */ + async clickOnEntropyLabel(elementIndex) { + const entropyLabel = this.entropyLabel(elementIndex); + this.clickOn(entropyLabel); + await waitForTrue(() => entropyLabel.classList.contains('range-option--active')); + } + + /** + * Simulates a click on the save settings button + * @returns {Promise} + */ + async clickOnSave() { + this.clickOn(this.saveSettingsButton); + await waitForTrue(() => !this.saveSettingsButton.getAttribute('disabled')); + } + + /** + * Simulates a click on the given HTML element. + * @param {HTMLElement} element The HTML element onto simulate the click + * @returns {Promise} + */ + clickOn(element) { + const leftClick = {button: 0}; + fireEvent.click(element, leftClick); + } +} diff --git a/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserPassphrasePoliciesActions/DisplayAdministrationUserPassphrasePoliciesActions.js b/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserPassphrasePoliciesActions/DisplayAdministrationUserPassphrasePoliciesActions.js new file mode 100644 index 000000000..ab7017acc --- /dev/null +++ b/src/react-extension/components/Administration/DisplayAdministrationWorkspaceActions/DisplayAdministrationUserPassphrasePoliciesActions/DisplayAdministrationUserPassphrasePoliciesActions.js @@ -0,0 +1,119 @@ +/** + * Passbolt ~ Open source password manager for teams + * Copyright (c) Passbolt SA (https://www.passbolt.com) + * + * Licensed under GNU Affero General Public License version 3 of the or any later version. + * For full copyright and license information, please see the LICENSE.txt + * Redistributions of files must retain the above copyright notice. + * + * @copyright Copyright (c) Passbolt SA (https://www.passbolt.com) + * @license https://opensource.org/licenses/AGPL-3.0 AGPL License + * @link https://www.passbolt.com Passbolt(tm) + * @since 4.3.0 + */ + +import React from "react"; +import PropTypes from "prop-types"; +import {Trans, withTranslation} from "react-i18next"; +import Icon from "../../../../../shared/components/Icons/Icon"; +import {withDialog} from "../../../../contexts/DialogContext"; +import {withActionFeedback} from '../../../../contexts/ActionFeedbackContext'; +import {withAdminUserPassphrasePolicies} from "../../../../contexts/Administration/AdministrationUserPassphrasePoliciesContext/AdministrationUserPassphrasePoliciesContext"; +import NotifyError from "../../../Common/Error/NotifyError/NotifyError"; + +/** + * This component is a container of multiple actions applicable on setting + */ + +class DisplayAdministrationUserPassphrasePoliciesActions extends React.Component { + /** + * Constructor + * @param {Object} props + */ + constructor(props) { + super(props); + this.bindCallbacks(); + } + + /** + * Bind callbacks methods + */ + bindCallbacks() { + this.handleSave = this.handleSave.bind(this); + } + + /** + * Is save button enabled + * @returns {boolean} + */ + get isActionEnabled() { + return !this.props.adminUserPassphrasePoliciesContext.isProcessing(); + } + + /** + * Handles the save action. + * @return {Promise} + */ + async handleSave() { + if (!this.isActionEnabled || !this.props.adminUserPassphrasePoliciesContext.validateData()) { + return; + } + + try { + await this.props.adminUserPassphrasePoliciesContext.save(); + await this.handleSaveSuccess(); + } catch (error) { + await this.handleSaveError(error); + } + } + + /** + * Handle save operation success. + * @returns {Promise} + */ + async handleSaveSuccess() { + await this.props.actionFeedbackContext.displaySuccess(this.props.t("The user passphrase policies were updated.")); + } + + /** + * Handle save operation error. + * @param {object} error The returned error + * @returns {Promise} + */ + async handleSaveError(error) { + console.error(error); + await this.props.actionFeedbackContext.displayError(error.message); + this.props.dialogContext.open(NotifyError, {error}); + } + + /** + * Render the component + * @returns {JSX} + */ + render() { + const isDisabled = !this.isActionEnabled; + return ( +
    +
    +
      +
    • + +
    • +
    +
    +
    + ); + } +} + +DisplayAdministrationUserPassphrasePoliciesActions.propTypes = { + adminUserPassphrasePoliciesContext: PropTypes.object, // The password policy context + actionFeedbackContext: PropTypes.object, // The action feedback context + dialogContext: PropTypes.any, // The application context + t: PropTypes.func, // The translation function +}; + +export default withAdminUserPassphrasePolicies(withActionFeedback(withDialog(withTranslation("common")(DisplayAdministrationUserPassphrasePoliciesActions)))); diff --git a/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js b/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js index bbb6ea245..485fd9cc3 100644 --- a/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js +++ b/src/react-extension/components/Administration/DisplayAdministrationWorkspaceBreadcrumb/DisplayAdministrationWorkspaceBreadcrumb.js @@ -73,6 +73,8 @@ class DisplayAdministrationWorkspaceBreadcrumb extends Component { return this.translate("Role-Based Access Control"); case AdministrationWorkspaceMenuTypes.PASSWORD_POLICIES: return this.translate("Password Policy"); + case AdministrationWorkspaceMenuTypes.USER_PASSPHRASE_POLICIES: + return this.translate("User Passphrase Policies"); default: return ""; } diff --git a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js index fc04a46ec..67b360f10 100644 --- a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js +++ b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.js @@ -20,6 +20,7 @@ import DisplayAdministrationMfaActions from "../DisplayAdministrationWorkspaceAc import {withAdminMfa} from "../../../contexts/Administration/AdministrationMfa/AdministrationMfaContext"; import MfaFormService from '../../../../shared/services/forms/Mfa/MfaFormService'; import Password from "../../../../shared/components/Password/Password"; +import {withAppContext} from "../../../../shared/context/AppContext/AppContext"; /** * This component allows to display the MFA for the administration @@ -40,10 +41,11 @@ class DisplayMfaAdministration extends React.Component { * Invoked immediately after component is inserted into the tree * @return {void} */ - async componentDidMount() { this.props.administrationWorkspaceContext.setDisplayAdministrationWorkspaceAction(DisplayAdministrationMfaActions); - this.props.adminMfaContext.findMfaSettings(); + if (this.isRunningUnderHttps) { + this.props.adminMfaContext.findMfaSettings(); + } } /** @@ -103,6 +105,16 @@ class DisplayMfaAdministration extends React.Component { } } + /** + * Returns true if the current URL is using the protocol HTTPS + * @returns {boolean} + */ + get isRunningUnderHttps() { + const trustedDomain = this.props.context.trustedDomain; + const url = new URL(trustedDomain); + return url.protocol === "https:"; + } + /** * Should input be disabled? True if state is loading or processing * @returns {boolean} @@ -124,116 +136,123 @@ class DisplayMfaAdministration extends React.Component {

    Multi Factor Authentication

    -

    In this section you can choose which multi factor authentication will be available.

    -

    - - - - -

    - {!settings.totpProviderToggle && -

    - The Time-based One Time Password provider is disabled for all users. -

    - } - {settings.totpProviderToggle && -

    - The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. -

    - } -

    - - - - -

    - {!settings.yubikeyToggle && -

    - The Yubikey provider is disabled for all users. -

    + {!this.isRunningUnderHttps && +

    Sorry the multi factor authentication feature is only available in a secure context (HTTPS).

    } - {settings.yubikeyToggle && + {this.isRunningUnderHttps && <> +

    In this section you can choose which multi factor authentication will be available.

    +

    + + + + +

    + {!settings.totpProviderToggle &&

    - The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. + The Time-based One Time Password provider is disabled for all users.

    -
    - - - {(errors.yubikeyClientIdentifierError && isSubmitted) && -
    {errors.yubikeyClientIdentifierError}
    - } -
    -
    - - - {(errors.yubikeySecretKeyError && isSubmitted) && -
    {errors.yubikeySecretKeyError}
    - } -
    - - } -

    - - - - -

    - {!settings.duoToggle && -

    - The Duo provider is disabled for all users. -

    - } - {settings.duoToggle && - <> -

    - The Duo provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. + } + {settings.totpProviderToggle && +

    + The Time-based One Time Password provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. +

    + } +

    + + + + +

    + {!settings.yubikeyToggle && +

    + The Yubikey provider is disabled for all users. +

    + } + {settings.yubikeyToggle && + <> +

    + The Yubikey provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. +

    +
    + + + {(errors.yubikeyClientIdentifierError && isSubmitted) && +
    {errors.yubikeyClientIdentifierError}
    + } +
    +
    + + + {(errors.yubikeySecretKeyError && isSubmitted) && +
    {errors.yubikeySecretKeyError}
    + } +
    + + } +

    + + + + +

    + {!settings.duoToggle && +

    + The Duo provider is disabled for all users.

    -
    - - - {(errors.duoHostnameError && isSubmitted) && -
    {errors.duoHostnameError}
    - } -
    -
    - - - {(errors.duoClientIdError && isSubmitted) && -
    {errors.duoClientIdError}
    - } -
    -
    - - - {(errors.duoClientSecretError && isSubmitted) && -
    {errors.duoClientSecretError}
    - } -
    + } + {settings.duoToggle && + <> +

    + The Duo provider is enabled for all users. They can setup this provider in their profile and use it as second factor authentication. +

    +
    + + + {(errors.duoHostnameError && isSubmitted) && +
    {errors.duoHostnameError}
    + } +
    +
    + + + {(errors.duoClientIdError && isSubmitted) && +
    {errors.duoClientIdError}
    + } +
    +
    + + + {(errors.duoClientSecretError && isSubmitted) && +
    {errors.duoClientSecretError}
    + } +
    + + } }
    @@ -253,9 +272,10 @@ class DisplayMfaAdministration extends React.Component { } DisplayMfaAdministration.propTypes = { + context: PropTypes.object, // the app context adminMfaContext: PropTypes.object, // The administration workspace context administrationWorkspaceContext: PropTypes.object, // The administration workspace context t: PropTypes.func, // The translation function }; -export default withAdminMfa(withAdministrationWorkspace(withTranslation('common')(DisplayMfaAdministration))); +export default withAppContext(withAdminMfa(withAdministrationWorkspace(withTranslation('common')(DisplayMfaAdministration)))); diff --git a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js index 0db924eaf..1c59df43d 100644 --- a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js +++ b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.js @@ -157,4 +157,16 @@ describe("See the MFA settings", () => { expect(page.duo.getAttribute("disabled")).not.toBeNull(); }); }); + + describe("Should not display the form if the site is not running under https", () => { + it("Should display a message to the admin explaining the reason why the form is not displayed", () => { + expect.assertions(1); + const context = defaultAppContext({ + trustedDomain: "http://localhost" + }); // The applicative context + const props = defaultProps({context}); // The props to pass + const page = new DisplayMfaAdministrationPage(context, props); + expect(page.formNotDisplayedMessage.textContent).toStrictEqual("Sorry the multi factor authentication feature is only available in a secure context (HTTPS)."); + }); + }); }); diff --git a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js index fbbfc3905..c4f7b0e71 100644 --- a/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js +++ b/src/react-extension/components/Administration/DisplayMfaAdministration/DisplayMfaAdministration.test.page.js @@ -48,6 +48,13 @@ export default class DisplayMfaAdministrationPage { return this._page.container.querySelector('.mfa-settings'); } + /** + * Returns the first

    tag that should match the "not displayed form" warning message + */ + get formNotDisplayedMessage() { + return this._page.container.querySelector("h3 + p"); + } + /** * Returns the totp input element */ diff --git a/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.js b/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.js index d5931bf4e..4388b3926 100644 --- a/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.js +++ b/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.js @@ -201,7 +201,7 @@ class DisplayPasswordPoliciesAdministration extends React.Component {

    The current password configuration generates passwords that are not strong enough.
    - Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe. + Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.

    } @@ -209,13 +209,13 @@ class DisplayPasswordPoliciesAdministration extends React.Component {

    The current passphrase configuration generates passphrases that are not strong enough.
    - Passbolt recommends a minimum of {{minimalAdvisedEntropy}}bits to be safe. + Passbolt recommends a minimum of {{minimalAdvisedEntropy}} bits to be safe.

    }

    Password generator default settings

    -

    You can modify the default settings of the passwords generator, note that this will not prevent a user from customizing the settings while generating a password.

    - +

    You can modify the default settings of the passwords generator. + Note that this will not prevent a user from customizing the settings while generating a password.

    diff --git a/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.test.data.js b/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.test.data.js index 8dc6c19b4..538e343ac 100644 --- a/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.test.data.js +++ b/src/react-extension/components/Administration/DisplayPasswordPoliciesAdministration/DisplayPasswordPoliciesAdministration.test.data.js @@ -12,7 +12,7 @@ * @since 4.2.0 */ -import {defaultActionFeedbackContextContext} from "../../../contexts/ActionFeedbackContext.test.data"; +import {defaultActionFeedbackContext} from "../../../contexts/ActionFeedbackContext.test.data"; import {defaultAdministrationWorkspaceContext} from "../../../contexts/AdministrationWorkspaceContext.test.data"; import {defaultAdministratorAppContext} from "../../../contexts/ExtAppContext.test.data"; import {defaultPasswordPoliciesDto} from "../../../../shared/models/passwordPolicies/PasswordPoliciesDto.test.data"; @@ -29,7 +29,7 @@ export function defaultProps(props = {}) { }, context: defaultAdministratorAppContext(), administrationWorkspaceContext: defaultAdministrationWorkspaceContext(), - actionFeedbackContext: defaultActionFeedbackContextContext(), + actionFeedbackContext: defaultActionFeedbackContext(), t: text => text, ...props }; diff --git a/src/react-extension/components/Administration/DisplayRbacAdministration/DisplayRbacAdministration.test.data.js b/src/react-extension/components/Administration/DisplayRbacAdministration/DisplayRbacAdministration.test.data.js index c028efd8c..496a911c9 100644 --- a/src/react-extension/components/Administration/DisplayRbacAdministration/DisplayRbacAdministration.test.data.js +++ b/src/react-extension/components/Administration/DisplayRbacAdministration/DisplayRbacAdministration.test.data.js @@ -18,7 +18,7 @@ */ import {defaultAppContext} from "../../../contexts/ApiAppContext.test.data"; import {defaultAdministrationWorkspaceContext} from "../../../contexts/AdministrationWorkspaceContext.test.data"; -import {defaultActionFeedbackContextContext} from "../../../contexts/ActionFeedbackContext.test.data"; +import {defaultActionFeedbackContext} from "../../../contexts/ActionFeedbackContext.test.data"; import { administrationRbacContextWithUpdatedRbac, defaultAdministrationRbacContext, @@ -32,7 +32,7 @@ export function defaultProps(props = {}) { context: defaultAppContext(), adminRbacContext: defaultAdministrationRbacContext(), administrationWorkspaceContext: defaultAdministrationWorkspaceContext(), - actionFeedbackContext: defaultActionFeedbackContextContext(), + actionFeedbackContext: defaultActionFeedbackContext(), RoleService: DefaultRoleService, RbacService: DefaultRbacService, ...props diff --git a/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js b/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js index 2e1ed471a..7bdd5bd8c 100644 --- a/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js +++ b/src/react-extension/components/Administration/ProvideAccountRecoveryOrganizationKey/ProvideAccountRecoveryOrganizationKey.js @@ -163,8 +163,7 @@ class ProvideAccountRecoveryOrganizationKey extends React.Component { */ handlePasswordInputKeyUp() { if (this.state.hasAlreadyBeenValidated) { - const state = this.validatePasswordInput(); - this.setState(state); + this.setState({passwordError: ""}); } else { const hasResourcePasswordMaxLength = this.state.password.length >= RESOURCE_PASSWORD_MAX_LENGTH; const warningMessage = this.translate("this is the maximum size for this field, make sure your data was not truncated"); @@ -173,22 +172,6 @@ class ProvideAccountRecoveryOrganizationKey extends React.Component { } } - /** - * Validate the password input. - * @return {Promise} - */ - validatePasswordInput() { - const password = this.state.password; - let passwordError = ""; - if (!password.length) { - passwordError = this.translate("A password is required."); - } - - return new Promise(resolve => { - this.setState({passwordError: passwordError}, resolve); - }); - } - /** * Handle form input change. * @params {ReactEvent} The react event. @@ -304,11 +287,7 @@ class ProvideAccountRecoveryOrganizationKey extends React.Component { expectedFingerprintError: "" }); - // Validate the form inputs. - await Promise.all([ - this.validateKeyInput(), - this.validatePasswordInput() - ]); + await this.validateKeyInput(); return this.state.keyError === "" && this.state.passwordError === ""; } @@ -421,7 +400,7 @@ class ProvideAccountRecoveryOrganizationKey extends React.Component {
    } -
    +
    - -
    -
      -
    • - It is at least 8 characters in length -
    • -
    • - It contains lower and uppercase characters -
    • -
    • - It contains letters and numbers -
    • -
    • - It contains special characters (like / or * or %) -
    • -
    • - {this.state.isPwnedServiceAvailable && - It is not part of an exposed data breach - } - {!this.state.isPwnedServiceAvailable && - The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach} - direction="bottom"> - It is not part of an exposed data breach - - } -
    • -
    + + <> + {!this.state.isPwnedServiceAvailable && this.state.passphrase?.length > 0 && +
    The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach
    + } + {this.state.passphraseInDictionnary && +
    The passphrase is part of an exposed data breach.
    + } +
    @@ -362,6 +311,7 @@ CreateGpgKey.defaultProps = { CreateGpgKey.propTypes = { context: PropTypes.any, // The application context onComplete: PropTypes.func.isRequired, // The callback function to call when the form is submitted + userPassphrasePolicies: PropTypes.object.isRequired, // The User Passphrase Policies set by the organisation displayAs: PropTypes.PropTypes.oneOf([ CreateGpgKeyVariation.SETUP, CreateGpgKeyVariation.GENERATE_ACCOUNT_RECOVERY_GPG_KEY diff --git a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js index 15cbcde20..cb64eeb98 100644 --- a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js +++ b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.data.js @@ -14,6 +14,7 @@ import {CreateGpgKeyVariation} from "./CreateGpgKey"; import {defaultAppContext} from "../../../contexts/ApiAppContext.test.data"; +import {defaultUserPassphrasePoliciesEntityDto} from "../../../../shared/models/userPassphrasePolicies/UserPassphrasePoliciesDto.test.data"; /** * Default props @@ -26,6 +27,7 @@ export function defaultProps(props) { canIUse: () => true, }}, ), + userPassphrasePolicies: defaultUserPassphrasePoliciesEntityDto(), displayAs: CreateGpgKeyVariation.SETUP, onComplete: jest.fn(() => Promise.resolve()), onSecondaryActionClick: jest.fn(() => Promise.resolve()), diff --git a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js index 8cddfa202..99094c005 100644 --- a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js +++ b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.js @@ -222,14 +222,13 @@ describe("CreateGpgKey", () => { }); it('As AN I should be inform about ExternalServiceUnavailableError for powned password service', async() => { - expect.assertions(2); + expect.assertions(1); const props = defaultProps({displayAs: CreateGpgKeyVariation.SETUP}); jest.spyOn(props.context.port, "request").mockImplementationOnce(() => Promise.reject()); const page = new CreateGpgKeyPage(props); await waitFor(() => {}); await page.fill("Service is unavailable"); - expect(page.notInDictionaryHint.classList.contains("unavailable")).toBeTruthy(); - expect(page.tootltip.textContent).toBe("The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach"); + expect(page.passphraseWarningMessage.textContent).toBe("The pwnedpasswords service is unavailable, your passphrase might be part of an exposed data breach"); }); it("As AN I should see a complexity as Quality if the passphrase is empty", async() => { diff --git a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js index 89bc351a9..e7df4d123 100644 --- a/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js +++ b/src/react-extension/components/Authentication/CreateGpgKey/CreateGpgKey.test.page.js @@ -158,20 +158,13 @@ export default class CreateGpgKeyPage { return Boolean(this._page.container.querySelector('#import-key-link')); } - /** - * Returns the list item concerning the 'not in dictionnary" hints + * Returns the passphrase's warning message for powned password */ - get notInDictionaryHint() { - return this._page.container.querySelector(".password-hints #notInDictionaryHint"); + get passphraseWarningMessage() { + return this._page.container.querySelector(".invalid-passphrase.warning-message"); } - /** - * Returns the tooltip for service unavailable for powned password - */ - get tootltip() { - return this._page.container.querySelector(".password-hints .unavailable .tooltip .tooltip-text"); - } /** * Change the passphrase input value diff --git a/src/react-extension/components/AuthenticationLogin/Login/Login.js b/src/react-extension/components/AuthenticationLogin/Login/Login.js index 063d43465..f2b6d5739 100644 --- a/src/react-extension/components/AuthenticationLogin/Login/Login.js +++ b/src/react-extension/components/AuthenticationLogin/Login/Login.js @@ -63,11 +63,11 @@ class Login extends Component { } /** - * On the component did mount, set the workspace action component and get the account recovery policy - * + * Whenever the component is mounted */ - async componentDidMount() { + componentDidMount() { this.focusOnPassphrase(); + this.initDefaultRememberMeChoice(); } /** @@ -271,6 +271,17 @@ class Login extends Component { this.props.switchToSsoLogin(); } + /** + * Initialise the rememberMe choice with the latest choice made by the user or false if none + * @returns {Promise} + */ + async initDefaultRememberMeChoice() { + const defaultRememberMeChoice = await this.props.context.port.request('passbolt.remember-me.get-user-latest-choice'); + if (defaultRememberMeChoice !== this.state.rememberMe) { + this.setState({rememberMe: defaultRememberMeChoice}); + } + } + /** * Get the security token * @returns {{backgroundColor, code, textColor}} @@ -342,7 +353,7 @@ class Login extends Component { id="remember-me" type="checkbox" name="remember-me" - value={this.state.rememberMe} + checked={this.state.rememberMe} onChange={this.handleToggleRememberMe} disabled={!this.areActionsAllowed}/>