From a5a12a672395880b3a7fe92802b893ddb549c73e Mon Sep 17 00:00:00 2001 From: Daniel James Smith Date: Thu, 23 Mar 2023 11:43:27 +0100 Subject: [PATCH 01/39] [PM-328] Move `common/importer` to `libs/importer` (tools-migration) (#5060) * Create and register new libs/importer Create package.json Create tsconfig Create jest.config Extend shared and root tsconfig and jest.configs Register with eslint * Move importer-related files to libs/importer * Move importer-spec-related files to libs/importer Move import.service.spec * Update package-lock.json * Set CODEOWNERS for new libs/importer * Register libs/importer with cli and fix imports * Register libs/importer with web and fix imports * Move importOption into models Rename importOptions to import-options * Fix linting issues after updating prettier * Only expose necessary files from libs/importer Fix tsconfig files - Removes the trailing /index on imports in web/cli As the spec-files no longer can access the internals via @bitwarden/importer they import by path (../src/importers) * Add barrel files to vendors with more than one importer --- .eslintrc.json | 10 ++ .github/CODEOWNERS | 1 + .github/whitelist-capital-letters.txt | 1 - apps/cli/src/bw.ts | 11 +- .../src/{commands => tools}/import.command.ts | 6 +- apps/cli/src/vault.program.ts | 2 +- apps/cli/tsconfig.json | 1 + .../import-export/org-import-export.module.ts | 10 +- .../import-export/org-import.component.ts | 4 +- .../import-export/import-export.module.ts | 10 +- .../tools/import-export/import.component.ts | 11 +- apps/web/tsconfig.json | 3 +- jest.config.js | 1 + libs/importer/jest.config.js | 14 ++ libs/importer/package.json | 23 +++ .../spec}/bitwarden-json-importer.spec.ts | 3 +- ...warden-password-protected-importer.spec.ts | 5 +- .../spec}/chrome-csv-importer.spec.ts | 5 +- .../spec}/dashlane-csv-importer.spec.ts | 7 +- .../spec}/enpass-json-importer.spec.ts | 23 +-- .../spec}/firefox-csv-importer.spec.ts | 5 +- .../spec}/keepass2-xml-importer.spec.ts | 19 +- .../spec}/keeper-csv-importer.spec.ts | 7 +- .../spec}/keeper-json-importer.spec.ts | 7 +- .../spec}/lastpass-csv-importer.spec.ts | 9 +- .../spec}/myki-csv-importer.spec.ts | 7 +- .../spec}/nordpass-csv-importer.spec.ts | 7 +- .../spec}/onepassword-1pif-importer.spec.ts | 13 +- .../spec}/onepassword-1pux-importer.spec.ts | 61 +++---- .../onepassword-mac-csv-importer.spec.ts | 9 +- .../onepassword-win-csv-importer.spec.ts | 7 +- .../spec}/passky-json-importer.spec.ts | 6 +- .../spec}/psono-json-importer.spec.ts | 25 +-- .../spec}/safari-csv-importer.spec.ts | 5 +- .../test-data/bitwarden-json/empty.json.ts | 0 .../bitwarden-json/password-protected.json.ts | 0 .../test-data/chrome-csv/android-data.csv.ts | 0 .../chrome-csv/simple-password-data.csv.ts | 0 .../test-data/dashlane-csv/credentials.csv.ts | 0 .../spec}/test-data/dashlane-csv/id.csv.ts | 0 .../multiple-personal-info.csv.ts | 0 .../test-data/dashlane-csv/payments.csv.ts | 0 .../dashlane-csv/personal-info.csv.ts | 0 .../test-data/dashlane-csv/securenotes.csv.ts | 0 .../test-data/enpass-json}/credit-card.ts | 2 +- .../spec/test-data/enpass-json}/folders.ts | 2 +- .../enpass-json}/login-android-url.ts | 2 +- .../spec/test-data/enpass-json}/login.ts | 2 +- .../spec/test-data/enpass-json}/note.ts | 2 +- .../firefox-csv/firefox-accounts-data.csv.ts | 0 .../firefox-csv/simple-password-data.csv.ts | 0 .../keepass2-xml-importer-testdata.ts | 0 .../test-data/keeper-csv/testdata.csv.ts | 0 .../test-data/keeper-json/testdata.json.ts | 2 +- .../test-data/myki-csv/user-account.csv.ts | 0 .../myki-csv/user-credit-card.csv.ts | 0 .../test-data/myki-csv/user-id-card.csv.ts | 0 .../test-data/myki-csv/user-identity.csv.ts | 0 .../spec}/test-data/myki-csv/user-note.csv.ts | 0 .../test-data/myki-csv/user-twofa.csv.ts | 0 .../nordpass-csv/nordpass.card.csv.ts | 0 .../nordpass-csv/nordpass.identity.csv.ts | 0 .../nordpass-csv/nordpass.login.csv.ts | 0 .../nordpass-csv/nordpass.secure-note.csv.ts | 0 .../onepassword-1pux/api-credentials.ts | 2 +- .../onepassword-1pux/bank-account.ts | 2 +- .../test-data/onepassword-1pux/credit-card.ts | 2 +- .../test-data/onepassword-1pux/database.ts | 2 +- .../onepassword-1pux/drivers-license.ts | 2 +- .../onepassword-1pux/email-account.ts | 2 +- .../email-field-on-identity.ts | 2 +- .../email-field-on-identity_prefilled.ts | 2 +- .../test-data/onepassword-1pux/email-field.ts | 2 +- .../onepassword-1pux/identity-data.ts | 2 +- .../test-data/onepassword-1pux/login-data.ts | 2 +- .../onepassword-1pux/medical-record.ts | 2 +- .../test-data/onepassword-1pux/membership.ts | 2 +- .../onepassword-1pux/onepux_example.ts | 2 +- .../onepassword-1pux/outdoor-license.ts | 2 +- .../test-data/onepassword-1pux/passport.ts | 2 +- .../test-data/onepassword-1pux/password.ts | 2 +- .../onepassword-1pux/rewards-program.ts | 2 +- .../onepassword-1pux/sanitized-export.ts | 2 +- .../test-data/onepassword-1pux/secure-note.ts | 2 +- .../test-data/onepassword-1pux/server.ts | 2 +- .../onepassword-1pux/software-license.ts | 2 +- .../spec}/test-data/onepassword-1pux/ssn.ts | 2 +- .../onepassword-1pux/wireless-router.ts | 2 +- .../onepassword-csv/credit-card.mac.csv.ts | 0 .../credit-card.windows.csv.ts | 0 .../onepassword-csv/identity.mac.csv.ts | 0 .../onepassword-csv/identity.windows.csv.ts | 0 .../onepassword-csv/multiple-items.mac.csv.ts | 0 .../multiple-items.windows.csv.ts | 0 .../passky-json/passky-encrypted.json.ts | 2 +- .../passky-json/passky-unencrypted.json.ts | 2 +- .../psono-json/application-passwords.ts | 2 +- .../test-data/psono-json/bookmark.json.ts | 2 +- .../test-data/psono-json/empty-folders.ts | 2 +- .../psono-json/environment-variables.ts | 2 +- .../spec}/test-data/psono-json/folders.ts | 2 +- .../spec}/test-data/psono-json/gpg.ts | 2 +- .../spec}/test-data/psono-json/notes.ts | 2 +- .../spec}/test-data/psono-json/totp.ts | 2 +- .../test-data/psono-json/website-logins.ts | 2 +- .../old-simple-password-data.csv.ts | 0 .../safari-csv/simple-password-data.csv.ts | 0 .../test-data/safeincloud/test-data.xml.ts | 0 .../src/importers/ascendo-csv-importer.ts | 2 +- .../importers/avast}/avast-csv-importer.ts | 7 +- .../importers/avast}/avast-json-importer.ts | 10 +- libs/importer/src/importers/avast/index.ts | 2 + .../src/importers/avira-csv-importer.ts | 2 +- .../src/importers/base-importer.ts | 29 ++-- .../bitwarden}/bitwarden-csv-importer.ts | 24 +-- .../bitwarden}/bitwarden-json-importer.ts | 20 +-- .../bitwarden-password-protected-importer.ts | 17 +- .../importer/src/importers/bitwarden/index.ts | 3 + .../src/importers/blackberry-csv-importer.ts | 2 +- .../src/importers/blur-csv-importer.ts | 2 +- .../src/importers/buttercup-csv-importer.ts | 2 +- .../src/importers/chrome-csv-importer.ts | 2 +- .../src/importers/clipperz-html-importer.ts | 2 +- .../src/importers/codebook-csv-importer.ts | 2 +- .../dashlane/dashlane-csv-importer.ts | 15 +- .../dashlane/dashlane-json-importer.ts | 15 +- libs/importer/src/importers/dashlane/index.ts | 2 + .../dashlane/types/dashlane-csv-types.ts | 0 .../src/importers/encryptr-csv-importer.ts | 7 +- .../importers/enpass/enpass-csv-importer.ts | 11 +- .../importers/enpass/enpass-json-importer.ts | 13 +- libs/importer/src/importers/enpass/index.ts | 2 + .../enpass/types/enpass-item-templates.ts | 0 .../enpass/types/enpass-json-type.ts | 0 .../src/importers/firefox-csv-importer.ts | 2 +- .../fsecure/fsecure-fsk-importer.spec.ts | 2 +- .../importers/fsecure/fsecure-fsk-importer.ts | 9 +- .../importers/fsecure/fsecure-fsk-types.ts | 0 .../src/importers/fsecure/fsk-test-data.ts | 0 .../src/importers/gnome-json-importer.ts | 2 +- .../src/importers/importer.ts | 2 +- libs/importer/src/importers/index.ts | 59 +++++++ .../src/importers/kaspersky-txt-importer.ts | 2 +- .../src/importers/keepass2-xml-importer.ts | 7 +- .../src/importers/keepassx-csv-importer.ts | 2 +- libs/importer/src/importers/keeper/index.ts | 2 + .../importers/keeper/keeper-csv-importer.ts | 2 +- .../importers/keeper/keeper-json-importer.ts | 2 +- .../keeper/types/keeper-json-types.ts | 0 .../src/importers/lastpass-csv-importer.ts | 19 +- .../src/importers/logmeonce-csv-importer.ts | 2 +- .../src/importers/meldium-csv-importer.ts | 2 +- .../src/importers/msecure-csv-importer.ts | 9 +- .../src/importers/myki-csv-importer.ts | 15 +- .../src/importers/nordpass-csv-importer.ts | 11 +- .../onepassword/cipher-import-context.ts | 2 +- .../src/importers/onepassword/index.ts | 5 + .../onepassword/onepassword-1pif-importer.ts | 19 +- .../onepassword/onepassword-1pux-importer.ts | 23 +-- .../onepassword/onepassword-csv-importer.ts | 9 +- .../onepassword-mac-csv-importer.ts | 9 +- .../onepassword-win-csv-importer.ts | 11 +- .../types/onepassword-1pux-importer-types.ts | 0 .../src/importers/padlock-csv-importer.ts | 5 +- .../src/importers/passkeep-csv-importer.ts | 2 +- .../importers/passky/passky-json-importer.ts | 2 +- .../src/importers/passky/passky-json-types.ts | 0 .../src/importers/passman-json-importer.ts | 2 +- .../src/importers/passpack-csv-importer.ts | 5 +- .../importers/passwordagent-csv-importer.ts | 2 +- .../importers/passwordboss-json-importer.ts | 9 +- .../importers/passworddragon-xml-importer.ts | 2 +- .../importers/passwordsafe-xml-importer.ts | 2 +- .../importers/passwordwallet-txt-importer.ts | 2 +- .../importers/psono/psono-json-importer.ts | 13 +- .../src/importers/psono/psono-json-types.ts | 0 .../src/importers/remembear-csv-importer.ts | 7 +- .../src/importers/roboform-csv-importer.ts | 2 +- .../src/importers/safari-csv-importer.ts | 2 +- .../src/importers/safeincloud-xml-importer.ts | 17 +- .../src/importers/saferpass-csv-importer.ts | 2 +- .../src/importers/securesafe-csv-importer.ts | 2 +- .../src/importers/splashid-csv-importer.ts | 5 +- .../importers/stickypassword-xml-importer.ts | 2 +- .../src/importers/truekey-csv-importer.ts | 11 +- .../src/importers/upm-csv-importer.ts | 2 +- .../src/importers/yoti-csv-importer.ts | 2 +- .../src/importers/zohovault-csv-importer.ts | 5 +- libs/importer/src/index.ts | 11 ++ .../src/models}/import-error.ts | 0 .../src/models/import-options.ts} | 0 .../src/models}/import-result.ts | 6 +- .../import-api.service.abstraction.ts | 4 +- .../src/services}/import-api.service.ts | 9 +- .../services}/import.service.abstraction.ts | 8 +- .../src}/services/import.service.spec.ts | 10 +- .../src/services}/import.service.ts | 162 +++++++++--------- libs/importer/tsconfig.json | 5 + libs/importer/tsconfig.spec.json | 3 + libs/shared/tsconfig.libs.json | 3 +- package-lock.json | 18 ++ tsconfig.json | 1 + 202 files changed, 707 insertions(+), 480 deletions(-) rename apps/cli/src/{commands => tools}/import.command.ts (93%) create mode 100644 libs/importer/jest.config.js create mode 100644 libs/importer/package.json rename libs/{common/spec/importers => importer/spec}/bitwarden-json-importer.spec.ts (92%) rename libs/{common/spec/importers => importer/spec}/bitwarden-password-protected-importer.spec.ts (95%) rename libs/{common/spec/importers => importer/spec}/chrome-csv-importer.spec.ts (94%) rename libs/{common/spec/importers => importer/spec}/dashlane-csv-importer.spec.ts (98%) rename libs/{common/spec/importers/enpass => importer/spec}/enpass-json-importer.spec.ts (89%) rename libs/{common/spec/importers => importer/spec}/firefox-csv-importer.spec.ts (93%) rename libs/{common/spec/importers => importer/spec}/keepass2-xml-importer.spec.ts (74%) rename libs/{common/spec/importers => importer/spec}/keeper-csv-importer.spec.ts (96%) rename libs/{common/spec/importers => importer/spec}/keeper-json-importer.spec.ts (96%) rename libs/{common/spec/importers => importer/spec}/lastpass-csv-importer.spec.ts (95%) rename libs/{common/spec/importers => importer/spec}/myki-csv-importer.spec.ts (99%) rename libs/{common/spec/importers => importer/spec}/nordpass-csv-importer.spec.ts (97%) rename libs/{common/spec/importers => importer/spec}/onepassword-1pif-importer.spec.ts (97%) rename libs/{common/spec/importers => importer/spec}/onepassword-1pux-importer.spec.ts (95%) rename libs/{common/spec/importers => importer/spec}/onepassword-mac-csv-importer.spec.ts (90%) rename libs/{common/spec/importers => importer/spec}/onepassword-win-csv-importer.spec.ts (93%) rename libs/{common/spec/importers => importer/spec}/passky-json-importer.spec.ts (88%) rename libs/{common/spec/importers => importer/spec}/psono-json-importer.spec.ts (97%) rename libs/{common/spec/importers => importer/spec}/safari-csv-importer.spec.ts (94%) rename libs/{common/spec/importers => importer/spec}/test-data/bitwarden-json/empty.json.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/bitwarden-json/password-protected.json.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/chrome-csv/android-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/chrome-csv/simple-password-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/credentials.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/id.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/multiple-personal-info.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/payments.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/personal-info.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/dashlane-csv/securenotes.csv.ts (100%) rename libs/{common/spec/importers/enpass/test-data/json => importer/spec/test-data/enpass-json}/credit-card.ts (98%) rename libs/{common/spec/importers/enpass/test-data/json => importer/spec/test-data/enpass-json}/folders.ts (91%) rename libs/{common/spec/importers/enpass/test-data/json => importer/spec/test-data/enpass-json}/login-android-url.ts (95%) rename libs/{common/spec/importers/enpass/test-data/json => importer/spec/test-data/enpass-json}/login.ts (97%) rename libs/{common/spec/importers/enpass/test-data/json => importer/spec/test-data/enpass-json}/note.ts (86%) rename libs/{common/spec/importers => importer/spec}/test-data/firefox-csv/firefox-accounts-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/firefox-csv/simple-password-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec/test-data/keepass2-xml}/keepass2-xml-importer-testdata.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/keeper-csv/testdata.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/keeper-json/testdata.json.ts (95%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-account.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-credit-card.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-id-card.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-identity.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-note.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/myki-csv/user-twofa.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/nordpass-csv/nordpass.card.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/nordpass-csv/nordpass.identity.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/nordpass-csv/nordpass.login.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/nordpass-csv/nordpass.secure-note.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/api-credentials.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/bank-account.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/credit-card.ts (99%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/database.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/drivers-license.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/email-account.ts (99%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/email-field-on-identity.ts (95%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts (96%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/email-field.ts (96%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/identity-data.ts (99%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/login-data.ts (97%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/medical-record.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/membership.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/onepux_example.ts (96%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/outdoor-license.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/passport.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/password.ts (93%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/rewards-program.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/sanitized-export.ts (99%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/secure-note.ts (92%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/server.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/software-license.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/ssn.ts (96%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-1pux/wireless-router.ts (98%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/credit-card.mac.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/credit-card.windows.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/identity.mac.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/identity.windows.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/multiple-items.mac.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/onepassword-csv/multiple-items.windows.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/passky-json/passky-encrypted.json.ts (84%) rename libs/{common/spec/importers => importer/spec}/test-data/passky-json/passky-unencrypted.json.ts (72%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/application-passwords.ts (86%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/bookmark.json.ts (86%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/empty-folders.ts (60%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/environment-variables.ts (87%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/folders.ts (95%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/gpg.ts (99%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/notes.ts (81%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/totp.ts (84%) rename libs/{common/spec/importers => importer/spec}/test-data/psono-json/website-logins.ts (89%) rename libs/{common/spec/importers => importer/spec}/test-data/safari-csv/old-simple-password-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/safari-csv/simple-password-data.csv.ts (100%) rename libs/{common/spec/importers => importer/spec}/test-data/safeincloud/test-data.xml.ts (100%) rename libs/{common => importer}/src/importers/ascendo-csv-importer.ts (96%) rename libs/{common/src/importers => importer/src/importers/avast}/avast-csv-importer.ts (83%) rename libs/{common/src/importers => importer/src/importers/avast}/avast-json-importer.ts (88%) create mode 100644 libs/importer/src/importers/avast/index.ts rename libs/{common => importer}/src/importers/avira-csv-importer.ts (95%) rename libs/{common => importer}/src/importers/base-importer.ts (91%) rename libs/{common/src/importers => importer/src/importers/bitwarden}/bitwarden-csv-importer.ts (81%) rename libs/{common/src/importers => importer/src/importers/bitwarden}/bitwarden-json-importer.ts (89%) rename libs/{common/src/importers => importer/src/importers/bitwarden}/bitwarden-password-protected-importer.ts (79%) create mode 100644 libs/importer/src/importers/bitwarden/index.ts rename libs/{common => importer}/src/importers/blackberry-csv-importer.ts (94%) rename libs/{common => importer}/src/importers/blur-csv-importer.ts (95%) rename libs/{common => importer}/src/importers/buttercup-csv-importer.ts (96%) rename libs/{common => importer}/src/importers/chrome-csv-importer.ts (94%) rename libs/{common => importer}/src/importers/clipperz-html-importer.ts (98%) rename libs/{common => importer}/src/importers/codebook-csv-importer.ts (96%) rename libs/{common => importer}/src/importers/dashlane/dashlane-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/dashlane/dashlane-json-importer.ts (91%) create mode 100644 libs/importer/src/importers/dashlane/index.ts rename libs/{common => importer}/src/importers/dashlane/types/dashlane-csv-types.ts (100%) rename libs/{common => importer}/src/importers/encryptr-csv-importer.ts (91%) rename libs/{common => importer}/src/importers/enpass/enpass-csv-importer.ts (92%) rename libs/{common => importer}/src/importers/enpass/enpass-json-importer.ts (94%) create mode 100644 libs/importer/src/importers/enpass/index.ts rename libs/{common => importer}/src/importers/enpass/types/enpass-item-templates.ts (100%) rename libs/{common => importer}/src/importers/enpass/types/enpass-json-type.ts (100%) rename libs/{common => importer}/src/importers/firefox-csv-importer.ts (94%) rename libs/{common => importer}/src/importers/fsecure/fsecure-fsk-importer.spec.ts (96%) rename libs/{common => importer}/src/importers/fsecure/fsecure-fsk-importer.ts (89%) rename libs/{common => importer}/src/importers/fsecure/fsecure-fsk-types.ts (100%) rename libs/{common => importer}/src/importers/fsecure/fsk-test-data.ts (100%) rename libs/{common => importer}/src/importers/gnome-json-importer.ts (97%) rename libs/{common => importer}/src/importers/importer.ts (62%) create mode 100644 libs/importer/src/importers/index.ts rename libs/{common => importer}/src/importers/kaspersky-txt-importer.ts (98%) rename libs/{common => importer}/src/importers/keepass2-xml-importer.ts (95%) rename libs/{common => importer}/src/importers/keepassx-csv-importer.ts (95%) create mode 100644 libs/importer/src/importers/keeper/index.ts rename libs/{common => importer}/src/importers/keeper/keeper-csv-importer.ts (95%) rename libs/{common => importer}/src/importers/keeper/keeper-json-importer.ts (96%) rename libs/{common => importer}/src/importers/keeper/types/keeper-json-types.ts (100%) rename libs/{common => importer}/src/importers/lastpass-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/logmeonce-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/meldium-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/msecure-csv-importer.ts (86%) rename libs/{common => importer}/src/importers/myki-csv-importer.ts (91%) rename libs/{common => importer}/src/importers/nordpass-csv-importer.ts (91%) rename libs/{common => importer}/src/importers/onepassword/cipher-import-context.ts (72%) create mode 100644 libs/importer/src/importers/onepassword/index.ts rename libs/{common => importer}/src/importers/onepassword/onepassword-1pif-importer.ts (93%) rename libs/{common => importer}/src/importers/onepassword/onepassword-1pux-importer.ts (95%) rename libs/{common => importer}/src/importers/onepassword/onepassword-csv-importer.ts (97%) rename libs/{common => importer}/src/importers/onepassword/onepassword-mac-csv-importer.ts (73%) rename libs/{common => importer}/src/importers/onepassword/onepassword-win-csv-importer.ts (84%) rename libs/{common => importer}/src/importers/onepassword/types/onepassword-1pux-importer-types.ts (100%) rename libs/{common => importer}/src/importers/padlock-csv-importer.ts (94%) rename libs/{common => importer}/src/importers/passkeep-csv-importer.ts (95%) rename libs/{common => importer}/src/importers/passky/passky-json-importer.ts (95%) rename libs/{common => importer}/src/importers/passky/passky-json-types.ts (100%) rename libs/{common => importer}/src/importers/passman-json-importer.ts (96%) rename libs/{common => importer}/src/importers/passpack-csv-importer.ts (95%) rename libs/{common => importer}/src/importers/passwordagent-csv-importer.ts (96%) rename libs/{common => importer}/src/importers/passwordboss-json-importer.ts (93%) rename libs/{common => importer}/src/importers/passworddragon-xml-importer.ts (97%) rename libs/{common => importer}/src/importers/passwordsafe-xml-importer.ts (97%) rename libs/{common => importer}/src/importers/passwordwallet-txt-importer.ts (95%) rename libs/{common => importer}/src/importers/psono/psono-json-importer.ts (94%) rename libs/{common => importer}/src/importers/psono/psono-json-types.ts (100%) rename libs/{common => importer}/src/importers/remembear-csv-importer.ts (92%) rename libs/{common => importer}/src/importers/roboform-csv-importer.ts (97%) rename libs/{common => importer}/src/importers/safari-csv-importer.ts (94%) rename libs/{common => importer}/src/importers/safeincloud-xml-importer.ts (88%) rename libs/{common => importer}/src/importers/saferpass-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/securesafe-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/splashid-csv-importer.ts (92%) rename libs/{common => importer}/src/importers/stickypassword-xml-importer.ts (97%) rename libs/{common => importer}/src/importers/truekey-csv-importer.ts (88%) rename libs/{common => importer}/src/importers/upm-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/yoti-csv-importer.ts (93%) rename libs/{common => importer}/src/importers/zohovault-csv-importer.ts (94%) create mode 100644 libs/importer/src/index.ts rename libs/{common/src/importers => importer/src/models}/import-error.ts (100%) rename libs/{common/src/enums/importOptions.ts => importer/src/models/import-options.ts} (100%) rename libs/{common/src/models/domain => importer/src/models}/import-result.ts (54%) rename libs/{common/src/abstractions/import => importer/src/services}/import-api.service.abstraction.ts (54%) rename libs/{common/src/services/import => importer/src/services}/import-api.service.ts (61%) rename libs/{common/src/abstractions/import => importer/src/services}/import.service.abstraction.ts (64%) rename libs/{common/spec => importer/src}/services/import.service.spec.ts (86%) rename libs/{common/src/services/import => importer/src/services}/import.service.ts (62%) create mode 100644 libs/importer/tsconfig.json create mode 100644 libs/importer/tsconfig.spec.json diff --git a/.eslintrc.json b/.eslintrc.json index 8bbf78df51c9..39f292e53067 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -98,6 +98,10 @@ { "target": "./libs/common/**/*", "from": "./libs/node/**/*" + }, + { + "target": "./libs/common/**/*", + "from": "./libs/importer/**/*" } ] } @@ -150,6 +154,12 @@ "rules": { "no-restricted-imports": ["error", { "patterns": ["@bitwarden/node/*", "src/**/*"] }] } + }, + { + "files": ["libs/importer/src/**/*.ts"], + "rules": { + "no-restricted-imports": ["error", { "patterns": ["@bitwarden/importer/*", "src/**/*"] }] + } } ] } diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index 4206b39079ce..798fced938a2 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -26,6 +26,7 @@ apps/desktop/src/app/tools @bitwarden/team-tools-dev apps/web/src/app/tools @bitwarden/team-tools-dev libs/angular/src/tools @bitwarden/team-tools-dev libs/common/src/tools @bitwarden/team-tools-dev +libs/importer @bitwarden/team-tools-dev ## Vault team files ## apps/browser/src/autofill @bitwarden/team-vault-dev diff --git a/.github/whitelist-capital-letters.txt b/.github/whitelist-capital-letters.txt index 221efe543863..5c0c56b2891b 100644 --- a/.github/whitelist-capital-letters.txt +++ b/.github/whitelist-capital-letters.txt @@ -47,7 +47,6 @@ ./libs/common/src/enums/encryptedExportType.ts ./libs/common/src/enums/linkedIdType.ts ./libs/common/src/enums/sendType.ts -./libs/common/src/enums/importOptions.ts ./libs/common/src/enums/encryptionType.ts ./libs/common/src/enums/htmlStorageLocation.ts ./libs/common/src/enums/notificationType.ts diff --git a/apps/cli/src/bw.ts b/apps/cli/src/bw.ts index efc6686014aa..314711ee943d 100644 --- a/apps/cli/src/bw.ts +++ b/apps/cli/src/bw.ts @@ -4,7 +4,6 @@ import * as path from "path"; import * as program from "commander"; import * as jsdom from "jsdom"; -import { ImportApiServiceAbstraction } from "@bitwarden/common/abstractions/import/import-api.service.abstraction"; import { OrganizationUserService } from "@bitwarden/common/abstractions/organization-user/organization-user.service"; import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction"; import { CollectionService } from "@bitwarden/common/admin-console/services/collection.service"; @@ -33,8 +32,6 @@ import { EncryptServiceImplementation } from "@bitwarden/common/services/cryptog import { EnvironmentService } from "@bitwarden/common/services/environment.service"; import { ExportService } from "@bitwarden/common/services/export.service"; import { FileUploadService } from "@bitwarden/common/services/fileUpload.service"; -import { ImportApiService } from "@bitwarden/common/services/import/import-api.service"; -import { ImportService } from "@bitwarden/common/services/import/import.service"; import { MemoryStorageService } from "@bitwarden/common/services/memoryStorage.service"; import { NoopMessagingService } from "@bitwarden/common/services/noopMessaging.service"; import { OrganizationUserServiceImplementation } from "@bitwarden/common/services/organization-user/organization-user.service.implementation"; @@ -56,6 +53,12 @@ import { FolderApiService } from "@bitwarden/common/vault/services/folder/folder import { FolderService } from "@bitwarden/common/vault/services/folder/folder.service"; import { SyncNotifierService } from "@bitwarden/common/vault/services/sync/sync-notifier.service"; import { SyncService } from "@bitwarden/common/vault/services/sync/sync.service"; +import { + ImportApiService, + ImportApiServiceAbstraction, + ImportService, + ImportServiceAbstraction, +} from "@bitwarden/importer"; import { NodeCryptoFunctionService } from "@bitwarden/node/services/node-crypto-function.service"; import { Program } from "./program"; @@ -98,7 +101,7 @@ export class Main { totpService: TotpService; containerService: ContainerService; auditService: AuditService; - importService: ImportService; + importService: ImportServiceAbstraction; importApiService: ImportApiServiceAbstraction; exportService: ExportService; searchService: SearchService; diff --git a/apps/cli/src/commands/import.command.ts b/apps/cli/src/tools/import.command.ts similarity index 93% rename from apps/cli/src/commands/import.command.ts rename to apps/cli/src/tools/import.command.ts index 679208614302..948077ff0e24 100644 --- a/apps/cli/src/commands/import.command.ts +++ b/apps/cli/src/tools/import.command.ts @@ -1,10 +1,8 @@ import * as program from "commander"; import * as inquirer from "inquirer"; -import { ImportService } from "@bitwarden/common/abstractions/import/import.service.abstraction"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; -import { ImportType } from "@bitwarden/common/enums/importOptions"; -import { Importer } from "@bitwarden/common/importers/importer"; +import { ImportServiceAbstraction, Importer, ImportType } from "@bitwarden/importer"; import { Response } from "../models/response"; import { MessageResponse } from "../models/response/message.response"; @@ -12,7 +10,7 @@ import { CliUtils } from "../utils"; export class ImportCommand { constructor( - private importService: ImportService, + private importService: ImportServiceAbstraction, private organizationService: OrganizationService ) {} diff --git a/apps/cli/src/vault.program.ts b/apps/cli/src/vault.program.ts index cf1b11211283..307d3b552ff0 100644 --- a/apps/cli/src/vault.program.ts +++ b/apps/cli/src/vault.program.ts @@ -6,11 +6,11 @@ import { Main } from "./bw"; import { EditCommand } from "./commands/edit.command"; import { ExportCommand } from "./commands/export.command"; import { GetCommand } from "./commands/get.command"; -import { ImportCommand } from "./commands/import.command"; import { ListCommand } from "./commands/list.command"; import { RestoreCommand } from "./commands/restore.command"; import { Response } from "./models/response"; import { Program } from "./program"; +import { ImportCommand } from "./tools/import.command"; import { CliUtils } from "./utils"; import { CreateCommand } from "./vault/create.command"; import { DeleteCommand } from "./vault/delete.command"; diff --git a/apps/cli/tsconfig.json b/apps/cli/tsconfig.json index 845c6b5afcf8..2517566d1daa 100644 --- a/apps/cli/tsconfig.json +++ b/apps/cli/tsconfig.json @@ -14,6 +14,7 @@ "paths": { "@bitwarden/common/spec/*": ["../../libs/common/spec/*"], "@bitwarden/common/*": ["../../libs/common/src/*"], + "@bitwarden/importer": ["../../libs/importer/src"], "@bitwarden/node/*": ["../../libs/node/src/*"] } }, diff --git a/apps/web/src/app/admin-console/organizations/tools/import-export/org-import-export.module.ts b/apps/web/src/app/admin-console/organizations/tools/import-export/org-import-export.module.ts index c09129402076..6b5ad81511e1 100644 --- a/apps/web/src/app/admin-console/organizations/tools/import-export/org-import-export.module.ts +++ b/apps/web/src/app/admin-console/organizations/tools/import-export/org-import-export.module.ts @@ -3,13 +3,15 @@ import { NgModule } from "@angular/core"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { ImportApiServiceAbstraction } from "@bitwarden/common/abstractions/import/import-api.service.abstraction"; -import { ImportService as ImportServiceAbstraction } from "@bitwarden/common/abstractions/import/import.service.abstraction"; import { CollectionService } from "@bitwarden/common/admin-console/abstractions/collection.service"; -import { ImportApiService } from "@bitwarden/common/services/import/import-api.service"; -import { ImportService } from "@bitwarden/common/services/import/import.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; +import { + ImportService, + ImportServiceAbstraction, + ImportApiService, + ImportApiServiceAbstraction, +} from "@bitwarden/importer"; import { LooseComponentsModule, SharedModule } from "../../../../shared"; diff --git a/apps/web/src/app/admin-console/organizations/tools/import-export/org-import.component.ts b/apps/web/src/app/admin-console/organizations/tools/import-export/org-import.component.ts index 7a73d1b61309..14b24eec61e6 100644 --- a/apps/web/src/app/admin-console/organizations/tools/import-export/org-import.component.ts +++ b/apps/web/src/app/admin-console/organizations/tools/import-export/org-import.component.ts @@ -3,12 +3,12 @@ import { ActivatedRoute, Router } from "@angular/router"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { ImportService } from "@bitwarden/common/abstractions/import/import.service.abstraction"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; +import { ImportServiceAbstraction } from "@bitwarden/importer"; import { ImportComponent } from "../../../../tools/import-export/import.component"; @@ -22,7 +22,7 @@ export class OrganizationImportComponent extends ImportComponent { constructor( i18nService: I18nService, - importService: ImportService, + importService: ImportServiceAbstraction, router: Router, private route: ActivatedRoute, platformUtilsService: PlatformUtilsService, diff --git a/apps/web/src/app/tools/import-export/import-export.module.ts b/apps/web/src/app/tools/import-export/import-export.module.ts index 67d9dbecf237..08200baa31f6 100644 --- a/apps/web/src/app/tools/import-export/import-export.module.ts +++ b/apps/web/src/app/tools/import-export/import-export.module.ts @@ -3,13 +3,15 @@ import { NgModule } from "@angular/core"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { ImportApiServiceAbstraction } from "@bitwarden/common/abstractions/import/import-api.service.abstraction"; -import { ImportService as ImportServiceAbstraction } from "@bitwarden/common/abstractions/import/import.service.abstraction"; import { CollectionService } from "@bitwarden/common/admin-console/abstractions/collection.service"; -import { ImportApiService } from "@bitwarden/common/services/import/import-api.service"; -import { ImportService } from "@bitwarden/common/services/import/import.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; +import { + ImportService, + ImportServiceAbstraction, + ImportApiService, + ImportApiServiceAbstraction, +} from "@bitwarden/importer"; import { LooseComponentsModule, SharedModule } from "../../shared"; diff --git a/apps/web/src/app/tools/import-export/import.component.ts b/apps/web/src/app/tools/import-export/import.component.ts index 14690df2db0e..a0354a5ab777 100644 --- a/apps/web/src/app/tools/import-export/import.component.ts +++ b/apps/web/src/app/tools/import-export/import.component.ts @@ -6,14 +6,17 @@ import Swal, { SweetAlertIcon } from "sweetalert2"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { ImportService } from "@bitwarden/common/abstractions/import/import.service.abstraction"; import { LogService } from "@bitwarden/common/abstractions/log.service"; import { PlatformUtilsService } from "@bitwarden/common/abstractions/platformUtils.service"; import { PolicyService } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; import { PolicyType } from "@bitwarden/common/admin-console/enums/policy-type"; -import { ImportOption, ImportType } from "@bitwarden/common/enums/importOptions"; -import { ImportError } from "@bitwarden/common/importers/import-error"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; +import { + ImportOption, + ImportType, + ImportError, + ImportServiceAbstraction, +} from "@bitwarden/importer"; import { FilePasswordPromptComponent } from "./file-password-prompt.component"; @@ -36,7 +39,7 @@ export class ImportComponent implements OnInit { constructor( protected i18nService: I18nService, - protected importService: ImportService, + protected importService: ImportServiceAbstraction, protected router: Router, protected platformUtilsService: PlatformUtilsService, protected policyService: PolicyService, diff --git a/apps/web/tsconfig.json b/apps/web/tsconfig.json index 34d579850503..d60b55efe377 100644 --- a/apps/web/tsconfig.json +++ b/apps/web/tsconfig.json @@ -8,7 +8,8 @@ "@bitwarden/web-vault/*": ["src/*"], "@bitwarden/common/*": ["../../libs/common/src/*"], "@bitwarden/angular/*": ["../../libs/angular/src/*"], - "@bitwarden/components": ["../../libs/components/src"] + "@bitwarden/components": ["../../libs/components/src"], + "@bitwarden/importer": ["../../libs/importer/src"] } }, "angularCompilerOptions": { diff --git a/jest.config.js b/jest.config.js index ae9de057fb61..2016478f00e0 100644 --- a/jest.config.js +++ b/jest.config.js @@ -21,6 +21,7 @@ module.exports = { "/libs/angular/jest.config.js", "/libs/common/jest.config.js", "/libs/components/jest.config.js", + "/libs/importer/jest.config.js", "/libs/node/jest.config.js", ], diff --git a/libs/importer/jest.config.js b/libs/importer/jest.config.js new file mode 100644 index 000000000000..2eeeefad6250 --- /dev/null +++ b/libs/importer/jest.config.js @@ -0,0 +1,14 @@ +const { pathsToModuleNameMapper } = require("ts-jest"); + +const { compilerOptions } = require("../shared/tsconfig.libs"); + +const sharedConfig = require("../shared/jest.config.base"); + +module.exports = { + ...sharedConfig, + preset: "ts-jest", + testEnvironment: "jsdom", + moduleNameMapper: pathsToModuleNameMapper(compilerOptions?.paths || {}, { + prefix: "/", + }), +}; diff --git a/libs/importer/package.json b/libs/importer/package.json new file mode 100644 index 000000000000..7817996b5a89 --- /dev/null +++ b/libs/importer/package.json @@ -0,0 +1,23 @@ +{ + "name": "@bitwarden/importer", + "version": "0.0.0", + "description": "Home for all Bitwarden importers.", + "keywords": [ + "bitwarden" + ], + "author": "Bitwarden Inc.", + "homepage": "https://bitwarden.com", + "repository": { + "type": "git", + "url": "https://github.com/bitwarden/clients" + }, + "license": "GPL-3.0", + "scripts": { + "clean": "rimraf dist/**/*", + "build": "npm run clean && tsc", + "build:watch": "npm run clean && tsc -watch" + }, + "dependencies": { + "@bitwarden/common": "file:../common" + } +} diff --git a/libs/common/spec/importers/bitwarden-json-importer.spec.ts b/libs/importer/spec/bitwarden-json-importer.spec.ts similarity index 92% rename from libs/common/spec/importers/bitwarden-json-importer.spec.ts rename to libs/importer/spec/bitwarden-json-importer.spec.ts index 8f2fbc5b1b76..19384ed5c67a 100644 --- a/libs/common/spec/importers/bitwarden-json-importer.spec.ts +++ b/libs/importer/spec/bitwarden-json-importer.spec.ts @@ -3,7 +3,8 @@ import { Substitute, SubstituteOf } from "@fluffy-spoon/substitute"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { BitwardenJsonImporter } from "@bitwarden/common/importers/bitwarden-json-importer"; + +import { BitwardenJsonImporter } from "../src/importers"; import { data as passwordProtectedData } from "./test-data/bitwarden-json/password-protected.json"; diff --git a/libs/common/spec/importers/bitwarden-password-protected-importer.spec.ts b/libs/importer/spec/bitwarden-password-protected-importer.spec.ts similarity index 95% rename from libs/common/spec/importers/bitwarden-password-protected-importer.spec.ts rename to libs/importer/spec/bitwarden-password-protected-importer.spec.ts index 0b1c3b7b2e2f..2dc12bdb84e3 100644 --- a/libs/common/spec/importers/bitwarden-password-protected-importer.spec.ts +++ b/libs/importer/spec/bitwarden-password-protected-importer.spec.ts @@ -4,9 +4,10 @@ import { Substitute, Arg, SubstituteOf } from "@fluffy-spoon/substitute"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; import { KdfType } from "@bitwarden/common/enums/kdfType"; -import { BitwardenPasswordProtectedImporter } from "@bitwarden/common/importers/bitwarden-password-protected-importer"; import { Utils } from "@bitwarden/common/misc/utils"; -import { ImportResult } from "@bitwarden/common/models/domain/import-result"; + +import { BitwardenPasswordProtectedImporter } from "../src/importers"; +import { ImportResult } from "../src/models/import-result"; import { data as emptyDecryptedData } from "./test-data/bitwarden-json/empty.json"; diff --git a/libs/common/spec/importers/chrome-csv-importer.spec.ts b/libs/importer/spec/chrome-csv-importer.spec.ts similarity index 94% rename from libs/common/spec/importers/chrome-csv-importer.spec.ts rename to libs/importer/spec/chrome-csv-importer.spec.ts index 746c573c23f2..dcb39b657d59 100644 --- a/libs/common/spec/importers/chrome-csv-importer.spec.ts +++ b/libs/importer/spec/chrome-csv-importer.spec.ts @@ -1,8 +1,9 @@ -import { ChromeCsvImporter as Importer } from "@bitwarden/common/importers/chrome-csv-importer"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { LoginUriView } from "@bitwarden/common/vault/models/view/login-uri.view"; import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { ChromeCsvImporter } from "../src/importers"; + import { data as androidData } from "./test-data/chrome-csv/android-data.csv"; import { data as simplePasswordData } from "./test-data/chrome-csv/simple-password-data.csv"; @@ -54,7 +55,7 @@ const CipherData = [ describe("Chrome CSV Importer", () => { CipherData.forEach((data) => { it(data.title, async () => { - const importer = new Importer(); + const importer = new ChromeCsvImporter(); const result = await importer.parse(data.csv); expect(result != null).toBe(true); expect(result.ciphers.length).toBeGreaterThan(0); diff --git a/libs/common/spec/importers/dashlane-csv-importer.spec.ts b/libs/importer/spec/dashlane-csv-importer.spec.ts similarity index 98% rename from libs/common/spec/importers/dashlane-csv-importer.spec.ts rename to libs/importer/spec/dashlane-csv-importer.spec.ts index 80a357904112..bd957eaa87b9 100644 --- a/libs/common/spec/importers/dashlane-csv-importer.spec.ts +++ b/libs/importer/spec/dashlane-csv-importer.spec.ts @@ -1,6 +1,7 @@ -import { DashlaneCsvImporter as Importer } from "@bitwarden/common/importers/dashlane/dashlane-csv-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { DashlaneCsvImporter } from "../src/importers"; + import { credentialsData } from "./test-data/dashlane-csv/credentials.csv"; import { identityData } from "./test-data/dashlane-csv/id.csv"; import { multiplePersonalInfoData } from "./test-data/dashlane-csv/multiple-personal-info.csv"; @@ -9,9 +10,9 @@ import { personalInfoData } from "./test-data/dashlane-csv/personal-info.csv"; import { secureNoteData } from "./test-data/dashlane-csv/securenotes.csv"; describe("Dashlane CSV Importer", () => { - let importer: Importer; + let importer: DashlaneCsvImporter; beforeEach(() => { - importer = new Importer(); + importer = new DashlaneCsvImporter(); }); it("should parse login records", async () => { diff --git a/libs/common/spec/importers/enpass/enpass-json-importer.spec.ts b/libs/importer/spec/enpass-json-importer.spec.ts similarity index 89% rename from libs/common/spec/importers/enpass/enpass-json-importer.spec.ts rename to libs/importer/spec/enpass-json-importer.spec.ts index bbbc2f7726fa..f23ace33e2e1 100644 --- a/libs/common/spec/importers/enpass/enpass-json-importer.spec.ts +++ b/libs/importer/spec/enpass-json-importer.spec.ts @@ -1,12 +1,13 @@ -import { EnpassJsonImporter as Importer } from "@bitwarden/common/importers/enpass/enpass-json-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; -import { creditCard } from "./test-data/json/credit-card"; -import { folders } from "./test-data/json/folders"; -import { login } from "./test-data/json/login"; -import { loginAndroidUrl } from "./test-data/json/login-android-url"; -import { note } from "./test-data/json/note"; +import { EnpassJsonImporter } from "../src/importers"; + +import { creditCard } from "./test-data/enpass-json/credit-card"; +import { folders } from "./test-data/enpass-json/folders"; +import { login } from "./test-data/enpass-json/login"; +import { loginAndroidUrl } from "./test-data/enpass-json/login-android-url"; +import { note } from "./test-data/enpass-json/note"; function validateCustomField(fields: FieldView[], fieldName: string, expectedValue: any) { expect(fields).toBeDefined(); @@ -18,7 +19,7 @@ function validateCustomField(fields: FieldView[], fieldName: string, expectedVal describe("Enpass JSON Importer", () => { it("should create folders/ nested folder and assignment", async () => { - const importer = new Importer(); + const importer = new EnpassJsonImporter(); const testDataString = JSON.stringify(folders); const result = await importer.parse(testDataString); expect(result != null).toBe(true); @@ -37,7 +38,7 @@ describe("Enpass JSON Importer", () => { }); it("should parse login items", async () => { - const importer = new Importer(); + const importer = new EnpassJsonImporter(); const testDataString = JSON.stringify(login); const result = await importer.parse(testDataString); expect(result != null).toBe(true); @@ -64,7 +65,7 @@ describe("Enpass JSON Importer", () => { }); it("should parse login items with Android Autofill information", async () => { - const importer = new Importer(); + const importer = new EnpassJsonImporter(); const testDataString = JSON.stringify(loginAndroidUrl); const result = await importer.parse(testDataString); expect(result != null).toBe(true); @@ -82,7 +83,7 @@ describe("Enpass JSON Importer", () => { }); it("should parse credit card items", async () => { - const importer = new Importer(); + const importer = new EnpassJsonImporter(); const testDataString = JSON.stringify(creditCard); const result = await importer.parse(testDataString); expect(result != null).toBe(true); @@ -119,7 +120,7 @@ describe("Enpass JSON Importer", () => { }); it("should parse notes", async () => { - const importer = new Importer(); + const importer = new EnpassJsonImporter(); const testDataString = JSON.stringify(note); const result = await importer.parse(testDataString); expect(result != null).toBe(true); diff --git a/libs/common/spec/importers/firefox-csv-importer.spec.ts b/libs/importer/spec/firefox-csv-importer.spec.ts similarity index 93% rename from libs/common/spec/importers/firefox-csv-importer.spec.ts rename to libs/importer/spec/firefox-csv-importer.spec.ts index 0dbadd093f92..0add655a6849 100644 --- a/libs/common/spec/importers/firefox-csv-importer.spec.ts +++ b/libs/importer/spec/firefox-csv-importer.spec.ts @@ -1,8 +1,9 @@ -import { FirefoxCsvImporter as Importer } from "@bitwarden/common/importers/firefox-csv-importer"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { LoginUriView } from "@bitwarden/common/vault/models/view/login-uri.view"; import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { FirefoxCsvImporter } from "../src/importers"; + import { data as firefoxAccountsData } from "./test-data/firefox-csv/firefox-accounts-data.csv"; import { data as simplePasswordData } from "./test-data/firefox-csv/simple-password-data.csv"; @@ -54,7 +55,7 @@ const CipherData = [ describe("Firefox CSV Importer", () => { CipherData.forEach((data) => { it(data.title, async () => { - const importer = new Importer(); + const importer = new FirefoxCsvImporter(); const result = await importer.parse(data.csv); expect(result != null).toBe(true); expect(result.ciphers.length).toBeGreaterThan(0); diff --git a/libs/common/spec/importers/keepass2-xml-importer.spec.ts b/libs/importer/spec/keepass2-xml-importer.spec.ts similarity index 74% rename from libs/common/spec/importers/keepass2-xml-importer.spec.ts rename to libs/importer/spec/keepass2-xml-importer.spec.ts index d335a8aca744..4f02bf9260b0 100644 --- a/libs/common/spec/importers/keepass2-xml-importer.spec.ts +++ b/libs/importer/spec/keepass2-xml-importer.spec.ts @@ -1,17 +1,22 @@ -import { KeePass2XmlImporter as Importer } from "@bitwarden/common/importers/keepass2-xml-importer"; import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; -import { TestData, TestData1, TestData2 } from "./keepass2-xml-importer-testdata"; +import { KeePass2XmlImporter } from "../src/importers"; + +import { + TestData, + TestData1, + TestData2, +} from "./test-data/keepass2-xml/keepass2-xml-importer-testdata"; describe("KeePass2 Xml Importer", () => { it("should parse XML data", async () => { - const importer = new Importer(); + const importer = new KeePass2XmlImporter(); const result = await importer.parse(TestData); expect(result != null).toBe(true); }); it("parse XML should contains folders", async () => { - const importer = new Importer(); + const importer = new KeePass2XmlImporter(); const folder = new FolderView(); folder.name = "Folder2"; const actual = [folder]; @@ -21,7 +26,7 @@ describe("KeePass2 Xml Importer", () => { }); it("parse XML should contains login details", async () => { - const importer = new Importer(); + const importer = new KeePass2XmlImporter(); const result = await importer.parse(TestData); expect(result.ciphers[0].login.uri != null).toBe(true); expect(result.ciphers[0].login.username != null).toBe(true); @@ -29,13 +34,13 @@ describe("KeePass2 Xml Importer", () => { }); it("should return error with missing root tag", async () => { - const importer = new Importer(); + const importer = new KeePass2XmlImporter(); const result = await importer.parse(TestData1); expect(result.errorMessage).toBe("Missing `KeePassFile > Root` node."); }); it("should return error with missing KeePassFile tag", async () => { - const importer = new Importer(); + const importer = new KeePass2XmlImporter(); const result = await importer.parse(TestData2); expect(result.success).toBe(false); }); diff --git a/libs/common/spec/importers/keeper-csv-importer.spec.ts b/libs/importer/spec/keeper-csv-importer.spec.ts similarity index 96% rename from libs/common/spec/importers/keeper-csv-importer.spec.ts rename to libs/importer/spec/keeper-csv-importer.spec.ts index 7317b8177a75..e3ca578de597 100644 --- a/libs/common/spec/importers/keeper-csv-importer.spec.ts +++ b/libs/importer/spec/keeper-csv-importer.spec.ts @@ -1,12 +1,13 @@ -import { KeeperCsvImporter as Importer } from "@bitwarden/common/importers/keeper/keeper-csv-importer"; import { Utils } from "@bitwarden/common/misc/utils"; +import { KeeperCsvImporter } from "../src/importers"; + import { testData as TestData } from "./test-data/keeper-csv/testdata.csv"; describe("Keeper CSV Importer", () => { - let importer: Importer; + let importer: KeeperCsvImporter; beforeEach(() => { - importer = new Importer(); + importer = new KeeperCsvImporter(); }); it("should parse login data", async () => { diff --git a/libs/common/spec/importers/keeper-json-importer.spec.ts b/libs/importer/spec/keeper-json-importer.spec.ts similarity index 96% rename from libs/common/spec/importers/keeper-json-importer.spec.ts rename to libs/importer/spec/keeper-json-importer.spec.ts index b32497a95b10..2931de4ed039 100644 --- a/libs/common/spec/importers/keeper-json-importer.spec.ts +++ b/libs/importer/spec/keeper-json-importer.spec.ts @@ -1,14 +1,15 @@ -import { KeeperJsonImporter as Importer } from "@bitwarden/common/importers/keeper/keeper-json-importer"; import { Utils } from "@bitwarden/common/misc/utils"; +import { KeeperJsonImporter } from "../src/importers"; + import { testData as TestData } from "./test-data/keeper-json/testdata.json"; describe("Keeper Json Importer", () => { const testDataJson = JSON.stringify(TestData); - let importer: Importer; + let importer: KeeperJsonImporter; beforeEach(() => { - importer = new Importer(); + importer = new KeeperJsonImporter(); }); it("should parse login data", async () => { diff --git a/libs/common/spec/importers/lastpass-csv-importer.spec.ts b/libs/importer/spec/lastpass-csv-importer.spec.ts similarity index 95% rename from libs/common/spec/importers/lastpass-csv-importer.spec.ts rename to libs/importer/spec/lastpass-csv-importer.spec.ts index 36686aadc53d..4e11ba4d78ce 100644 --- a/libs/common/spec/importers/lastpass-csv-importer.spec.ts +++ b/libs/importer/spec/lastpass-csv-importer.spec.ts @@ -1,10 +1,11 @@ import { FieldType } from "@bitwarden/common/enums/fieldType"; -import { LastPassCsvImporter as Importer } from "@bitwarden/common/importers/lastpass-csv-importer"; -import { ImportResult } from "@bitwarden/common/models/domain/import-result"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { LastPassCsvImporter } from "../src/importers"; +import { ImportResult } from "../src/models/import-result"; + function baseExcept(result: ImportResult) { expect(result).not.toBeNull(); expect(result.success).toBe(true); @@ -170,7 +171,7 @@ Notes:",nomonth,,0`, describe("Lastpass CSV Importer", () => { CipherData.forEach((data) => { it(data.title, async () => { - const importer = new Importer(); + const importer = new LastPassCsvImporter(); const result = await importer.parse(data.csv); expect(result != null).toBe(true); expect(result.ciphers.length).toBeGreaterThan(0); @@ -192,7 +193,7 @@ describe("Lastpass CSV Importer", () => { const input = `url,username,password,totp,extra,name,grouping,fav http://example.com,someUser,myPassword,Y64VEVMBTSXCYIWRSHRNDZW62MPGVU2G,super secure notes,example.com,,0`; - const importer = new Importer(); + const importer = new LastPassCsvImporter(); const result = await importer.parse(input); baseExcept(result); diff --git a/libs/common/spec/importers/myki-csv-importer.spec.ts b/libs/importer/spec/myki-csv-importer.spec.ts similarity index 99% rename from libs/common/spec/importers/myki-csv-importer.spec.ts rename to libs/importer/spec/myki-csv-importer.spec.ts index 6df40e71750d..b20d610d963c 100644 --- a/libs/common/spec/importers/myki-csv-importer.spec.ts +++ b/libs/importer/spec/myki-csv-importer.spec.ts @@ -1,7 +1,8 @@ -import { MykiCsvImporter as Importer } from "@bitwarden/common/importers/myki-csv-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { MykiCsvImporter } from "../src/importers"; + import { userAccountData } from "./test-data/myki-csv/user-account.csv"; import { userCreditCardData } from "./test-data/myki-csv/user-credit-card.csv"; import { userIdCardData } from "./test-data/myki-csv/user-id-card.csv"; @@ -432,9 +433,9 @@ function expectTourVisa(cipher: CipherView) { } describe("Myki CSV Importer", () => { - let importer: Importer; + let importer: MykiCsvImporter; beforeEach(() => { - importer = new Importer(); + importer = new MykiCsvImporter(); }); it("should parse userAccount records", async () => { diff --git a/libs/common/spec/importers/nordpass-csv-importer.spec.ts b/libs/importer/spec/nordpass-csv-importer.spec.ts similarity index 97% rename from libs/common/spec/importers/nordpass-csv-importer.spec.ts rename to libs/importer/spec/nordpass-csv-importer.spec.ts index 6a368c718010..d9b0e9dbf288 100644 --- a/libs/common/spec/importers/nordpass-csv-importer.spec.ts +++ b/libs/importer/spec/nordpass-csv-importer.spec.ts @@ -1,9 +1,10 @@ import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; -import { NordPassCsvImporter as Importer } from "@bitwarden/common/importers/nordpass-csv-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { NordPassCsvImporter } from "../src/importers"; + import { data as creditCardData } from "./test-data/nordpass-csv/nordpass.card.csv"; import { data as identityData } from "./test-data/nordpass-csv/nordpass.identity.csv"; import { data as loginData } from "./test-data/nordpass-csv/nordpass.login.csv"; @@ -108,9 +109,9 @@ function expectSecureNote(cipher: CipherView) { } describe("NordPass CSV Importer", () => { - let importer: Importer; + let importer: NordPassCsvImporter; beforeEach(() => { - importer = new Importer(); + importer = new NordPassCsvImporter(); }); it("should parse login records", async () => { diff --git a/libs/common/spec/importers/onepassword-1pif-importer.spec.ts b/libs/importer/spec/onepassword-1pif-importer.spec.ts similarity index 97% rename from libs/common/spec/importers/onepassword-1pif-importer.spec.ts rename to libs/importer/spec/onepassword-1pif-importer.spec.ts index 6ba2edde65ed..9d74cb900fbd 100644 --- a/libs/common/spec/importers/onepassword-1pif-importer.spec.ts +++ b/libs/importer/spec/onepassword-1pif-importer.spec.ts @@ -1,5 +1,6 @@ import { FieldType } from "@bitwarden/common/enums/fieldType"; -import { OnePassword1PifImporter as Importer } from "@bitwarden/common/importers/onepassword/onepassword-1pif-importer"; + +import { OnePassword1PifImporter } from "../src/importers"; const TestData: string = "***aaaaaaaa-bbbb-cccc-dddd-eeeeeeeeeeee***\n" + @@ -425,7 +426,7 @@ const IdentityTestData = JSON.stringify({ describe("1Password 1Pif Importer", () => { it("should parse data", async () => { - const importer = new Importer(); + const importer = new OnePassword1PifImporter(); const result = await importer.parse(TestData); expect(result != null).toBe(true); @@ -438,7 +439,7 @@ describe("1Password 1Pif Importer", () => { }); it('should create concealed field as "hidden" type', async () => { - const importer = new Importer(); + const importer = new OnePassword1PifImporter(); const result = await importer.parse(TestData); expect(result != null).toBe(true); @@ -456,7 +457,7 @@ describe("1Password 1Pif Importer", () => { }); it("should create identity records", async () => { - const importer = new Importer(); + const importer = new OnePassword1PifImporter(); const result = await importer.parse(IdentityTestData); expect(result != null).toBe(true); const cipher = result.ciphers.shift(); @@ -492,7 +493,7 @@ describe("1Password 1Pif Importer", () => { }); it("should create password history", async () => { - const importer = new Importer(); + const importer = new OnePassword1PifImporter(); const result = await importer.parse(TestData); const cipher = result.ciphers.shift(); @@ -503,7 +504,7 @@ describe("1Password 1Pif Importer", () => { }); it("should create password history from windows opvault 1pif format", async () => { - const importer = new Importer(); + const importer = new OnePassword1PifImporter(); const result = await importer.parse(WindowsOpVaultTestData); const cipher = result.ciphers.shift(); diff --git a/libs/common/spec/importers/onepassword-1pux-importer.spec.ts b/libs/importer/spec/onepassword-1pux-importer.spec.ts similarity index 95% rename from libs/common/spec/importers/onepassword-1pux-importer.spec.ts rename to libs/importer/spec/onepassword-1pux-importer.spec.ts index 0287f4134f91..75c58189f6fc 100644 --- a/libs/common/spec/importers/onepassword-1pux-importer.spec.ts +++ b/libs/importer/spec/onepassword-1pux-importer.spec.ts @@ -1,10 +1,11 @@ import { FieldType } from "@bitwarden/common/enums/fieldType"; import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; -import { OnePassword1PuxImporter as Importer } from "@bitwarden/common/importers/onepassword/onepassword-1pux-importer"; import { Utils } from "@bitwarden/common/misc/utils"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { OnePassword1PuxImporter } from "../src/importers"; + import { APICredentialsData } from "./test-data/onepassword-1pux/api-credentials"; import { BankAccountData } from "./test-data/onepassword-1pux/bank-account"; import { CreditCardData } from "./test-data/onepassword-1pux/credit-card"; @@ -47,7 +48,7 @@ describe("1Password 1Pux Importer", () => { const SanitizedExportJson = JSON.stringify(SanitizedExport); it("should parse login data", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(LoginDataJson); expect(result != null).toBe(true); @@ -70,7 +71,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse notes", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(OnePuxExampleFileJson); expect(result != null).toBe(true); @@ -79,7 +80,7 @@ describe("1Password 1Pux Importer", () => { }); it("should set favourite if favIndex equals 1", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(OnePuxExampleFileJson); expect(result != null).toBe(true); @@ -88,7 +89,7 @@ describe("1Password 1Pux Importer", () => { }); it("should handle custom boolean fields", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(LoginDataJson); expect(result != null).toBe(true); @@ -106,7 +107,7 @@ describe("1Password 1Pux Importer", () => { }); it("should add fields of type email as custom fields", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const EmailFieldDataJson = JSON.stringify(EmailFieldData); const result = await importer.parse(EmailFieldDataJson); expect(result != null).toBe(true); @@ -125,7 +126,7 @@ describe("1Password 1Pux Importer", () => { }); it('should create concealed field as "hidden" type', async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(OnePuxExampleFileJson); expect(result != null).toBe(true); @@ -143,7 +144,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create password history", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(OnePuxExampleFileJson); const cipher = result.ciphers.shift(); @@ -154,7 +155,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create credit card records", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(CreditCardDataJson); expect(result != null).toBe(true); const cipher = result.ciphers.shift(); @@ -186,7 +187,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create identity records", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(IdentityDataJson); expect(result != null).toBe(true); const cipher = result.ciphers.shift(); @@ -228,7 +229,7 @@ describe("1Password 1Pux Importer", () => { }); it("emails fields on identity types should be added to the identity email field", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const EmailFieldOnIdentityDataJson = JSON.stringify(EmailFieldOnIdentityData); const result = await importer.parse(EmailFieldOnIdentityDataJson); expect(result != null).toBe(true); @@ -246,7 +247,7 @@ describe("1Password 1Pux Importer", () => { }); it("emails fields on identity types should be added to custom fields if identity.email has been filled", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const EmailFieldOnIdentityPrefilledDataJson = JSON.stringify(EmailFieldOnIdentityPrefilledData); const result = await importer.parse(EmailFieldOnIdentityPrefilledDataJson); expect(result != null).toBe(true); @@ -268,7 +269,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 005 - Password (Legacy)", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(PasswordData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -282,7 +283,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 100 - SoftwareLicense", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(SoftwareLicenseData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -312,7 +313,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 101 - BankAccount", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(BankAccountData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -336,7 +337,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 102 - Database", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(DatabaseData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -361,7 +362,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 103 - Drivers license", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(DriversLicenseData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -389,7 +390,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 104 - Outdoor License", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(OutdoorLicenseData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -415,7 +416,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 105 - Membership", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(MembershipData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -440,7 +441,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 106 - Passport", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(PassportData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -467,7 +468,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 107 - RewardsProgram", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(RewardsProgramData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -493,7 +494,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 108 - SSN", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(SSNData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -508,7 +509,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 109 - WirelessRouter", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(WirelessRouterData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -531,7 +532,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 110 - Server", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(ServerData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -564,7 +565,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 111 - EmailAccount", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(EmailAccountData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -595,7 +596,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 112 - API Credentials", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(APICredentialsData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -617,7 +618,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create secure notes", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(SecureNoteDataJson); expect(result != null).toBe(true); const cipher = result.ciphers.shift(); @@ -630,7 +631,7 @@ describe("1Password 1Pux Importer", () => { }); it("should parse category 113 - Medical Record", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const jsonString = JSON.stringify(MedicalRecordData); const result = await importer.parse(jsonString); expect(result != null).toBe(true); @@ -652,7 +653,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create folders", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); const result = await importer.parse(SanitizedExportJson); expect(result != null).toBe(true); @@ -673,7 +674,7 @@ describe("1Password 1Pux Importer", () => { }); it("should create collections if part of an organization", async () => { - const importer = new Importer(); + const importer = new OnePassword1PuxImporter(); importer.organizationId = Utils.newGuid(); const result = await importer.parse(SanitizedExportJson); expect(result != null).toBe(true); diff --git a/libs/common/spec/importers/onepassword-mac-csv-importer.spec.ts b/libs/importer/spec/onepassword-mac-csv-importer.spec.ts similarity index 90% rename from libs/common/spec/importers/onepassword-mac-csv-importer.spec.ts rename to libs/importer/spec/onepassword-mac-csv-importer.spec.ts index 0b9ade266216..a865f1892f0b 100644 --- a/libs/common/spec/importers/onepassword-mac-csv-importer.spec.ts +++ b/libs/importer/spec/onepassword-mac-csv-importer.spec.ts @@ -1,7 +1,8 @@ -import { OnePasswordMacCsvImporter as Importer } from "@bitwarden/common/importers/onepassword/onepassword-mac-csv-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { OnePasswordMacCsvImporter } from "../src/importers"; + import { data as creditCardData } from "./test-data/onepassword-csv/credit-card.mac.csv"; import { data as identityData } from "./test-data/onepassword-csv/identity.mac.csv"; import { data as multiTypeData } from "./test-data/onepassword-csv/multiple-items.mac.csv"; @@ -40,7 +41,7 @@ function expectCreditCard(cipher: CipherView) { describe("1Password mac CSV Importer", () => { it("should parse identity records", async () => { - const importer = new Importer(); + const importer = new OnePasswordMacCsvImporter(); const result = await importer.parse(identityData); expect(result).not.toBeNull(); @@ -51,7 +52,7 @@ describe("1Password mac CSV Importer", () => { }); it("should parse credit card records", async () => { - const importer = new Importer(); + const importer = new OnePasswordMacCsvImporter(); const result = await importer.parse(creditCardData); expect(result).not.toBeNull(); @@ -62,7 +63,7 @@ describe("1Password mac CSV Importer", () => { }); it("should parse csv's with multiple record type", async () => { - const importer = new Importer(); + const importer = new OnePasswordMacCsvImporter(); const result = await importer.parse(multiTypeData); expect(result).not.toBeNull(); diff --git a/libs/common/spec/importers/onepassword-win-csv-importer.spec.ts b/libs/importer/spec/onepassword-win-csv-importer.spec.ts similarity index 93% rename from libs/common/spec/importers/onepassword-win-csv-importer.spec.ts rename to libs/importer/spec/onepassword-win-csv-importer.spec.ts index d5c40c2d13aa..ddab4df562e8 100644 --- a/libs/common/spec/importers/onepassword-win-csv-importer.spec.ts +++ b/libs/importer/spec/onepassword-win-csv-importer.spec.ts @@ -1,9 +1,10 @@ import { FieldType } from "@bitwarden/common/enums/fieldType"; -import { OnePasswordWinCsvImporter as Importer } from "@bitwarden/common/importers/onepassword/onepassword-win-csv-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { OnePasswordWinCsvImporter } from "../src/importers"; + import { data as creditCardData } from "./test-data/onepassword-csv/credit-card.windows.csv"; import { data as identityData } from "./test-data/onepassword-csv/identity.windows.csv"; import { data as multiTypeData } from "./test-data/onepassword-csv/multiple-items.windows.csv"; @@ -49,9 +50,9 @@ function expectCreditCard(cipher: CipherView) { } describe("1Password windows CSV Importer", () => { - let importer: Importer; + let importer: OnePasswordWinCsvImporter; beforeEach(() => { - importer = new Importer(); + importer = new OnePasswordWinCsvImporter(); }); it("should parse identity records", async () => { diff --git a/libs/common/spec/importers/passky-json-importer.spec.ts b/libs/importer/spec/passky-json-importer.spec.ts similarity index 88% rename from libs/common/spec/importers/passky-json-importer.spec.ts rename to libs/importer/spec/passky-json-importer.spec.ts index a156046abf83..ddec76876d88 100644 --- a/libs/common/spec/importers/passky-json-importer.spec.ts +++ b/libs/importer/spec/passky-json-importer.spec.ts @@ -1,12 +1,12 @@ -import { PasskyJsonImporter as Importer } from "@bitwarden/common/importers/passky/passky-json-importer"; +import { PasskyJsonImporter } from "../src/importers"; import { testData as EncryptedData } from "./test-data/passky-json/passky-encrypted.json"; import { testData as UnencryptedData } from "./test-data/passky-json/passky-unencrypted.json"; describe("Passky Json Importer", () => { - let importer: Importer; + let importer: PasskyJsonImporter; beforeEach(() => { - importer = new Importer(); + importer = new PasskyJsonImporter(); }); it("should not import encrypted backups", async () => { diff --git a/libs/common/spec/importers/psono-json-importer.spec.ts b/libs/importer/spec/psono-json-importer.spec.ts similarity index 97% rename from libs/common/spec/importers/psono-json-importer.spec.ts rename to libs/importer/spec/psono-json-importer.spec.ts index 012df791e9c3..fc33a66c14b4 100644 --- a/libs/common/spec/importers/psono-json-importer.spec.ts +++ b/libs/importer/spec/psono-json-importer.spec.ts @@ -1,8 +1,9 @@ import { FieldType } from "@bitwarden/common/enums/fieldType"; -import { PsonoJsonImporter as Importer } from "@bitwarden/common/importers/psono/psono-json-importer"; import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { PsonoJsonImporter } from "../src/importers"; + import { ApplicationPasswordsData } from "./test-data/psono-json/application-passwords"; import { BookmarkData } from "./test-data/psono-json/bookmark.json"; import { EmptyTestFolderData } from "./test-data/psono-json/empty-folders"; @@ -39,7 +40,7 @@ describe("PSONO JSON Importer", () => { const EnvVariablesDataJson = JSON.stringify(EnvVariablesData); it("should parse Website/Password data", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(WebsiteLoginsDataJson); expect(result != null).toBe(true); @@ -65,7 +66,7 @@ describe("PSONO JSON Importer", () => { }); it("should parse Application Password data", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(ApplicationPasswordsDataJson); expect(result != null).toBe(true); @@ -84,7 +85,7 @@ describe("PSONO JSON Importer", () => { }); it("should parse bookmark data", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(BookmarkDataJson); expect(result != null).toBe(true); @@ -103,7 +104,7 @@ describe("PSONO JSON Importer", () => { }); it("should parse notes", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(NotesDataJson); expect(result != null).toBe(true); @@ -118,7 +119,7 @@ describe("PSONO JSON Importer", () => { }); it("should parse TOTP", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(TOTPDataJson); expect(result != null).toBe(true); @@ -139,7 +140,7 @@ describe("PSONO JSON Importer", () => { // Skipping this test until we can save GPG into notes/custom fields it.skip("should parse GPG data", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(GPGDataJson); expect(result != null).toBe(true); @@ -168,7 +169,7 @@ describe("PSONO JSON Importer", () => { }); it("should parse Environment variables data", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(EnvVariablesDataJson); expect(result != null).toBe(true); @@ -185,7 +186,7 @@ describe("PSONO JSON Importer", () => { }); it("should not create empty folders", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(EmptyTestFolderDataJson); expect(result != null).toBe(true); @@ -193,7 +194,7 @@ describe("PSONO JSON Importer", () => { }); it("should create folders", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(FoldersTestDataJson); expect(result != null).toBe(true); @@ -204,7 +205,7 @@ describe("PSONO JSON Importer", () => { }); it("should assign entries to folders", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); const result = await importer.parse(FoldersTestDataJson); expect(result != null).toBe(true); @@ -215,7 +216,7 @@ describe("PSONO JSON Importer", () => { }); it("should create collections if part of an organization", async () => { - const importer = new Importer(); + const importer = new PsonoJsonImporter(); importer.organizationId = "someOrg"; const result = await importer.parse(FoldersTestDataJson); expect(result != null).toBe(true); diff --git a/libs/common/spec/importers/safari-csv-importer.spec.ts b/libs/importer/spec/safari-csv-importer.spec.ts similarity index 94% rename from libs/common/spec/importers/safari-csv-importer.spec.ts rename to libs/importer/spec/safari-csv-importer.spec.ts index 89a9c469a771..4a22eb0bdc4f 100644 --- a/libs/common/spec/importers/safari-csv-importer.spec.ts +++ b/libs/importer/spec/safari-csv-importer.spec.ts @@ -1,8 +1,9 @@ -import { SafariCsvImporter as Importer } from "@bitwarden/common/importers/safari-csv-importer"; import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; import { LoginUriView } from "@bitwarden/common/vault/models/view/login-uri.view"; import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { SafariCsvImporter } from "../src/importers"; + import { data as oldSimplePasswordData } from "./test-data/safari-csv/old-simple-password-data.csv"; import { data as simplePasswordData } from "./test-data/safari-csv/simple-password-data.csv"; @@ -54,7 +55,7 @@ const CipherData = [ describe("Safari CSV Importer", () => { CipherData.forEach((data) => { it(data.title, async () => { - const importer = new Importer(); + const importer = new SafariCsvImporter(); const result = await importer.parse(data.csv); expect(result != null).toBe(true); expect(result.ciphers.length).toBeGreaterThan(0); diff --git a/libs/common/spec/importers/test-data/bitwarden-json/empty.json.ts b/libs/importer/spec/test-data/bitwarden-json/empty.json.ts similarity index 100% rename from libs/common/spec/importers/test-data/bitwarden-json/empty.json.ts rename to libs/importer/spec/test-data/bitwarden-json/empty.json.ts diff --git a/libs/common/spec/importers/test-data/bitwarden-json/password-protected.json.ts b/libs/importer/spec/test-data/bitwarden-json/password-protected.json.ts similarity index 100% rename from libs/common/spec/importers/test-data/bitwarden-json/password-protected.json.ts rename to libs/importer/spec/test-data/bitwarden-json/password-protected.json.ts diff --git a/libs/common/spec/importers/test-data/chrome-csv/android-data.csv.ts b/libs/importer/spec/test-data/chrome-csv/android-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/chrome-csv/android-data.csv.ts rename to libs/importer/spec/test-data/chrome-csv/android-data.csv.ts diff --git a/libs/common/spec/importers/test-data/chrome-csv/simple-password-data.csv.ts b/libs/importer/spec/test-data/chrome-csv/simple-password-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/chrome-csv/simple-password-data.csv.ts rename to libs/importer/spec/test-data/chrome-csv/simple-password-data.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/credentials.csv.ts b/libs/importer/spec/test-data/dashlane-csv/credentials.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/credentials.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/credentials.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/id.csv.ts b/libs/importer/spec/test-data/dashlane-csv/id.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/id.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/id.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/multiple-personal-info.csv.ts b/libs/importer/spec/test-data/dashlane-csv/multiple-personal-info.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/multiple-personal-info.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/multiple-personal-info.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/payments.csv.ts b/libs/importer/spec/test-data/dashlane-csv/payments.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/payments.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/payments.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/personal-info.csv.ts b/libs/importer/spec/test-data/dashlane-csv/personal-info.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/personal-info.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/personal-info.csv.ts diff --git a/libs/common/spec/importers/test-data/dashlane-csv/securenotes.csv.ts b/libs/importer/spec/test-data/dashlane-csv/securenotes.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/dashlane-csv/securenotes.csv.ts rename to libs/importer/spec/test-data/dashlane-csv/securenotes.csv.ts diff --git a/libs/common/spec/importers/enpass/test-data/json/credit-card.ts b/libs/importer/spec/test-data/enpass-json/credit-card.ts similarity index 98% rename from libs/common/spec/importers/enpass/test-data/json/credit-card.ts rename to libs/importer/spec/test-data/enpass-json/credit-card.ts index 5b9b07fe91c1..621190a735f6 100644 --- a/libs/common/spec/importers/enpass/test-data/json/credit-card.ts +++ b/libs/importer/spec/test-data/enpass-json/credit-card.ts @@ -1,4 +1,4 @@ -import { EnpassJsonFile } from "@bitwarden/common/importers/enpass/types/enpass-json-type"; +import { EnpassJsonFile } from "../../../src/importers/enpass/types/enpass-json-type"; export const creditCard: EnpassJsonFile = { folders: [], diff --git a/libs/common/spec/importers/enpass/test-data/json/folders.ts b/libs/importer/spec/test-data/enpass-json/folders.ts similarity index 91% rename from libs/common/spec/importers/enpass/test-data/json/folders.ts rename to libs/importer/spec/test-data/enpass-json/folders.ts index d12a9f697337..22ab26524b06 100644 --- a/libs/common/spec/importers/enpass/test-data/json/folders.ts +++ b/libs/importer/spec/test-data/enpass-json/folders.ts @@ -1,4 +1,4 @@ -import { EnpassJsonFile } from "@bitwarden/common/importers/enpass/types/enpass-json-type"; +import { EnpassJsonFile } from "../../../src/importers/enpass/types/enpass-json-type"; export const folders: EnpassJsonFile = { folders: [ diff --git a/libs/common/spec/importers/enpass/test-data/json/login-android-url.ts b/libs/importer/spec/test-data/enpass-json/login-android-url.ts similarity index 95% rename from libs/common/spec/importers/enpass/test-data/json/login-android-url.ts rename to libs/importer/spec/test-data/enpass-json/login-android-url.ts index 10acec78464c..6b0ac41ccde4 100644 --- a/libs/common/spec/importers/enpass/test-data/json/login-android-url.ts +++ b/libs/importer/spec/test-data/enpass-json/login-android-url.ts @@ -1,4 +1,4 @@ -import { EnpassJsonFile } from "@bitwarden/common/importers/enpass/types/enpass-json-type"; +import { EnpassJsonFile } from "../../../src/importers/enpass/types/enpass-json-type"; import { login } from "./login"; diff --git a/libs/common/spec/importers/enpass/test-data/json/login.ts b/libs/importer/spec/test-data/enpass-json/login.ts similarity index 97% rename from libs/common/spec/importers/enpass/test-data/json/login.ts rename to libs/importer/spec/test-data/enpass-json/login.ts index 62625b7cd0dd..07707f2ca3e7 100644 --- a/libs/common/spec/importers/enpass/test-data/json/login.ts +++ b/libs/importer/spec/test-data/enpass-json/login.ts @@ -1,4 +1,4 @@ -import { EnpassJsonFile } from "@bitwarden/common/importers/enpass/types/enpass-json-type"; +import { EnpassJsonFile } from "../../../src/importers/enpass/types/enpass-json-type"; export const login: EnpassJsonFile = { folders: [], diff --git a/libs/common/spec/importers/enpass/test-data/json/note.ts b/libs/importer/spec/test-data/enpass-json/note.ts similarity index 86% rename from libs/common/spec/importers/enpass/test-data/json/note.ts rename to libs/importer/spec/test-data/enpass-json/note.ts index 2ca1e50927de..58f54371ad0d 100644 --- a/libs/common/spec/importers/enpass/test-data/json/note.ts +++ b/libs/importer/spec/test-data/enpass-json/note.ts @@ -1,4 +1,4 @@ -import { EnpassJsonFile } from "@bitwarden/common/importers/enpass/types/enpass-json-type"; +import { EnpassJsonFile } from "../../../src/importers/enpass/types/enpass-json-type"; export const note: EnpassJsonFile = { folders: [], diff --git a/libs/common/spec/importers/test-data/firefox-csv/firefox-accounts-data.csv.ts b/libs/importer/spec/test-data/firefox-csv/firefox-accounts-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/firefox-csv/firefox-accounts-data.csv.ts rename to libs/importer/spec/test-data/firefox-csv/firefox-accounts-data.csv.ts diff --git a/libs/common/spec/importers/test-data/firefox-csv/simple-password-data.csv.ts b/libs/importer/spec/test-data/firefox-csv/simple-password-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/firefox-csv/simple-password-data.csv.ts rename to libs/importer/spec/test-data/firefox-csv/simple-password-data.csv.ts diff --git a/libs/common/spec/importers/keepass2-xml-importer-testdata.ts b/libs/importer/spec/test-data/keepass2-xml/keepass2-xml-importer-testdata.ts similarity index 100% rename from libs/common/spec/importers/keepass2-xml-importer-testdata.ts rename to libs/importer/spec/test-data/keepass2-xml/keepass2-xml-importer-testdata.ts diff --git a/libs/common/spec/importers/test-data/keeper-csv/testdata.csv.ts b/libs/importer/spec/test-data/keeper-csv/testdata.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/keeper-csv/testdata.csv.ts rename to libs/importer/spec/test-data/keeper-csv/testdata.csv.ts diff --git a/libs/common/spec/importers/test-data/keeper-json/testdata.json.ts b/libs/importer/spec/test-data/keeper-json/testdata.json.ts similarity index 95% rename from libs/common/spec/importers/test-data/keeper-json/testdata.json.ts rename to libs/importer/spec/test-data/keeper-json/testdata.json.ts index 0ead208251ba..952ced5027f1 100644 --- a/libs/common/spec/importers/test-data/keeper-json/testdata.json.ts +++ b/libs/importer/spec/test-data/keeper-json/testdata.json.ts @@ -1,4 +1,4 @@ -import { KeeperJsonExport } from "@bitwarden/common/importers/keeper/types/keeper-json-types"; +import { KeeperJsonExport } from "../../../src/importers/keeper/types/keeper-json-types"; export const testData: KeeperJsonExport = { shared_folders: [ diff --git a/libs/common/spec/importers/test-data/myki-csv/user-account.csv.ts b/libs/importer/spec/test-data/myki-csv/user-account.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-account.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-account.csv.ts diff --git a/libs/common/spec/importers/test-data/myki-csv/user-credit-card.csv.ts b/libs/importer/spec/test-data/myki-csv/user-credit-card.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-credit-card.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-credit-card.csv.ts diff --git a/libs/common/spec/importers/test-data/myki-csv/user-id-card.csv.ts b/libs/importer/spec/test-data/myki-csv/user-id-card.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-id-card.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-id-card.csv.ts diff --git a/libs/common/spec/importers/test-data/myki-csv/user-identity.csv.ts b/libs/importer/spec/test-data/myki-csv/user-identity.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-identity.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-identity.csv.ts diff --git a/libs/common/spec/importers/test-data/myki-csv/user-note.csv.ts b/libs/importer/spec/test-data/myki-csv/user-note.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-note.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-note.csv.ts diff --git a/libs/common/spec/importers/test-data/myki-csv/user-twofa.csv.ts b/libs/importer/spec/test-data/myki-csv/user-twofa.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/myki-csv/user-twofa.csv.ts rename to libs/importer/spec/test-data/myki-csv/user-twofa.csv.ts diff --git a/libs/common/spec/importers/test-data/nordpass-csv/nordpass.card.csv.ts b/libs/importer/spec/test-data/nordpass-csv/nordpass.card.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/nordpass-csv/nordpass.card.csv.ts rename to libs/importer/spec/test-data/nordpass-csv/nordpass.card.csv.ts diff --git a/libs/common/spec/importers/test-data/nordpass-csv/nordpass.identity.csv.ts b/libs/importer/spec/test-data/nordpass-csv/nordpass.identity.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/nordpass-csv/nordpass.identity.csv.ts rename to libs/importer/spec/test-data/nordpass-csv/nordpass.identity.csv.ts diff --git a/libs/common/spec/importers/test-data/nordpass-csv/nordpass.login.csv.ts b/libs/importer/spec/test-data/nordpass-csv/nordpass.login.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/nordpass-csv/nordpass.login.csv.ts rename to libs/importer/spec/test-data/nordpass-csv/nordpass.login.csv.ts diff --git a/libs/common/spec/importers/test-data/nordpass-csv/nordpass.secure-note.csv.ts b/libs/importer/spec/test-data/nordpass-csv/nordpass.secure-note.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/nordpass-csv/nordpass.secure-note.csv.ts rename to libs/importer/spec/test-data/nordpass-csv/nordpass.secure-note.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/api-credentials.ts b/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/api-credentials.ts rename to libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts index 762d57e91add..49269e72fa01 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/api-credentials.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/api-credentials.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const APICredentialsData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/bank-account.ts b/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/bank-account.ts rename to libs/importer/spec/test-data/onepassword-1pux/bank-account.ts index 2a88db0dabda..7f3d8c080cdd 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/bank-account.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/bank-account.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const BankAccountData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/credit-card.ts b/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts similarity index 99% rename from libs/common/spec/importers/test-data/onepassword-1pux/credit-card.ts rename to libs/importer/spec/test-data/onepassword-1pux/credit-card.ts index 208d374321a4..80258f13f054 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/credit-card.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/credit-card.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const CreditCardData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/database.ts b/libs/importer/spec/test-data/onepassword-1pux/database.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/database.ts rename to libs/importer/spec/test-data/onepassword-1pux/database.ts index 6eb6c921994c..17b6700bf6d0 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/database.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/database.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const DatabaseData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/drivers-license.ts b/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/drivers-license.ts rename to libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts index ed52b3cd5db6..9f7260d63d36 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/drivers-license.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/drivers-license.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const DriversLicenseData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/email-account.ts b/libs/importer/spec/test-data/onepassword-1pux/email-account.ts similarity index 99% rename from libs/common/spec/importers/test-data/onepassword-1pux/email-account.ts rename to libs/importer/spec/test-data/onepassword-1pux/email-account.ts index 374553825c93..a6de6b55b220 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/email-account.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/email-account.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const EmailAccountData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity.ts b/libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity.ts similarity index 95% rename from libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity.ts rename to libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity.ts index 4f9db420a075..932213c51f42 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const EmailFieldOnIdentityData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts b/libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts similarity index 96% rename from libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts rename to libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts index b33c14845e75..fb4ef7935a4a 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/email-field-on-identity_prefilled.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const EmailFieldOnIdentityPrefilledData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/email-field.ts b/libs/importer/spec/test-data/onepassword-1pux/email-field.ts similarity index 96% rename from libs/common/spec/importers/test-data/onepassword-1pux/email-field.ts rename to libs/importer/spec/test-data/onepassword-1pux/email-field.ts index 766fc2a22c45..97cca39d0ab8 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/email-field.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/email-field.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const EmailFieldData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/identity-data.ts b/libs/importer/spec/test-data/onepassword-1pux/identity-data.ts similarity index 99% rename from libs/common/spec/importers/test-data/onepassword-1pux/identity-data.ts rename to libs/importer/spec/test-data/onepassword-1pux/identity-data.ts index 2c4dbd95f35a..acc10a403d92 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/identity-data.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/identity-data.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const IdentityData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/login-data.ts b/libs/importer/spec/test-data/onepassword-1pux/login-data.ts similarity index 97% rename from libs/common/spec/importers/test-data/onepassword-1pux/login-data.ts rename to libs/importer/spec/test-data/onepassword-1pux/login-data.ts index afdf02be17e9..b7b2fe15861f 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/login-data.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/login-data.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const LoginData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/medical-record.ts b/libs/importer/spec/test-data/onepassword-1pux/medical-record.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/medical-record.ts rename to libs/importer/spec/test-data/onepassword-1pux/medical-record.ts index 3e5d39104927..df300560d95d 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/medical-record.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/medical-record.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const MedicalRecordData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/membership.ts b/libs/importer/spec/test-data/onepassword-1pux/membership.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/membership.ts rename to libs/importer/spec/test-data/onepassword-1pux/membership.ts index 1e602e1eb1da..fd1bf56ac79f 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/membership.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/membership.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const MembershipData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/onepux_example.ts b/libs/importer/spec/test-data/onepassword-1pux/onepux_example.ts similarity index 96% rename from libs/common/spec/importers/test-data/onepassword-1pux/onepux_example.ts rename to libs/importer/spec/test-data/onepassword-1pux/onepux_example.ts index f63684120054..0f07044061e5 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/onepux_example.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/onepux_example.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const OnePuxExampleFile: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/outdoor-license.ts b/libs/importer/spec/test-data/onepassword-1pux/outdoor-license.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/outdoor-license.ts rename to libs/importer/spec/test-data/onepassword-1pux/outdoor-license.ts index c4b686c34a20..071be0fb5400 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/outdoor-license.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/outdoor-license.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const OutdoorLicenseData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/passport.ts b/libs/importer/spec/test-data/onepassword-1pux/passport.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/passport.ts rename to libs/importer/spec/test-data/onepassword-1pux/passport.ts index 3dcfed160e57..a64c9d3d029c 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/passport.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/passport.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const PassportData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/password.ts b/libs/importer/spec/test-data/onepassword-1pux/password.ts similarity index 93% rename from libs/common/spec/importers/test-data/onepassword-1pux/password.ts rename to libs/importer/spec/test-data/onepassword-1pux/password.ts index 5d6e5b75652b..819a0546d648 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/password.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/password.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const PasswordData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/rewards-program.ts b/libs/importer/spec/test-data/onepassword-1pux/rewards-program.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/rewards-program.ts rename to libs/importer/spec/test-data/onepassword-1pux/rewards-program.ts index 237116ef194c..5dcb98160bce 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/rewards-program.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/rewards-program.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const RewardsProgramData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/sanitized-export.ts b/libs/importer/spec/test-data/onepassword-1pux/sanitized-export.ts similarity index 99% rename from libs/common/spec/importers/test-data/onepassword-1pux/sanitized-export.ts rename to libs/importer/spec/test-data/onepassword-1pux/sanitized-export.ts index efa398df0c2b..4e7dde9ab84e 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/sanitized-export.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/sanitized-export.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const SanitizedExport: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/secure-note.ts b/libs/importer/spec/test-data/onepassword-1pux/secure-note.ts similarity index 92% rename from libs/common/spec/importers/test-data/onepassword-1pux/secure-note.ts rename to libs/importer/spec/test-data/onepassword-1pux/secure-note.ts index ea00d07dde50..ae6693cc6fd3 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/secure-note.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/secure-note.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const SecureNoteData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/server.ts b/libs/importer/spec/test-data/onepassword-1pux/server.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/server.ts rename to libs/importer/spec/test-data/onepassword-1pux/server.ts index 883d296f9bfd..4edbd3fbdabc 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/server.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/server.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const ServerData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/software-license.ts b/libs/importer/spec/test-data/onepassword-1pux/software-license.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/software-license.ts rename to libs/importer/spec/test-data/onepassword-1pux/software-license.ts index e13c417373ae..f39747413b7b 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/software-license.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/software-license.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const SoftwareLicenseData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/ssn.ts b/libs/importer/spec/test-data/onepassword-1pux/ssn.ts similarity index 96% rename from libs/common/spec/importers/test-data/onepassword-1pux/ssn.ts rename to libs/importer/spec/test-data/onepassword-1pux/ssn.ts index ec3e505b5c2a..c8f692e541cb 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/ssn.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/ssn.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const SSNData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-1pux/wireless-router.ts b/libs/importer/spec/test-data/onepassword-1pux/wireless-router.ts similarity index 98% rename from libs/common/spec/importers/test-data/onepassword-1pux/wireless-router.ts rename to libs/importer/spec/test-data/onepassword-1pux/wireless-router.ts index 7ce7237901cb..ad5a453a83ae 100644 --- a/libs/common/spec/importers/test-data/onepassword-1pux/wireless-router.ts +++ b/libs/importer/spec/test-data/onepassword-1pux/wireless-router.ts @@ -1,4 +1,4 @@ -import { ExportData } from "@bitwarden/common/importers/onepassword/types/onepassword-1pux-importer-types"; +import { ExportData } from "../../../src/importers/onepassword/types/onepassword-1pux-importer-types"; export const WirelessRouterData: ExportData = { accounts: [ diff --git a/libs/common/spec/importers/test-data/onepassword-csv/credit-card.mac.csv.ts b/libs/importer/spec/test-data/onepassword-csv/credit-card.mac.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/credit-card.mac.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/credit-card.mac.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-csv/credit-card.windows.csv.ts b/libs/importer/spec/test-data/onepassword-csv/credit-card.windows.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/credit-card.windows.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/credit-card.windows.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-csv/identity.mac.csv.ts b/libs/importer/spec/test-data/onepassword-csv/identity.mac.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/identity.mac.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/identity.mac.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-csv/identity.windows.csv.ts b/libs/importer/spec/test-data/onepassword-csv/identity.windows.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/identity.windows.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/identity.windows.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-csv/multiple-items.mac.csv.ts b/libs/importer/spec/test-data/onepassword-csv/multiple-items.mac.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/multiple-items.mac.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/multiple-items.mac.csv.ts diff --git a/libs/common/spec/importers/test-data/onepassword-csv/multiple-items.windows.csv.ts b/libs/importer/spec/test-data/onepassword-csv/multiple-items.windows.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/onepassword-csv/multiple-items.windows.csv.ts rename to libs/importer/spec/test-data/onepassword-csv/multiple-items.windows.csv.ts diff --git a/libs/common/spec/importers/test-data/passky-json/passky-encrypted.json.ts b/libs/importer/spec/test-data/passky-json/passky-encrypted.json.ts similarity index 84% rename from libs/common/spec/importers/test-data/passky-json/passky-encrypted.json.ts rename to libs/importer/spec/test-data/passky-json/passky-encrypted.json.ts index 2d2ee3debd9f..6b9743be343d 100644 --- a/libs/common/spec/importers/test-data/passky-json/passky-encrypted.json.ts +++ b/libs/importer/spec/test-data/passky-json/passky-encrypted.json.ts @@ -1,4 +1,4 @@ -import { PasskyJsonExport } from "@bitwarden/common/importers/passky/passky-json-types"; +import { PasskyJsonExport } from "../../../src/importers/passky/passky-json-types"; export const testData: PasskyJsonExport = { encrypted: true, diff --git a/libs/common/spec/importers/test-data/passky-json/passky-unencrypted.json.ts b/libs/importer/spec/test-data/passky-json/passky-unencrypted.json.ts similarity index 72% rename from libs/common/spec/importers/test-data/passky-json/passky-unencrypted.json.ts rename to libs/importer/spec/test-data/passky-json/passky-unencrypted.json.ts index f77bb09e11dc..c382136648a2 100644 --- a/libs/common/spec/importers/test-data/passky-json/passky-unencrypted.json.ts +++ b/libs/importer/spec/test-data/passky-json/passky-unencrypted.json.ts @@ -1,4 +1,4 @@ -import { PasskyJsonExport } from "@bitwarden/common/importers/passky/passky-json-types"; +import { PasskyJsonExport } from "../../../src/importers/passky/passky-json-types"; export const testData: PasskyJsonExport = { encrypted: false, diff --git a/libs/common/spec/importers/test-data/psono-json/application-passwords.ts b/libs/importer/spec/test-data/psono-json/application-passwords.ts similarity index 86% rename from libs/common/spec/importers/test-data/psono-json/application-passwords.ts rename to libs/importer/spec/test-data/psono-json/application-passwords.ts index df9416dd52d2..29c4a44e0c98 100644 --- a/libs/common/spec/importers/test-data/psono-json/application-passwords.ts +++ b/libs/importer/spec/test-data/psono-json/application-passwords.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const ApplicationPasswordsData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/bookmark.json.ts b/libs/importer/spec/test-data/psono-json/bookmark.json.ts similarity index 86% rename from libs/common/spec/importers/test-data/psono-json/bookmark.json.ts rename to libs/importer/spec/test-data/psono-json/bookmark.json.ts index a4870b8d0ab1..fe0726fbe405 100644 --- a/libs/common/spec/importers/test-data/psono-json/bookmark.json.ts +++ b/libs/importer/spec/test-data/psono-json/bookmark.json.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const BookmarkData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/empty-folders.ts b/libs/importer/spec/test-data/psono-json/empty-folders.ts similarity index 60% rename from libs/common/spec/importers/test-data/psono-json/empty-folders.ts rename to libs/importer/spec/test-data/psono-json/empty-folders.ts index e775113be20e..914cba585fe5 100644 --- a/libs/common/spec/importers/test-data/psono-json/empty-folders.ts +++ b/libs/importer/spec/test-data/psono-json/empty-folders.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const EmptyTestFolderData: PsonoJsonExport = { folders: [ diff --git a/libs/common/spec/importers/test-data/psono-json/environment-variables.ts b/libs/importer/spec/test-data/psono-json/environment-variables.ts similarity index 87% rename from libs/common/spec/importers/test-data/psono-json/environment-variables.ts rename to libs/importer/spec/test-data/psono-json/environment-variables.ts index 3bc6de30bde2..9a26776ebc8a 100644 --- a/libs/common/spec/importers/test-data/psono-json/environment-variables.ts +++ b/libs/importer/spec/test-data/psono-json/environment-variables.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const EnvVariablesData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/folders.ts b/libs/importer/spec/test-data/psono-json/folders.ts similarity index 95% rename from libs/common/spec/importers/test-data/psono-json/folders.ts rename to libs/importer/spec/test-data/psono-json/folders.ts index 3968f714d867..bcc61ea11f68 100644 --- a/libs/common/spec/importers/test-data/psono-json/folders.ts +++ b/libs/importer/spec/test-data/psono-json/folders.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const FoldersTestData: PsonoJsonExport = { folders: [ diff --git a/libs/common/spec/importers/test-data/psono-json/gpg.ts b/libs/importer/spec/test-data/psono-json/gpg.ts similarity index 99% rename from libs/common/spec/importers/test-data/psono-json/gpg.ts rename to libs/importer/spec/test-data/psono-json/gpg.ts index 177f4ef762d1..4015b53aa4e7 100644 --- a/libs/common/spec/importers/test-data/psono-json/gpg.ts +++ b/libs/importer/spec/test-data/psono-json/gpg.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const GPGData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/notes.ts b/libs/importer/spec/test-data/psono-json/notes.ts similarity index 81% rename from libs/common/spec/importers/test-data/psono-json/notes.ts rename to libs/importer/spec/test-data/psono-json/notes.ts index c5290afdad47..0317371456db 100644 --- a/libs/common/spec/importers/test-data/psono-json/notes.ts +++ b/libs/importer/spec/test-data/psono-json/notes.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const NotesData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/totp.ts b/libs/importer/spec/test-data/psono-json/totp.ts similarity index 84% rename from libs/common/spec/importers/test-data/psono-json/totp.ts rename to libs/importer/spec/test-data/psono-json/totp.ts index 8c903437996b..62d3c43431cf 100644 --- a/libs/common/spec/importers/test-data/psono-json/totp.ts +++ b/libs/importer/spec/test-data/psono-json/totp.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const TOTPData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/psono-json/website-logins.ts b/libs/importer/spec/test-data/psono-json/website-logins.ts similarity index 89% rename from libs/common/spec/importers/test-data/psono-json/website-logins.ts rename to libs/importer/spec/test-data/psono-json/website-logins.ts index 3dd2320b23fd..85154090492b 100644 --- a/libs/common/spec/importers/test-data/psono-json/website-logins.ts +++ b/libs/importer/spec/test-data/psono-json/website-logins.ts @@ -1,4 +1,4 @@ -import { PsonoJsonExport } from "@bitwarden/common/importers/psono/psono-json-types"; +import { PsonoJsonExport } from "../../../src/importers/psono/psono-json-types"; export const WebsiteLoginsData: PsonoJsonExport = { folders: [], diff --git a/libs/common/spec/importers/test-data/safari-csv/old-simple-password-data.csv.ts b/libs/importer/spec/test-data/safari-csv/old-simple-password-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/safari-csv/old-simple-password-data.csv.ts rename to libs/importer/spec/test-data/safari-csv/old-simple-password-data.csv.ts diff --git a/libs/common/spec/importers/test-data/safari-csv/simple-password-data.csv.ts b/libs/importer/spec/test-data/safari-csv/simple-password-data.csv.ts similarity index 100% rename from libs/common/spec/importers/test-data/safari-csv/simple-password-data.csv.ts rename to libs/importer/spec/test-data/safari-csv/simple-password-data.csv.ts diff --git a/libs/common/spec/importers/test-data/safeincloud/test-data.xml.ts b/libs/importer/spec/test-data/safeincloud/test-data.xml.ts similarity index 100% rename from libs/common/spec/importers/test-data/safeincloud/test-data.xml.ts rename to libs/importer/spec/test-data/safeincloud/test-data.xml.ts diff --git a/libs/common/src/importers/ascendo-csv-importer.ts b/libs/importer/src/importers/ascendo-csv-importer.ts similarity index 96% rename from libs/common/src/importers/ascendo-csv-importer.ts rename to libs/importer/src/importers/ascendo-csv-importer.ts index 832df10a55ab..a9be606b8e26 100644 --- a/libs/common/src/importers/ascendo-csv-importer.ts +++ b/libs/importer/src/importers/ascendo-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/avast-csv-importer.ts b/libs/importer/src/importers/avast/avast-csv-importer.ts similarity index 83% rename from libs/common/src/importers/avast-csv-importer.ts rename to libs/importer/src/importers/avast/avast-csv-importer.ts index 5cac29e801d2..8fb3b730c13a 100644 --- a/libs/common/src/importers/avast-csv-importer.ts +++ b/libs/importer/src/importers/avast/avast-csv-importer.ts @@ -1,7 +1,6 @@ -import { ImportResult } from "../models/domain/import-result"; - -import { BaseImporter } from "./base-importer"; -import { Importer } from "./importer"; +import { ImportResult } from "../../models/import-result"; +import { BaseImporter } from "../base-importer"; +import { Importer } from "../importer"; export class AvastCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/libs/common/src/importers/avast-json-importer.ts b/libs/importer/src/importers/avast/avast-json-importer.ts similarity index 88% rename from libs/common/src/importers/avast-json-importer.ts rename to libs/importer/src/importers/avast/avast-json-importer.ts index 203d98529f8b..fa11934ff480 100644 --- a/libs/common/src/importers/avast-json-importer.ts +++ b/libs/importer/src/importers/avast/avast-json-importer.ts @@ -1,9 +1,9 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; -import { BaseImporter } from "./base-importer"; -import { Importer } from "./importer"; +import { ImportResult } from "../../models/import-result"; +import { BaseImporter } from "../base-importer"; +import { Importer } from "../importer"; export class AvastJsonImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/libs/importer/src/importers/avast/index.ts b/libs/importer/src/importers/avast/index.ts new file mode 100644 index 000000000000..74824b6e1624 --- /dev/null +++ b/libs/importer/src/importers/avast/index.ts @@ -0,0 +1,2 @@ +export { AvastCsvImporter } from "./avast-csv-importer"; +export { AvastJsonImporter } from "./avast-json-importer"; diff --git a/libs/common/src/importers/avira-csv-importer.ts b/libs/importer/src/importers/avira-csv-importer.ts similarity index 95% rename from libs/common/src/importers/avira-csv-importer.ts rename to libs/importer/src/importers/avira-csv-importer.ts index 5b9dfca8b19f..6a686930232c 100644 --- a/libs/common/src/importers/avira-csv-importer.ts +++ b/libs/importer/src/importers/avira-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/base-importer.ts b/libs/importer/src/importers/base-importer.ts similarity index 91% rename from libs/common/src/importers/base-importer.ts rename to libs/importer/src/importers/base-importer.ts index 3f0f548f1f30..2ca2f1e98243 100644 --- a/libs/common/src/importers/base-importer.ts +++ b/libs/importer/src/importers/base-importer.ts @@ -1,19 +1,20 @@ import * as papa from "papaparse"; -import { LogService } from "../abstractions/log.service"; -import { CollectionView } from "../admin-console/models/view/collection.view"; -import { FieldType } from "../enums/fieldType"; -import { SecureNoteType } from "../enums/secureNoteType"; -import { Utils } from "../misc/utils"; -import { ImportResult } from "../models/domain/import-result"; -import { ConsoleLogService } from "../services/consoleLog.service"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { FieldView } from "../vault/models/view/field.view"; -import { FolderView } from "../vault/models/view/folder.view"; -import { LoginUriView } from "../vault/models/view/login-uri.view"; -import { LoginView } from "../vault/models/view/login.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { LogService } from "@bitwarden/common/abstractions/log.service"; +import { CollectionView } from "@bitwarden/common/admin-console/models/view/collection.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { Utils } from "@bitwarden/common/misc/utils"; +import { ConsoleLogService } from "@bitwarden/common/services/consoleLog.service"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; +import { LoginUriView } from "@bitwarden/common/vault/models/view/login-uri.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; export abstract class BaseImporter { organizationId: string = null; diff --git a/libs/common/src/importers/bitwarden-csv-importer.ts b/libs/importer/src/importers/bitwarden/bitwarden-csv-importer.ts similarity index 81% rename from libs/common/src/importers/bitwarden-csv-importer.ts rename to libs/importer/src/importers/bitwarden/bitwarden-csv-importer.ts index c7d0d334b0e5..d761401d7121 100644 --- a/libs/common/src/importers/bitwarden-csv-importer.ts +++ b/libs/importer/src/importers/bitwarden/bitwarden-csv-importer.ts @@ -1,16 +1,16 @@ -import { CollectionView } from "../admin-console/models/view/collection.view"; -import { FieldType } from "../enums/fieldType"; -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherRepromptType } from "../vault/enums/cipher-reprompt-type"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { FieldView } from "../vault/models/view/field.view"; -import { LoginView } from "../vault/models/view/login.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { CollectionView } from "@bitwarden/common/admin-console/models/view/collection.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherRepromptType } from "@bitwarden/common/vault/enums/cipher-reprompt-type"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; -import { BaseImporter } from "./base-importer"; -import { Importer } from "./importer"; +import { ImportResult } from "../../models/import-result"; +import { BaseImporter } from "../base-importer"; +import { Importer } from "../importer"; export class BitwardenCsvImporter extends BaseImporter implements Importer { parse(data: string): Promise { diff --git a/libs/common/src/importers/bitwarden-json-importer.ts b/libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts similarity index 89% rename from libs/common/src/importers/bitwarden-json-importer.ts rename to libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts index e17548fce2bc..567b4a359691 100644 --- a/libs/common/src/importers/bitwarden-json-importer.ts +++ b/libs/importer/src/importers/bitwarden/bitwarden-json-importer.ts @@ -1,13 +1,13 @@ -import { CryptoService } from "../abstractions/crypto.service"; -import { I18nService } from "../abstractions/i18n.service"; -import { EncString } from "../models/domain/enc-string"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherWithIdExport } from "../models/export/cipher-with-ids.export"; -import { CollectionWithIdExport } from "../models/export/collection-with-id.export"; -import { FolderWithIdExport } from "../models/export/folder-with-id.export"; - -import { BaseImporter } from "./base-importer"; -import { Importer } from "./importer"; +import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; +import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; +import { EncString } from "@bitwarden/common/models/domain/enc-string"; +import { CipherWithIdExport } from "@bitwarden/common/models/export/cipher-with-ids.export"; +import { CollectionWithIdExport } from "@bitwarden/common/models/export/collection-with-id.export"; +import { FolderWithIdExport } from "@bitwarden/common/models/export/folder-with-id.export"; + +import { ImportResult } from "../../models/import-result"; +import { BaseImporter } from "../base-importer"; +import { Importer } from "../importer"; export class BitwardenJsonImporter extends BaseImporter implements Importer { private results: any; diff --git a/libs/common/src/importers/bitwarden-password-protected-importer.ts b/libs/importer/src/importers/bitwarden/bitwarden-password-protected-importer.ts similarity index 79% rename from libs/common/src/importers/bitwarden-password-protected-importer.ts rename to libs/importer/src/importers/bitwarden/bitwarden-password-protected-importer.ts index 1ab8894145d1..183a08f3e4c7 100644 --- a/libs/common/src/importers/bitwarden-password-protected-importer.ts +++ b/libs/importer/src/importers/bitwarden/bitwarden-password-protected-importer.ts @@ -1,13 +1,14 @@ -import { CryptoService } from "../abstractions/crypto.service"; -import { I18nService } from "../abstractions/i18n.service"; -import { KdfConfig } from "../auth/models/domain/kdf-config"; -import { KdfType } from "../enums/kdfType"; -import { EncString } from "../models/domain/enc-string"; -import { ImportResult } from "../models/domain/import-result"; -import { SymmetricCryptoKey } from "../models/domain/symmetric-crypto-key"; +import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; +import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; +import { KdfConfig } from "@bitwarden/common/auth/models/domain/kdf-config"; +import { KdfType } from "@bitwarden/common/enums/kdfType"; +import { EncString } from "@bitwarden/common/models/domain/enc-string"; +import { SymmetricCryptoKey } from "@bitwarden/common/models/domain/symmetric-crypto-key"; + +import { ImportResult } from "../../models/import-result"; +import { Importer } from "../importer"; import { BitwardenJsonImporter } from "./bitwarden-json-importer"; -import { Importer } from "./importer"; interface BitwardenPasswordProtectedFileFormat { encrypted: boolean; diff --git a/libs/importer/src/importers/bitwarden/index.ts b/libs/importer/src/importers/bitwarden/index.ts new file mode 100644 index 000000000000..7c70fc210ea3 --- /dev/null +++ b/libs/importer/src/importers/bitwarden/index.ts @@ -0,0 +1,3 @@ +export { BitwardenCsvImporter } from "./bitwarden-csv-importer"; +export { BitwardenJsonImporter } from "./bitwarden-json-importer"; +export { BitwardenPasswordProtectedImporter } from "./bitwarden-password-protected-importer"; diff --git a/libs/common/src/importers/blackberry-csv-importer.ts b/libs/importer/src/importers/blackberry-csv-importer.ts similarity index 94% rename from libs/common/src/importers/blackberry-csv-importer.ts rename to libs/importer/src/importers/blackberry-csv-importer.ts index 62df7f246c2a..3c1376c015cb 100644 --- a/libs/common/src/importers/blackberry-csv-importer.ts +++ b/libs/importer/src/importers/blackberry-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/blur-csv-importer.ts b/libs/importer/src/importers/blur-csv-importer.ts similarity index 95% rename from libs/common/src/importers/blur-csv-importer.ts rename to libs/importer/src/importers/blur-csv-importer.ts index 2276e932f9aa..1b2f29791b40 100644 --- a/libs/common/src/importers/blur-csv-importer.ts +++ b/libs/importer/src/importers/blur-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/buttercup-csv-importer.ts b/libs/importer/src/importers/buttercup-csv-importer.ts similarity index 96% rename from libs/common/src/importers/buttercup-csv-importer.ts rename to libs/importer/src/importers/buttercup-csv-importer.ts index 22b6e33bad5c..ac3a4cd2512d 100644 --- a/libs/common/src/importers/buttercup-csv-importer.ts +++ b/libs/importer/src/importers/buttercup-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/chrome-csv-importer.ts b/libs/importer/src/importers/chrome-csv-importer.ts similarity index 94% rename from libs/common/src/importers/chrome-csv-importer.ts rename to libs/importer/src/importers/chrome-csv-importer.ts index 7df20e4a6c43..445f0ad57ae8 100644 --- a/libs/common/src/importers/chrome-csv-importer.ts +++ b/libs/importer/src/importers/chrome-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/clipperz-html-importer.ts b/libs/importer/src/importers/clipperz-html-importer.ts similarity index 98% rename from libs/common/src/importers/clipperz-html-importer.ts rename to libs/importer/src/importers/clipperz-html-importer.ts index a9d969d26383..75c39084bfa6 100644 --- a/libs/common/src/importers/clipperz-html-importer.ts +++ b/libs/importer/src/importers/clipperz-html-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/codebook-csv-importer.ts b/libs/importer/src/importers/codebook-csv-importer.ts similarity index 96% rename from libs/common/src/importers/codebook-csv-importer.ts rename to libs/importer/src/importers/codebook-csv-importer.ts index 302c5335430b..58cada3b75b1 100644 --- a/libs/common/src/importers/codebook-csv-importer.ts +++ b/libs/importer/src/importers/codebook-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/dashlane/dashlane-csv-importer.ts b/libs/importer/src/importers/dashlane/dashlane-csv-importer.ts similarity index 93% rename from libs/common/src/importers/dashlane/dashlane-csv-importer.ts rename to libs/importer/src/importers/dashlane/dashlane-csv-importer.ts index 685b40042bba..fa2b5bb6d852 100644 --- a/libs/common/src/importers/dashlane/dashlane-csv-importer.ts +++ b/libs/importer/src/importers/dashlane/dashlane-csv-importer.ts @@ -1,10 +1,11 @@ -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; -import { LoginView } from "../../vault/models/view/login.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/dashlane/dashlane-json-importer.ts b/libs/importer/src/importers/dashlane/dashlane-json-importer.ts similarity index 91% rename from libs/common/src/importers/dashlane/dashlane-json-importer.ts rename to libs/importer/src/importers/dashlane/dashlane-json-importer.ts index b2595d485c85..451fb35465ca 100644 --- a/libs/common/src/importers/dashlane/dashlane-json-importer.ts +++ b/libs/importer/src/importers/dashlane/dashlane-json-importer.ts @@ -1,10 +1,11 @@ -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; -import { SecureNoteView } from "../../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/importer/src/importers/dashlane/index.ts b/libs/importer/src/importers/dashlane/index.ts new file mode 100644 index 000000000000..a37ae5aeb18a --- /dev/null +++ b/libs/importer/src/importers/dashlane/index.ts @@ -0,0 +1,2 @@ +export { DashlaneCsvImporter } from "./dashlane-csv-importer"; +export { DashlaneJsonImporter } from "./dashlane-json-importer"; diff --git a/libs/common/src/importers/dashlane/types/dashlane-csv-types.ts b/libs/importer/src/importers/dashlane/types/dashlane-csv-types.ts similarity index 100% rename from libs/common/src/importers/dashlane/types/dashlane-csv-types.ts rename to libs/importer/src/importers/dashlane/types/dashlane-csv-types.ts diff --git a/libs/common/src/importers/encryptr-csv-importer.ts b/libs/importer/src/importers/encryptr-csv-importer.ts similarity index 91% rename from libs/common/src/importers/encryptr-csv-importer.ts rename to libs/importer/src/importers/encryptr-csv-importer.ts index b5d6fb966937..73796cf1e332 100644 --- a/libs/common/src/importers/encryptr-csv-importer.ts +++ b/libs/importer/src/importers/encryptr-csv-importer.ts @@ -1,6 +1,7 @@ -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/enpass/enpass-csv-importer.ts b/libs/importer/src/importers/enpass/enpass-csv-importer.ts similarity index 92% rename from libs/common/src/importers/enpass/enpass-csv-importer.ts rename to libs/importer/src/importers/enpass/enpass-csv-importer.ts index 24c919631826..9d3907b2a25d 100644 --- a/libs/common/src/importers/enpass/enpass-csv-importer.ts +++ b/libs/importer/src/importers/enpass/enpass-csv-importer.ts @@ -1,8 +1,9 @@ -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { SecureNoteView } from "../../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/enpass/enpass-json-importer.ts b/libs/importer/src/importers/enpass/enpass-json-importer.ts similarity index 94% rename from libs/common/src/importers/enpass/enpass-json-importer.ts rename to libs/importer/src/importers/enpass/enpass-json-importer.ts index d74f0e2ec91f..efd4075ff349 100644 --- a/libs/common/src/importers/enpass/enpass-json-importer.ts +++ b/libs/importer/src/importers/enpass/enpass-json-importer.ts @@ -1,9 +1,10 @@ -import { FieldType } from "../../enums/fieldType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { FolderView } from "../../vault/models/view/folder.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/importer/src/importers/enpass/index.ts b/libs/importer/src/importers/enpass/index.ts new file mode 100644 index 000000000000..f6113af32081 --- /dev/null +++ b/libs/importer/src/importers/enpass/index.ts @@ -0,0 +1,2 @@ +export { EnpassCsvImporter } from "./enpass-csv-importer"; +export { EnpassJsonImporter } from "./enpass-json-importer"; diff --git a/libs/common/src/importers/enpass/types/enpass-item-templates.ts b/libs/importer/src/importers/enpass/types/enpass-item-templates.ts similarity index 100% rename from libs/common/src/importers/enpass/types/enpass-item-templates.ts rename to libs/importer/src/importers/enpass/types/enpass-item-templates.ts diff --git a/libs/common/src/importers/enpass/types/enpass-json-type.ts b/libs/importer/src/importers/enpass/types/enpass-json-type.ts similarity index 100% rename from libs/common/src/importers/enpass/types/enpass-json-type.ts rename to libs/importer/src/importers/enpass/types/enpass-json-type.ts diff --git a/libs/common/src/importers/firefox-csv-importer.ts b/libs/importer/src/importers/firefox-csv-importer.ts similarity index 94% rename from libs/common/src/importers/firefox-csv-importer.ts rename to libs/importer/src/importers/firefox-csv-importer.ts index e6c0c7030cbe..0835454d4bf0 100644 --- a/libs/common/src/importers/firefox-csv-importer.ts +++ b/libs/importer/src/importers/firefox-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/fsecure/fsecure-fsk-importer.spec.ts b/libs/importer/src/importers/fsecure/fsecure-fsk-importer.spec.ts similarity index 96% rename from libs/common/src/importers/fsecure/fsecure-fsk-importer.spec.ts rename to libs/importer/src/importers/fsecure/fsecure-fsk-importer.spec.ts index 1eadb5c14772..ff191134306e 100644 --- a/libs/common/src/importers/fsecure/fsecure-fsk-importer.spec.ts +++ b/libs/importer/src/importers/fsecure/fsecure-fsk-importer.spec.ts @@ -1,4 +1,4 @@ -import { CipherType } from "../../vault/enums/cipher-type"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; import { FSecureFskImporter as Importer } from "./fsecure-fsk-importer"; import { CreditCardTestEntry, LoginTestEntry } from "./fsk-test-data"; diff --git a/libs/common/src/importers/fsecure/fsecure-fsk-importer.ts b/libs/importer/src/importers/fsecure/fsecure-fsk-importer.ts similarity index 89% rename from libs/common/src/importers/fsecure/fsecure-fsk-importer.ts rename to libs/importer/src/importers/fsecure/fsecure-fsk-importer.ts index fcecf7a0a297..ba66aa8dad13 100644 --- a/libs/common/src/importers/fsecure/fsecure-fsk-importer.ts +++ b/libs/importer/src/importers/fsecure/fsecure-fsk-importer.ts @@ -1,7 +1,8 @@ -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/fsecure/fsecure-fsk-types.ts b/libs/importer/src/importers/fsecure/fsecure-fsk-types.ts similarity index 100% rename from libs/common/src/importers/fsecure/fsecure-fsk-types.ts rename to libs/importer/src/importers/fsecure/fsecure-fsk-types.ts diff --git a/libs/common/src/importers/fsecure/fsk-test-data.ts b/libs/importer/src/importers/fsecure/fsk-test-data.ts similarity index 100% rename from libs/common/src/importers/fsecure/fsk-test-data.ts rename to libs/importer/src/importers/fsecure/fsk-test-data.ts diff --git a/libs/common/src/importers/gnome-json-importer.ts b/libs/importer/src/importers/gnome-json-importer.ts similarity index 97% rename from libs/common/src/importers/gnome-json-importer.ts rename to libs/importer/src/importers/gnome-json-importer.ts index a4e1f67fe0f1..029bae3825f5 100644 --- a/libs/common/src/importers/gnome-json-importer.ts +++ b/libs/importer/src/importers/gnome-json-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/importer.ts b/libs/importer/src/importers/importer.ts similarity index 62% rename from libs/common/src/importers/importer.ts rename to libs/importer/src/importers/importer.ts index 0835f667ebf0..a2adff0b0dfc 100644 --- a/libs/common/src/importers/importer.ts +++ b/libs/importer/src/importers/importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; export interface Importer { organizationId: string; diff --git a/libs/importer/src/importers/index.ts b/libs/importer/src/importers/index.ts new file mode 100644 index 000000000000..1a479a4cf5fa --- /dev/null +++ b/libs/importer/src/importers/index.ts @@ -0,0 +1,59 @@ +export { AscendoCsvImporter } from "./ascendo-csv-importer"; +export { AvastCsvImporter, AvastJsonImporter } from "./avast"; +export { AviraCsvImporter } from "./avira-csv-importer"; +export { BlackBerryCsvImporter } from "./blackberry-csv-importer"; +export { ChromeCsvImporter } from "./chrome-csv-importer"; +export { + BitwardenCsvImporter, + BitwardenJsonImporter, + BitwardenPasswordProtectedImporter, +} from "./bitwarden"; +export { BlurCsvImporter } from "./blur-csv-importer"; +export { ButtercupCsvImporter } from "./buttercup-csv-importer"; +export { ClipperzHtmlImporter } from "./clipperz-html-importer"; +export { CodebookCsvImporter } from "./codebook-csv-importer"; +export { DashlaneCsvImporter, DashlaneJsonImporter } from "./dashlane"; +export { EncryptrCsvImporter } from "./encryptr-csv-importer"; +export { EnpassCsvImporter, EnpassJsonImporter } from "./enpass"; +export { FirefoxCsvImporter } from "./firefox-csv-importer"; +export { FSecureFskImporter } from "./fsecure/fsecure-fsk-importer"; +export { GnomeJsonImporter } from "./gnome-json-importer"; +export { KasperskyTxtImporter } from "./kaspersky-txt-importer"; +export { KeePass2XmlImporter } from "./keepass2-xml-importer"; +export { KeePassXCsvImporter } from "./keepassx-csv-importer"; +export { KeeperCsvImporter, KeeperJsonImporter } from "./keeper"; +export { LastPassCsvImporter } from "./lastpass-csv-importer"; +export { LogMeOnceCsvImporter } from "./logmeonce-csv-importer"; +export { MeldiumCsvImporter } from "./meldium-csv-importer"; +export { MSecureCsvImporter } from "./msecure-csv-importer"; +export { MykiCsvImporter } from "./myki-csv-importer"; +export { NordPassCsvImporter } from "./nordpass-csv-importer"; +export { + OnePassword1PifImporter, + OnePassword1PuxImporter, + OnePasswordMacCsvImporter, + OnePasswordWinCsvImporter, +} from "./onepassword"; +export { PadlockCsvImporter } from "./padlock-csv-importer"; +export { PassKeepCsvImporter } from "./passkeep-csv-importer"; +export { PasskyJsonImporter } from "./passky/passky-json-importer"; +export { PassmanJsonImporter } from "./passman-json-importer"; +export { PasspackCsvImporter } from "./passpack-csv-importer"; +export { PasswordAgentCsvImporter } from "./passwordagent-csv-importer"; +export { PasswordBossJsonImporter } from "./passwordboss-json-importer"; +export { PasswordDragonXmlImporter } from "./passworddragon-xml-importer"; +export { PasswordSafeXmlImporter } from "./passwordsafe-xml-importer"; +export { PasswordWalletTxtImporter } from "./passwordwallet-txt-importer"; +export { PsonoJsonImporter } from "./psono/psono-json-importer"; +export { RememBearCsvImporter } from "./remembear-csv-importer"; +export { RoboFormCsvImporter } from "./roboform-csv-importer"; +export { SafariCsvImporter } from "./safari-csv-importer"; +export { SafeInCloudXmlImporter } from "./safeincloud-xml-importer"; +export { SaferPassCsvImporter } from "./saferpass-csv-importer"; +export { SecureSafeCsvImporter } from "./securesafe-csv-importer"; +export { SplashIdCsvImporter } from "./splashid-csv-importer"; +export { StickyPasswordXmlImporter } from "./stickypassword-xml-importer"; +export { TrueKeyCsvImporter } from "./truekey-csv-importer"; +export { UpmCsvImporter } from "./upm-csv-importer"; +export { YotiCsvImporter } from "./yoti-csv-importer"; +export { ZohoVaultCsvImporter } from "./zohovault-csv-importer"; diff --git a/libs/common/src/importers/kaspersky-txt-importer.ts b/libs/importer/src/importers/kaspersky-txt-importer.ts similarity index 98% rename from libs/common/src/importers/kaspersky-txt-importer.ts rename to libs/importer/src/importers/kaspersky-txt-importer.ts index 34f501883579..874ad976ccb7 100644 --- a/libs/common/src/importers/kaspersky-txt-importer.ts +++ b/libs/importer/src/importers/kaspersky-txt-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/keepass2-xml-importer.ts b/libs/importer/src/importers/keepass2-xml-importer.ts similarity index 95% rename from libs/common/src/importers/keepass2-xml-importer.ts rename to libs/importer/src/importers/keepass2-xml-importer.ts index 501734067927..73c10ee79cc9 100644 --- a/libs/common/src/importers/keepass2-xml-importer.ts +++ b/libs/importer/src/importers/keepass2-xml-importer.ts @@ -1,6 +1,7 @@ -import { FieldType } from "../enums/fieldType"; -import { ImportResult } from "../models/domain/import-result"; -import { FolderView } from "../vault/models/view/folder.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/keepassx-csv-importer.ts b/libs/importer/src/importers/keepassx-csv-importer.ts similarity index 95% rename from libs/common/src/importers/keepassx-csv-importer.ts rename to libs/importer/src/importers/keepassx-csv-importer.ts index 6bbdd73a0846..4047a49d5728 100644 --- a/libs/common/src/importers/keepassx-csv-importer.ts +++ b/libs/importer/src/importers/keepassx-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/importer/src/importers/keeper/index.ts b/libs/importer/src/importers/keeper/index.ts new file mode 100644 index 000000000000..7fcd34218700 --- /dev/null +++ b/libs/importer/src/importers/keeper/index.ts @@ -0,0 +1,2 @@ +export { KeeperCsvImporter } from "./keeper-csv-importer"; +export { KeeperJsonImporter } from "./keeper-json-importer"; diff --git a/libs/common/src/importers/keeper/keeper-csv-importer.ts b/libs/importer/src/importers/keeper/keeper-csv-importer.ts similarity index 95% rename from libs/common/src/importers/keeper/keeper-csv-importer.ts rename to libs/importer/src/importers/keeper/keeper-csv-importer.ts index ea082b990986..6c265ac31f59 100644 --- a/libs/common/src/importers/keeper/keeper-csv-importer.ts +++ b/libs/importer/src/importers/keeper/keeper-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../../models/domain/import-result"; +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/keeper/keeper-json-importer.ts b/libs/importer/src/importers/keeper/keeper-json-importer.ts similarity index 96% rename from libs/common/src/importers/keeper/keeper-json-importer.ts rename to libs/importer/src/importers/keeper/keeper-json-importer.ts index 0011044dde6a..00c40e96937a 100644 --- a/libs/common/src/importers/keeper/keeper-json-importer.ts +++ b/libs/importer/src/importers/keeper/keeper-json-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../../models/domain/import-result"; +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/keeper/types/keeper-json-types.ts b/libs/importer/src/importers/keeper/types/keeper-json-types.ts similarity index 100% rename from libs/common/src/importers/keeper/types/keeper-json-types.ts rename to libs/importer/src/importers/keeper/types/keeper-json-types.ts diff --git a/libs/common/src/importers/lastpass-csv-importer.ts b/libs/importer/src/importers/lastpass-csv-importer.ts similarity index 93% rename from libs/common/src/importers/lastpass-csv-importer.ts rename to libs/importer/src/importers/lastpass-csv-importer.ts index a846a7d56044..3346b82cf7dd 100644 --- a/libs/common/src/importers/lastpass-csv-importer.ts +++ b/libs/importer/src/importers/lastpass-csv-importer.ts @@ -1,12 +1,13 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { FolderView } from "../vault/models/view/folder.view"; -import { IdentityView } from "../vault/models/view/identity.view"; -import { LoginView } from "../vault/models/view/login.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/logmeonce-csv-importer.ts b/libs/importer/src/importers/logmeonce-csv-importer.ts similarity index 93% rename from libs/common/src/importers/logmeonce-csv-importer.ts rename to libs/importer/src/importers/logmeonce-csv-importer.ts index d1ff293e0212..a8a9e7bcad30 100644 --- a/libs/common/src/importers/logmeonce-csv-importer.ts +++ b/libs/importer/src/importers/logmeonce-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/meldium-csv-importer.ts b/libs/importer/src/importers/meldium-csv-importer.ts similarity index 93% rename from libs/common/src/importers/meldium-csv-importer.ts rename to libs/importer/src/importers/meldium-csv-importer.ts index af460c71e16d..2ba73624e603 100644 --- a/libs/common/src/importers/meldium-csv-importer.ts +++ b/libs/importer/src/importers/meldium-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/msecure-csv-importer.ts b/libs/importer/src/importers/msecure-csv-importer.ts similarity index 86% rename from libs/common/src/importers/msecure-csv-importer.ts rename to libs/importer/src/importers/msecure-csv-importer.ts index 52c397beafeb..9063ba5edae3 100644 --- a/libs/common/src/importers/msecure-csv-importer.ts +++ b/libs/importer/src/importers/msecure-csv-importer.ts @@ -1,7 +1,8 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/myki-csv-importer.ts b/libs/importer/src/importers/myki-csv-importer.ts similarity index 91% rename from libs/common/src/importers/myki-csv-importer.ts rename to libs/importer/src/importers/myki-csv-importer.ts index e419a2921b4e..cea29a6e162f 100644 --- a/libs/common/src/importers/myki-csv-importer.ts +++ b/libs/importer/src/importers/myki-csv-importer.ts @@ -1,10 +1,11 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { IdentityView } from "../vault/models/view/identity.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/nordpass-csv-importer.ts b/libs/importer/src/importers/nordpass-csv-importer.ts similarity index 91% rename from libs/common/src/importers/nordpass-csv-importer.ts rename to libs/importer/src/importers/nordpass-csv-importer.ts index bea4b8685f9d..895f095de738 100644 --- a/libs/common/src/importers/nordpass-csv-importer.ts +++ b/libs/importer/src/importers/nordpass-csv-importer.ts @@ -1,8 +1,9 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { LoginView } from "../vault/models/view/login.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/onepassword/cipher-import-context.ts b/libs/importer/src/importers/onepassword/cipher-import-context.ts similarity index 72% rename from libs/common/src/importers/onepassword/cipher-import-context.ts rename to libs/importer/src/importers/onepassword/cipher-import-context.ts index d8eb22caad63..db52d969bc84 100644 --- a/libs/common/src/importers/onepassword/cipher-import-context.ts +++ b/libs/importer/src/importers/onepassword/cipher-import-context.ts @@ -1,4 +1,4 @@ -import { CipherView } from "../../vault/models/view/cipher.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; export class CipherImportContext { lowerProperty: string; diff --git a/libs/importer/src/importers/onepassword/index.ts b/libs/importer/src/importers/onepassword/index.ts new file mode 100644 index 000000000000..e93093364354 --- /dev/null +++ b/libs/importer/src/importers/onepassword/index.ts @@ -0,0 +1,5 @@ +export { OnePassword1PifImporter } from "./onepassword-1pif-importer"; +export { OnePassword1PuxImporter } from "./onepassword-1pux-importer"; +export { OnePasswordCsvImporter } from "./onepassword-csv-importer"; +export { OnePasswordMacCsvImporter } from "./onepassword-mac-csv-importer"; +export { OnePasswordWinCsvImporter } from "./onepassword-win-csv-importer"; diff --git a/libs/common/src/importers/onepassword/onepassword-1pif-importer.ts b/libs/importer/src/importers/onepassword/onepassword-1pif-importer.ts similarity index 93% rename from libs/common/src/importers/onepassword/onepassword-1pif-importer.ts rename to libs/importer/src/importers/onepassword/onepassword-1pif-importer.ts index f2e8c66222a6..c675a20d301f 100644 --- a/libs/common/src/importers/onepassword/onepassword-1pif-importer.ts +++ b/libs/importer/src/importers/onepassword/onepassword-1pif-importer.ts @@ -1,12 +1,13 @@ -import { FieldType } from "../../enums/fieldType"; -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; -import { PasswordHistoryView } from "../../vault/models/view/password-history.view"; -import { SecureNoteView } from "../../vault/models/view/secure-note.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { PasswordHistoryView } from "@bitwarden/common/vault/models/view/password-history.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/onepassword/onepassword-1pux-importer.ts b/libs/importer/src/importers/onepassword/onepassword-1pux-importer.ts similarity index 95% rename from libs/common/src/importers/onepassword/onepassword-1pux-importer.ts rename to libs/importer/src/importers/onepassword/onepassword-1pux-importer.ts index 9e516e53e322..dcafa1e33d2e 100644 --- a/libs/common/src/importers/onepassword/onepassword-1pux-importer.ts +++ b/libs/importer/src/importers/onepassword/onepassword-1pux-importer.ts @@ -1,14 +1,15 @@ -import { FieldType } from "../../enums/fieldType"; -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherRepromptType } from "../../vault/enums/cipher-reprompt-type"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; -import { LoginView } from "../../vault/models/view/login.view"; -import { PasswordHistoryView } from "../../vault/models/view/password-history.view"; -import { SecureNoteView } from "../../vault/models/view/secure-note.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherRepromptType } from "@bitwarden/common/vault/enums/cipher-reprompt-type"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; +import { PasswordHistoryView } from "@bitwarden/common/vault/models/view/password-history.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/onepassword/onepassword-csv-importer.ts b/libs/importer/src/importers/onepassword/onepassword-csv-importer.ts similarity index 97% rename from libs/common/src/importers/onepassword/onepassword-csv-importer.ts rename to libs/importer/src/importers/onepassword/onepassword-csv-importer.ts index 31ba984db739..8104407e4697 100644 --- a/libs/common/src/importers/onepassword/onepassword-csv-importer.ts +++ b/libs/importer/src/importers/onepassword/onepassword-csv-importer.ts @@ -1,7 +1,8 @@ -import { FieldType } from "../../enums/fieldType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CipherView } from "../../vault/models/view/cipher.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/onepassword/onepassword-mac-csv-importer.ts b/libs/importer/src/importers/onepassword/onepassword-mac-csv-importer.ts similarity index 73% rename from libs/common/src/importers/onepassword/onepassword-mac-csv-importer.ts rename to libs/importer/src/importers/onepassword/onepassword-mac-csv-importer.ts index 8a6388c374c7..601ba77d8329 100644 --- a/libs/common/src/importers/onepassword/onepassword-mac-csv-importer.ts +++ b/libs/importer/src/importers/onepassword/onepassword-mac-csv-importer.ts @@ -1,7 +1,8 @@ -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; + import { Importer } from "../importer"; import { IgnoredProperties, OnePasswordCsvImporter } from "./onepassword-csv-importer"; diff --git a/libs/common/src/importers/onepassword/onepassword-win-csv-importer.ts b/libs/importer/src/importers/onepassword/onepassword-win-csv-importer.ts similarity index 84% rename from libs/common/src/importers/onepassword/onepassword-win-csv-importer.ts rename to libs/importer/src/importers/onepassword/onepassword-win-csv-importer.ts index b46d162aa9f7..f2ae98cd45df 100644 --- a/libs/common/src/importers/onepassword/onepassword-win-csv-importer.ts +++ b/libs/importer/src/importers/onepassword/onepassword-win-csv-importer.ts @@ -1,8 +1,9 @@ -import { CipherType } from "../../vault/enums/cipher-type"; -import { CardView } from "../../vault/models/view/card.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { IdentityView } from "../../vault/models/view/identity.view"; -import { LoginView } from "../../vault/models/view/login.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { IdentityView } from "@bitwarden/common/vault/models/view/identity.view"; +import { LoginView } from "@bitwarden/common/vault/models/view/login.view"; + import { Importer } from "../importer"; import { CipherImportContext } from "./cipher-import-context"; diff --git a/libs/common/src/importers/onepassword/types/onepassword-1pux-importer-types.ts b/libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts similarity index 100% rename from libs/common/src/importers/onepassword/types/onepassword-1pux-importer-types.ts rename to libs/importer/src/importers/onepassword/types/onepassword-1pux-importer-types.ts diff --git a/libs/common/src/importers/padlock-csv-importer.ts b/libs/importer/src/importers/padlock-csv-importer.ts similarity index 94% rename from libs/common/src/importers/padlock-csv-importer.ts rename to libs/importer/src/importers/padlock-csv-importer.ts index 0cca4dec822c..7b81041f9f19 100644 --- a/libs/common/src/importers/padlock-csv-importer.ts +++ b/libs/importer/src/importers/padlock-csv-importer.ts @@ -1,5 +1,6 @@ -import { CollectionView } from "../admin-console/models/view/collection.view"; -import { ImportResult } from "../models/domain/import-result"; +import { CollectionView } from "@bitwarden/common/admin-console/models/view/collection.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passkeep-csv-importer.ts b/libs/importer/src/importers/passkeep-csv-importer.ts similarity index 95% rename from libs/common/src/importers/passkeep-csv-importer.ts rename to libs/importer/src/importers/passkeep-csv-importer.ts index c7269fa4ec0c..96ee475e6c3f 100644 --- a/libs/common/src/importers/passkeep-csv-importer.ts +++ b/libs/importer/src/importers/passkeep-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passky/passky-json-importer.ts b/libs/importer/src/importers/passky/passky-json-importer.ts similarity index 95% rename from libs/common/src/importers/passky/passky-json-importer.ts rename to libs/importer/src/importers/passky/passky-json-importer.ts index 01a7f0d1cd52..a074bac2a011 100644 --- a/libs/common/src/importers/passky/passky-json-importer.ts +++ b/libs/importer/src/importers/passky/passky-json-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../../models/domain/import-result"; +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/passky/passky-json-types.ts b/libs/importer/src/importers/passky/passky-json-types.ts similarity index 100% rename from libs/common/src/importers/passky/passky-json-types.ts rename to libs/importer/src/importers/passky/passky-json-types.ts diff --git a/libs/common/src/importers/passman-json-importer.ts b/libs/importer/src/importers/passman-json-importer.ts similarity index 96% rename from libs/common/src/importers/passman-json-importer.ts rename to libs/importer/src/importers/passman-json-importer.ts index 6cc1e225224e..9f210d7f5d0b 100644 --- a/libs/common/src/importers/passman-json-importer.ts +++ b/libs/importer/src/importers/passman-json-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passpack-csv-importer.ts b/libs/importer/src/importers/passpack-csv-importer.ts similarity index 95% rename from libs/common/src/importers/passpack-csv-importer.ts rename to libs/importer/src/importers/passpack-csv-importer.ts index 628cdcf2b6d6..f08de898eb69 100644 --- a/libs/common/src/importers/passpack-csv-importer.ts +++ b/libs/importer/src/importers/passpack-csv-importer.ts @@ -1,5 +1,6 @@ -import { CollectionView } from "../admin-console/models/view/collection.view"; -import { ImportResult } from "../models/domain/import-result"; +import { CollectionView } from "@bitwarden/common/admin-console/models/view/collection.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passwordagent-csv-importer.ts b/libs/importer/src/importers/passwordagent-csv-importer.ts similarity index 96% rename from libs/common/src/importers/passwordagent-csv-importer.ts rename to libs/importer/src/importers/passwordagent-csv-importer.ts index 358ee09c8413..ed7577927195 100644 --- a/libs/common/src/importers/passwordagent-csv-importer.ts +++ b/libs/importer/src/importers/passwordagent-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passwordboss-json-importer.ts b/libs/importer/src/importers/passwordboss-json-importer.ts similarity index 93% rename from libs/common/src/importers/passwordboss-json-importer.ts rename to libs/importer/src/importers/passwordboss-json-importer.ts index a9c25e21cfd2..f819408d22bf 100644 --- a/libs/common/src/importers/passwordboss-json-importer.ts +++ b/libs/importer/src/importers/passwordboss-json-importer.ts @@ -1,7 +1,8 @@ -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; -import { FolderView } from "../vault/models/view/folder.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passworddragon-xml-importer.ts b/libs/importer/src/importers/passworddragon-xml-importer.ts similarity index 97% rename from libs/common/src/importers/passworddragon-xml-importer.ts rename to libs/importer/src/importers/passworddragon-xml-importer.ts index 17e177524744..40cf8983a4d3 100644 --- a/libs/common/src/importers/passworddragon-xml-importer.ts +++ b/libs/importer/src/importers/passworddragon-xml-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passwordsafe-xml-importer.ts b/libs/importer/src/importers/passwordsafe-xml-importer.ts similarity index 97% rename from libs/common/src/importers/passwordsafe-xml-importer.ts rename to libs/importer/src/importers/passwordsafe-xml-importer.ts index 49b6cb64f640..feefafec15df 100644 --- a/libs/common/src/importers/passwordsafe-xml-importer.ts +++ b/libs/importer/src/importers/passwordsafe-xml-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/passwordwallet-txt-importer.ts b/libs/importer/src/importers/passwordwallet-txt-importer.ts similarity index 95% rename from libs/common/src/importers/passwordwallet-txt-importer.ts rename to libs/importer/src/importers/passwordwallet-txt-importer.ts index 2756c99949fc..f775db3280cd 100644 --- a/libs/common/src/importers/passwordwallet-txt-importer.ts +++ b/libs/importer/src/importers/passwordwallet-txt-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/psono/psono-json-importer.ts b/libs/importer/src/importers/psono/psono-json-importer.ts similarity index 94% rename from libs/common/src/importers/psono/psono-json-importer.ts rename to libs/importer/src/importers/psono/psono-json-importer.ts index 517a3a5a5f58..6bafef75c40c 100644 --- a/libs/common/src/importers/psono/psono-json-importer.ts +++ b/libs/importer/src/importers/psono/psono-json-importer.ts @@ -1,9 +1,10 @@ -import { FieldType } from "../../enums/fieldType"; -import { SecureNoteType } from "../../enums/secureNoteType"; -import { ImportResult } from "../../models/domain/import-result"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { SecureNoteView } from "../../vault/models/view/secure-note.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../../models/import-result"; import { BaseImporter } from "../base-importer"; import { Importer } from "../importer"; diff --git a/libs/common/src/importers/psono/psono-json-types.ts b/libs/importer/src/importers/psono/psono-json-types.ts similarity index 100% rename from libs/common/src/importers/psono/psono-json-types.ts rename to libs/importer/src/importers/psono/psono-json-types.ts diff --git a/libs/common/src/importers/remembear-csv-importer.ts b/libs/importer/src/importers/remembear-csv-importer.ts similarity index 92% rename from libs/common/src/importers/remembear-csv-importer.ts rename to libs/importer/src/importers/remembear-csv-importer.ts index 7720fc79b80e..236245f23082 100644 --- a/libs/common/src/importers/remembear-csv-importer.ts +++ b/libs/importer/src/importers/remembear-csv-importer.ts @@ -1,6 +1,7 @@ -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/roboform-csv-importer.ts b/libs/importer/src/importers/roboform-csv-importer.ts similarity index 97% rename from libs/common/src/importers/roboform-csv-importer.ts rename to libs/importer/src/importers/roboform-csv-importer.ts index 01d3d8dc7c32..84f2cdd37603 100644 --- a/libs/common/src/importers/roboform-csv-importer.ts +++ b/libs/importer/src/importers/roboform-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/safari-csv-importer.ts b/libs/importer/src/importers/safari-csv-importer.ts similarity index 94% rename from libs/common/src/importers/safari-csv-importer.ts rename to libs/importer/src/importers/safari-csv-importer.ts index 09f5dacbe2ba..e959b41666c2 100644 --- a/libs/common/src/importers/safari-csv-importer.ts +++ b/libs/importer/src/importers/safari-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/safeincloud-xml-importer.ts b/libs/importer/src/importers/safeincloud-xml-importer.ts similarity index 88% rename from libs/common/src/importers/safeincloud-xml-importer.ts rename to libs/importer/src/importers/safeincloud-xml-importer.ts index 39a48df3480d..df73267122ed 100644 --- a/libs/common/src/importers/safeincloud-xml-importer.ts +++ b/libs/importer/src/importers/safeincloud-xml-importer.ts @@ -1,11 +1,12 @@ -import { FieldType } from "../enums/fieldType"; -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CipherView } from "../vault/models/view/cipher.view"; -import { FieldView } from "../vault/models/view/field.view"; -import { FolderView } from "../vault/models/view/folder.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { FieldType } from "@bitwarden/common/enums/fieldType"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FieldView } from "@bitwarden/common/vault/models/view/field.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/saferpass-csv-importer.ts b/libs/importer/src/importers/saferpass-csv-importer.ts similarity index 93% rename from libs/common/src/importers/saferpass-csv-importer.ts rename to libs/importer/src/importers/saferpass-csv-importer.ts index 2da953ea6f73..721d52a9278c 100644 --- a/libs/common/src/importers/saferpass-csv-importer.ts +++ b/libs/importer/src/importers/saferpass-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/securesafe-csv-importer.ts b/libs/importer/src/importers/securesafe-csv-importer.ts similarity index 93% rename from libs/common/src/importers/securesafe-csv-importer.ts rename to libs/importer/src/importers/securesafe-csv-importer.ts index 062c9dafa7cf..cb5aab503d72 100644 --- a/libs/common/src/importers/securesafe-csv-importer.ts +++ b/libs/importer/src/importers/securesafe-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/splashid-csv-importer.ts b/libs/importer/src/importers/splashid-csv-importer.ts similarity index 92% rename from libs/common/src/importers/splashid-csv-importer.ts rename to libs/importer/src/importers/splashid-csv-importer.ts index 8708b56c34e2..f74f4d0facd2 100644 --- a/libs/common/src/importers/splashid-csv-importer.ts +++ b/libs/importer/src/importers/splashid-csv-importer.ts @@ -1,5 +1,6 @@ -import { ImportResult } from "../models/domain/import-result"; -import { CipherView } from "../vault/models/view/cipher.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/stickypassword-xml-importer.ts b/libs/importer/src/importers/stickypassword-xml-importer.ts similarity index 97% rename from libs/common/src/importers/stickypassword-xml-importer.ts rename to libs/importer/src/importers/stickypassword-xml-importer.ts index a9bbd22ec583..c8a81a6fe82a 100644 --- a/libs/common/src/importers/stickypassword-xml-importer.ts +++ b/libs/importer/src/importers/stickypassword-xml-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/truekey-csv-importer.ts b/libs/importer/src/importers/truekey-csv-importer.ts similarity index 88% rename from libs/common/src/importers/truekey-csv-importer.ts rename to libs/importer/src/importers/truekey-csv-importer.ts index 4b1bb4cbd440..2028882d3dd3 100644 --- a/libs/common/src/importers/truekey-csv-importer.ts +++ b/libs/importer/src/importers/truekey-csv-importer.ts @@ -1,8 +1,9 @@ -import { SecureNoteType } from "../enums/secureNoteType"; -import { ImportResult } from "../models/domain/import-result"; -import { CipherType } from "../vault/enums/cipher-type"; -import { CardView } from "../vault/models/view/card.view"; -import { SecureNoteView } from "../vault/models/view/secure-note.view"; +import { SecureNoteType } from "@bitwarden/common/enums/secureNoteType"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CardView } from "@bitwarden/common/vault/models/view/card.view"; +import { SecureNoteView } from "@bitwarden/common/vault/models/view/secure-note.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/upm-csv-importer.ts b/libs/importer/src/importers/upm-csv-importer.ts similarity index 93% rename from libs/common/src/importers/upm-csv-importer.ts rename to libs/importer/src/importers/upm-csv-importer.ts index b326ddbac104..7cfaa91254d4 100644 --- a/libs/common/src/importers/upm-csv-importer.ts +++ b/libs/importer/src/importers/upm-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/yoti-csv-importer.ts b/libs/importer/src/importers/yoti-csv-importer.ts similarity index 93% rename from libs/common/src/importers/yoti-csv-importer.ts rename to libs/importer/src/importers/yoti-csv-importer.ts index 868b804baf60..42c4d5a8df3b 100644 --- a/libs/common/src/importers/yoti-csv-importer.ts +++ b/libs/importer/src/importers/yoti-csv-importer.ts @@ -1,4 +1,4 @@ -import { ImportResult } from "../models/domain/import-result"; +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/common/src/importers/zohovault-csv-importer.ts b/libs/importer/src/importers/zohovault-csv-importer.ts similarity index 94% rename from libs/common/src/importers/zohovault-csv-importer.ts rename to libs/importer/src/importers/zohovault-csv-importer.ts index 3387016a6773..cfbd851e6104 100644 --- a/libs/common/src/importers/zohovault-csv-importer.ts +++ b/libs/importer/src/importers/zohovault-csv-importer.ts @@ -1,5 +1,6 @@ -import { ImportResult } from "../models/domain/import-result"; -import { CipherView } from "../vault/models/view/cipher.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; + +import { ImportResult } from "../models/import-result"; import { BaseImporter } from "./base-importer"; import { Importer } from "./importer"; diff --git a/libs/importer/src/index.ts b/libs/importer/src/index.ts new file mode 100644 index 000000000000..685cb5e6268e --- /dev/null +++ b/libs/importer/src/index.ts @@ -0,0 +1,11 @@ +export { ImportType, ImportOption } from "./models/import-options"; + +export { ImportError } from "./models/import-error"; + +export { ImportApiServiceAbstraction } from "./services/import-api.service.abstraction"; +export { ImportApiService } from "./services/import-api.service"; + +export { ImportServiceAbstraction } from "./services/import.service.abstraction"; +export { ImportService } from "./services/import.service"; + +export { Importer } from "./importers/importer"; diff --git a/libs/common/src/importers/import-error.ts b/libs/importer/src/models/import-error.ts similarity index 100% rename from libs/common/src/importers/import-error.ts rename to libs/importer/src/models/import-error.ts diff --git a/libs/common/src/enums/importOptions.ts b/libs/importer/src/models/import-options.ts similarity index 100% rename from libs/common/src/enums/importOptions.ts rename to libs/importer/src/models/import-options.ts diff --git a/libs/common/src/models/domain/import-result.ts b/libs/importer/src/models/import-result.ts similarity index 54% rename from libs/common/src/models/domain/import-result.ts rename to libs/importer/src/models/import-result.ts index cb731d2eb5ca..61691176357d 100644 --- a/libs/common/src/models/domain/import-result.ts +++ b/libs/importer/src/models/import-result.ts @@ -1,6 +1,6 @@ -import { CollectionView } from "../../admin-console/models/view/collection.view"; -import { CipherView } from "../../vault/models/view/cipher.view"; -import { FolderView } from "../../vault/models/view/folder.view"; +import { CollectionView } from "@bitwarden/common/admin-console/models/view/collection.view"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; +import { FolderView } from "@bitwarden/common/vault/models/view/folder.view"; export class ImportResult { success = false; diff --git a/libs/common/src/abstractions/import/import-api.service.abstraction.ts b/libs/importer/src/services/import-api.service.abstraction.ts similarity index 54% rename from libs/common/src/abstractions/import/import-api.service.abstraction.ts rename to libs/importer/src/services/import-api.service.abstraction.ts index 041284d57a0b..45142b309122 100644 --- a/libs/common/src/abstractions/import/import-api.service.abstraction.ts +++ b/libs/importer/src/services/import-api.service.abstraction.ts @@ -1,5 +1,5 @@ -import { ImportCiphersRequest } from "../../models/request/import-ciphers.request"; -import { ImportOrganizationCiphersRequest } from "../../models/request/import-organization-ciphers.request"; +import { ImportCiphersRequest } from "@bitwarden/common/models/request/import-ciphers.request"; +import { ImportOrganizationCiphersRequest } from "@bitwarden/common/models/request/import-organization-ciphers.request"; export abstract class ImportApiServiceAbstraction { postImportCiphers: (request: ImportCiphersRequest) => Promise; diff --git a/libs/common/src/services/import/import-api.service.ts b/libs/importer/src/services/import-api.service.ts similarity index 61% rename from libs/common/src/services/import/import-api.service.ts rename to libs/importer/src/services/import-api.service.ts index 80342b1d1f02..da9506110792 100644 --- a/libs/common/src/services/import/import-api.service.ts +++ b/libs/importer/src/services/import-api.service.ts @@ -1,7 +1,8 @@ -import { ApiService } from "../../abstractions/api.service"; -import { ImportApiServiceAbstraction } from "../../abstractions/import/import-api.service.abstraction"; -import { ImportCiphersRequest } from "../../models/request/import-ciphers.request"; -import { ImportOrganizationCiphersRequest } from "../../models/request/import-organization-ciphers.request"; +import { ApiService } from "@bitwarden/common/abstractions/api.service"; +import { ImportCiphersRequest } from "@bitwarden/common/models/request/import-ciphers.request"; +import { ImportOrganizationCiphersRequest } from "@bitwarden/common/models/request/import-organization-ciphers.request"; + +import { ImportApiServiceAbstraction } from "./import-api.service.abstraction"; export class ImportApiService implements ImportApiServiceAbstraction { constructor(private apiService: ApiService) {} diff --git a/libs/common/src/abstractions/import/import.service.abstraction.ts b/libs/importer/src/services/import.service.abstraction.ts similarity index 64% rename from libs/common/src/abstractions/import/import.service.abstraction.ts rename to libs/importer/src/services/import.service.abstraction.ts index 1c301856b5de..c4b9d393561b 100644 --- a/libs/common/src/abstractions/import/import.service.abstraction.ts +++ b/libs/importer/src/services/import.service.abstraction.ts @@ -1,8 +1,8 @@ -import { ImportOption, ImportType } from "../../enums/importOptions"; -import { ImportError } from "../../importers/import-error"; -import { Importer } from "../../importers/importer"; +import { Importer } from "../importers/importer"; +import { ImportError } from "../models/import-error"; +import { ImportOption, ImportType } from "../models/import-options"; -export abstract class ImportService { +export abstract class ImportServiceAbstraction { featuredImportOptions: readonly ImportOption[]; regularImportOptions: readonly ImportOption[]; getImportOptions: () => ImportOption[]; diff --git a/libs/common/spec/services/import.service.spec.ts b/libs/importer/src/services/import.service.spec.ts similarity index 86% rename from libs/common/spec/services/import.service.spec.ts rename to libs/importer/src/services/import.service.spec.ts index 98620d106461..2ba0f960ca77 100644 --- a/libs/common/spec/services/import.service.spec.ts +++ b/libs/importer/src/services/import.service.spec.ts @@ -3,15 +3,17 @@ import { Substitute, SubstituteOf } from "@fluffy-spoon/substitute"; import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; -import { ImportApiServiceAbstraction } from "@bitwarden/common/abstractions/import/import-api.service.abstraction"; import { CollectionService } from "@bitwarden/common/admin-console/abstractions/collection.service"; -import { BitwardenPasswordProtectedImporter } from "@bitwarden/common/importers/bitwarden-password-protected-importer"; -import { Importer } from "@bitwarden/common/importers/importer"; import { Utils } from "@bitwarden/common/misc/utils"; -import { ImportService } from "@bitwarden/common/services/import/import.service"; import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; +import { BitwardenPasswordProtectedImporter } from "../importers/bitwarden/bitwarden-password-protected-importer"; +import { Importer } from "../importers/importer"; + +import { ImportApiServiceAbstraction } from "./import-api.service.abstraction"; +import { ImportService } from "./import.service"; + describe("ImportService", () => { let importService: ImportService; let cipherService: SubstituteOf; diff --git a/libs/common/src/services/import/import.service.ts b/libs/importer/src/services/import.service.ts similarity index 62% rename from libs/common/src/services/import/import.service.ts rename to libs/importer/src/services/import.service.ts index e05e5857493e..7a8b57097663 100644 --- a/libs/common/src/services/import/import.service.ts +++ b/libs/importer/src/services/import.service.ts @@ -1,87 +1,91 @@ -import { CryptoService } from "../../abstractions/crypto.service"; -import { I18nService } from "../../abstractions/i18n.service"; -import { ImportApiServiceAbstraction } from "../../abstractions/import/import-api.service.abstraction"; -import { ImportService as ImportServiceAbstraction } from "../../abstractions/import/import.service.abstraction"; -import { CollectionService } from "../../admin-console/abstractions/collection.service"; -import { CollectionRequest } from "../../admin-console/models/request/collection.request"; +import { CryptoService } from "@bitwarden/common/abstractions/crypto.service"; +import { I18nService } from "@bitwarden/common/abstractions/i18n.service"; +import { CollectionService } from "@bitwarden/common/admin-console/abstractions/collection.service"; +import { CollectionRequest } from "@bitwarden/common/admin-console/models/request/collection.request"; +import { Utils } from "@bitwarden/common/misc/utils"; +import { ImportCiphersRequest } from "@bitwarden/common/models/request/import-ciphers.request"; +import { ImportOrganizationCiphersRequest } from "@bitwarden/common/models/request/import-organization-ciphers.request"; +import { KvpRequest } from "@bitwarden/common/models/request/kvp.request"; +import { ErrorResponse } from "@bitwarden/common/models/response/error.response"; +import { CipherService } from "@bitwarden/common/vault/abstractions/cipher.service"; +import { FolderService } from "@bitwarden/common/vault/abstractions/folder/folder.service.abstraction"; +import { CipherType } from "@bitwarden/common/vault/enums/cipher-type"; +import { CipherRequest } from "@bitwarden/common/vault/models/request/cipher.request"; +import { FolderRequest } from "@bitwarden/common/vault/models/request/folder.request"; +import { CipherView } from "@bitwarden/common/vault/models/view/cipher.view"; + +import { + AscendoCsvImporter, + AvastCsvImporter, + AvastJsonImporter, + AviraCsvImporter, + BitwardenCsvImporter, + BitwardenJsonImporter, + BitwardenPasswordProtectedImporter, + BlackBerryCsvImporter, + BlurCsvImporter, + ButtercupCsvImporter, + ChromeCsvImporter, + ClipperzHtmlImporter, + CodebookCsvImporter, + DashlaneCsvImporter, + DashlaneJsonImporter, + EncryptrCsvImporter, + EnpassCsvImporter, + EnpassJsonImporter, + FirefoxCsvImporter, + FSecureFskImporter, + GnomeJsonImporter, + KasperskyTxtImporter, + KeePass2XmlImporter, + KeePassXCsvImporter, + KeeperCsvImporter, + // KeeperJsonImporter, + LastPassCsvImporter, + LogMeOnceCsvImporter, + MSecureCsvImporter, + MeldiumCsvImporter, + MykiCsvImporter, + NordPassCsvImporter, + OnePassword1PifImporter, + OnePassword1PuxImporter, + OnePasswordMacCsvImporter, + OnePasswordWinCsvImporter, + PadlockCsvImporter, + PassKeepCsvImporter, + PasskyJsonImporter, + PassmanJsonImporter, + PasspackCsvImporter, + PasswordAgentCsvImporter, + PasswordBossJsonImporter, + PasswordDragonXmlImporter, + PasswordSafeXmlImporter, + PasswordWalletTxtImporter, + PsonoJsonImporter, + RememBearCsvImporter, + RoboFormCsvImporter, + SafariCsvImporter, + SafeInCloudXmlImporter, + SaferPassCsvImporter, + SecureSafeCsvImporter, + SplashIdCsvImporter, + StickyPasswordXmlImporter, + TrueKeyCsvImporter, + UpmCsvImporter, + YotiCsvImporter, + ZohoVaultCsvImporter, +} from "../importers"; +import { Importer } from "../importers/importer"; +import { ImportError } from "../models/import-error"; import { featuredImportOptions, ImportOption, ImportType, regularImportOptions, -} from "../../enums/importOptions"; -import { AscendoCsvImporter } from "../../importers/ascendo-csv-importer"; -import { AvastCsvImporter } from "../../importers/avast-csv-importer"; -import { AvastJsonImporter } from "../../importers/avast-json-importer"; -import { AviraCsvImporter } from "../../importers/avira-csv-importer"; -import { BitwardenCsvImporter } from "../../importers/bitwarden-csv-importer"; -import { BitwardenJsonImporter } from "../../importers/bitwarden-json-importer"; -import { BitwardenPasswordProtectedImporter } from "../../importers/bitwarden-password-protected-importer"; -import { BlackBerryCsvImporter } from "../../importers/blackberry-csv-importer"; -import { BlurCsvImporter } from "../../importers/blur-csv-importer"; -import { ButtercupCsvImporter } from "../../importers/buttercup-csv-importer"; -import { ChromeCsvImporter } from "../../importers/chrome-csv-importer"; -import { ClipperzHtmlImporter } from "../../importers/clipperz-html-importer"; -import { CodebookCsvImporter } from "../../importers/codebook-csv-importer"; -import { DashlaneCsvImporter } from "../../importers/dashlane/dashlane-csv-importer"; -import { DashlaneJsonImporter } from "../../importers/dashlane/dashlane-json-importer"; -import { EncryptrCsvImporter } from "../../importers/encryptr-csv-importer"; -import { EnpassCsvImporter } from "../../importers/enpass/enpass-csv-importer"; -import { EnpassJsonImporter } from "../../importers/enpass/enpass-json-importer"; -import { FirefoxCsvImporter } from "../../importers/firefox-csv-importer"; -import { FSecureFskImporter } from "../../importers/fsecure/fsecure-fsk-importer"; -import { GnomeJsonImporter } from "../../importers/gnome-json-importer"; -import { ImportError } from "../../importers/import-error"; -import { Importer } from "../../importers/importer"; -import { KasperskyTxtImporter } from "../../importers/kaspersky-txt-importer"; -import { KeePass2XmlImporter } from "../../importers/keepass2-xml-importer"; -import { KeePassXCsvImporter } from "../../importers/keepassx-csv-importer"; -import { KeeperCsvImporter } from "../../importers/keeper/keeper-csv-importer"; -import { LastPassCsvImporter } from "../../importers/lastpass-csv-importer"; -import { LogMeOnceCsvImporter } from "../../importers/logmeonce-csv-importer"; -import { MeldiumCsvImporter } from "../../importers/meldium-csv-importer"; -import { MSecureCsvImporter } from "../../importers/msecure-csv-importer"; -import { MykiCsvImporter } from "../../importers/myki-csv-importer"; -import { NordPassCsvImporter } from "../../importers/nordpass-csv-importer"; -import { OnePassword1PifImporter } from "../../importers/onepassword/onepassword-1pif-importer"; -import { OnePassword1PuxImporter } from "../../importers/onepassword/onepassword-1pux-importer"; -import { OnePasswordMacCsvImporter } from "../../importers/onepassword/onepassword-mac-csv-importer"; -import { OnePasswordWinCsvImporter } from "../../importers/onepassword/onepassword-win-csv-importer"; -import { PadlockCsvImporter } from "../../importers/padlock-csv-importer"; -import { PassKeepCsvImporter } from "../../importers/passkeep-csv-importer"; -import { PasskyJsonImporter } from "../../importers/passky/passky-json-importer"; -import { PassmanJsonImporter } from "../../importers/passman-json-importer"; -import { PasspackCsvImporter } from "../../importers/passpack-csv-importer"; -import { PasswordAgentCsvImporter } from "../../importers/passwordagent-csv-importer"; -import { PasswordBossJsonImporter } from "../../importers/passwordboss-json-importer"; -import { PasswordDragonXmlImporter } from "../../importers/passworddragon-xml-importer"; -import { PasswordSafeXmlImporter } from "../../importers/passwordsafe-xml-importer"; -import { PasswordWalletTxtImporter } from "../../importers/passwordwallet-txt-importer"; -import { PsonoJsonImporter } from "../../importers/psono/psono-json-importer"; -import { RememBearCsvImporter } from "../../importers/remembear-csv-importer"; -import { RoboFormCsvImporter } from "../../importers/roboform-csv-importer"; -import { SafariCsvImporter } from "../../importers/safari-csv-importer"; -import { SafeInCloudXmlImporter } from "../../importers/safeincloud-xml-importer"; -import { SaferPassCsvImporter } from "../../importers/saferpass-csv-importer"; -import { SecureSafeCsvImporter } from "../../importers/securesafe-csv-importer"; -import { SplashIdCsvImporter } from "../../importers/splashid-csv-importer"; -import { StickyPasswordXmlImporter } from "../../importers/stickypassword-xml-importer"; -import { TrueKeyCsvImporter } from "../../importers/truekey-csv-importer"; -import { UpmCsvImporter } from "../../importers/upm-csv-importer"; -import { YotiCsvImporter } from "../../importers/yoti-csv-importer"; -import { ZohoVaultCsvImporter } from "../../importers/zohovault-csv-importer"; -import { Utils } from "../../misc/utils"; -import { ImportResult } from "../../models/domain/import-result"; -import { ImportCiphersRequest } from "../../models/request/import-ciphers.request"; -import { ImportOrganizationCiphersRequest } from "../../models/request/import-organization-ciphers.request"; -import { KvpRequest } from "../../models/request/kvp.request"; -import { ErrorResponse } from "../../models/response/error.response"; -import { CipherService } from "../../vault/abstractions/cipher.service"; -import { FolderService } from "../../vault/abstractions/folder/folder.service.abstraction"; -import { CipherType } from "../../vault/enums/cipher-type"; -import { CipherRequest } from "../../vault/models/request/cipher.request"; -import { FolderRequest } from "../../vault/models/request/folder.request"; -import { CipherView } from "../../vault/models/view/cipher.view"; +} from "../models/import-options"; +import { ImportResult } from "../models/import-result"; +import { ImportApiServiceAbstraction } from "../services/import-api.service.abstraction"; +import { ImportServiceAbstraction } from "../services/import.service.abstraction"; export class ImportService implements ImportServiceAbstraction { featuredImportOptions = featuredImportOptions as readonly ImportOption[]; diff --git a/libs/importer/tsconfig.json b/libs/importer/tsconfig.json new file mode 100644 index 000000000000..6004a56fb55d --- /dev/null +++ b/libs/importer/tsconfig.json @@ -0,0 +1,5 @@ +{ + "extends": "../shared/tsconfig.libs", + "include": ["src", "spec"], + "exclude": ["node_modules", "dist"] +} diff --git a/libs/importer/tsconfig.spec.json b/libs/importer/tsconfig.spec.json new file mode 100644 index 000000000000..fc8520e73765 --- /dev/null +++ b/libs/importer/tsconfig.spec.json @@ -0,0 +1,3 @@ +{ + "extends": "./tsconfig.json" +} diff --git a/libs/shared/tsconfig.libs.json b/libs/shared/tsconfig.libs.json index bb739dcfa2cb..8bcb1bcf0602 100644 --- a/libs/shared/tsconfig.libs.json +++ b/libs/shared/tsconfig.libs.json @@ -4,7 +4,8 @@ "paths": { "@bitwarden/common/*": ["../common/src/*"], "@bitwarden/angular/*": ["../angular/src/*"], - "@bitwarden/node/*": ["../node/src/*"] + "@bitwarden/node/*": ["../node/src/*"], + "@bitwarden/importer": ["../importer/src"] } } } diff --git a/package-lock.json b/package-lock.json index 39759dc38634..365ebd55350a 100644 --- a/package-lock.json +++ b/package-lock.json @@ -256,6 +256,14 @@ "name": "@bitwarden/components", "version": "0.0.0" }, + "libs/importer": { + "name": "@bitwarden/importer", + "version": "0.0.0", + "license": "GPL-3.0", + "dependencies": { + "@bitwarden/common": "file:../common" + } + }, "libs/node": { "name": "@bitwarden/node", "version": "0.0.0", @@ -3310,6 +3318,10 @@ "resolved": "apps/desktop/desktop_native", "link": true }, + "node_modules/@bitwarden/importer": { + "resolved": "libs/importer", + "link": true + }, "node_modules/@bitwarden/node": { "resolved": "libs/node", "link": true @@ -46981,6 +46993,12 @@ "@napi-rs/cli": "^2.6.2" } }, + "@bitwarden/importer": { + "version": "file:libs/importer", + "requires": { + "@bitwarden/common": "file:../common" + } + }, "@bitwarden/node": { "version": "file:libs/node", "requires": { diff --git a/tsconfig.json b/tsconfig.json index d0de75ce57b9..09805a4012fc 100644 --- a/tsconfig.json +++ b/tsconfig.json @@ -19,6 +19,7 @@ "@bitwarden/angular/*": ["./libs/angular/src/*"], "@bitwarden/node/*": ["./libs/node/src/*"], "@bitwarden/components": ["./libs/components/src"], + "@bitwarden/importer": ["./libs/importer/src"], "@bitwarden/web-vault/*": ["./apps/web/src/*"] }, "plugins": [ From 5d88fabe47f9b1198655bf96af02b77dfe4e6975 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Andr=C3=A9=20Bispo?= Date: Thu, 23 Mar 2023 11:02:51 +0000 Subject: [PATCH 02/39] [PM-107][PM-130] Remove fingerprint from request (#4910) * [PM-108] Fingerprint is calculated based on pubKey * [PM-108] Change userId to userEmail. Remove fingerprint from AuthResponse * [PM-130][PM-107] Remove fingerprint from request and clients UI --- .../src/auth/popup/login-with-device.component.html | 2 +- .../src/auth/login/login-with-device.component.html | 2 +- .../src/auth/login/login-with-device.component.html | 2 +- .../auth/components/login-with-device.component.ts | 11 ++++++----- .../request/passwordless-create-auth.request.ts | 3 +-- 5 files changed, 10 insertions(+), 10 deletions(-) diff --git a/apps/browser/src/auth/popup/login-with-device.component.html b/apps/browser/src/auth/popup/login-with-device.component.html index cb2a248170ce..d794b7d212b6 100644 --- a/apps/browser/src/auth/popup/login-with-device.component.html +++ b/apps/browser/src/auth/popup/login-with-device.component.html @@ -19,7 +19,7 @@

{{ "fingerprintPhraseHeader" | i18n }}

- {{ passwordlessRequest?.fingerprintPhrase }} + {{ fingerprintPhrase }}

diff --git a/apps/desktop/src/auth/login/login-with-device.component.html b/apps/desktop/src/auth/login/login-with-device.component.html index c69a974d6d31..a1fcb4240006 100644 --- a/apps/desktop/src/auth/login/login-with-device.component.html +++ b/apps/desktop/src/auth/login/login-with-device.component.html @@ -27,7 +27,7 @@

{{ "fingerprintPhraseHeader" | i18n }}

- {{ passwordlessRequest?.fingerprintPhrase }} + {{ fingerprintPhrase }}
diff --git a/apps/web/src/auth/login/login-with-device.component.html b/apps/web/src/auth/login/login-with-device.component.html index 84598b11ff4f..f7cad8089395 100644 --- a/apps/web/src/auth/login/login-with-device.component.html +++ b/apps/web/src/auth/login/login-with-device.component.html @@ -25,7 +25,7 @@

{{ "logInInitiated" | i18n }}

{{ "fingerprintPhraseHeader" | i18n }}

- {{ passwordlessRequest?.fingerprintPhrase }} + {{ fingerprintPhrase }}

diff --git a/libs/angular/src/auth/components/login-with-device.component.ts b/libs/angular/src/auth/components/login-with-device.component.ts index 61aaec1dd87a..5bf520cab6ec 100644 --- a/libs/angular/src/auth/components/login-with-device.component.ts +++ b/libs/angular/src/auth/components/login-with-device.component.ts @@ -35,6 +35,7 @@ export class LoginWithDeviceComponent email: string; showResendNotification = false; passwordlessRequest: PasswordlessCreateAuthRequest; + fingerprintPhrase: string; onSuccessfulLoginTwoFactorNavigate: () => Promise; onSuccessfulLogin: () => Promise; onSuccessfulLoginNavigate: () => Promise; @@ -170,20 +171,20 @@ export class LoginWithDeviceComponent private async buildAuthRequest() { this.authRequestKeyPair = await this.cryptoFunctionService.rsaGenerateKeyPair(2048); - const fingerprint = await ( - await this.cryptoService.getFingerprint(this.email, this.authRequestKeyPair[0]) - ).join("-"); const deviceIdentifier = await this.appIdService.getAppId(); const publicKey = Utils.fromBufferToB64(this.authRequestKeyPair[0]); const accessCode = await this.passwordGenerationService.generatePassword({ length: 25 }); + this.fingerprintPhrase = ( + await this.cryptoService.getFingerprint(this.email, this.authRequestKeyPair[0]) + ).join("-"); + this.passwordlessRequest = new PasswordlessCreateAuthRequest( this.email, deviceIdentifier, publicKey, AuthRequestType.AuthenticateAndUnlock, - accessCode, - fingerprint + accessCode ); } diff --git a/libs/common/src/auth/models/request/passwordless-create-auth.request.ts b/libs/common/src/auth/models/request/passwordless-create-auth.request.ts index cb85f823c26f..865dd43dc630 100644 --- a/libs/common/src/auth/models/request/passwordless-create-auth.request.ts +++ b/libs/common/src/auth/models/request/passwordless-create-auth.request.ts @@ -6,7 +6,6 @@ export class PasswordlessCreateAuthRequest { readonly deviceIdentifier: string, readonly publicKey: string, readonly type: AuthRequestType, - readonly accessCode: string, - readonly fingerprintPhrase: string + readonly accessCode: string ) {} } From d024cc1f0c3a0fd1c7b0bf1c15136f7836121b1d Mon Sep 17 00:00:00 2001 From: Will Martin Date: Thu, 23 Mar 2023 17:51:03 -0400 Subject: [PATCH 03/39] [SM-668] hash font asset names (#5054) --- apps/web/webpack.config.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/apps/web/webpack.config.js b/apps/web/webpack.config.js index 15abbe6f6e5f..54899dca7b1f 100644 --- a/apps/web/webpack.config.js +++ b/apps/web/webpack.config.js @@ -31,7 +31,7 @@ const moduleRules = [ test: /.(ttf|otf|eot|svg|woff(2)?)(\?[a-z0-9]+)?$/, exclude: /loading(|-white).svg/, generator: { - filename: "fonts/[name][ext]", + filename: "fonts/[name].[contenthash][ext]", }, type: "asset/resource", }, From 94986d55335bf0653b7de4f0c0c0758dababcaa9 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 01:25:57 +0100 Subject: [PATCH 04/39] Autosync the updated translations (#5067) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/desktop/src/locales/fr/messages.json | 8 +-- apps/desktop/src/locales/hr/messages.json | 68 ++++++++++---------- apps/desktop/src/locales/lv/messages.json | 2 +- apps/desktop/src/locales/sl/messages.json | 6 +- apps/desktop/src/locales/uk/messages.json | 4 +- apps/desktop/src/locales/zh_CN/messages.json | 42 ++++++------ 6 files changed, 65 insertions(+), 65 deletions(-) diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index df97330be7cc..467d84934acf 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -98,7 +98,7 @@ "message": "Phrase de passe" }, "editItem": { - "message": "Modifier l'élément" + "message": "Éditer l'élément" }, "emailAddress": { "message": "Adresse électronique" @@ -308,7 +308,7 @@ "message": "Favori" }, "edit": { - "message": "Modifier" + "message": "Édition" }, "authenticatorKeyTotp": { "message": "Clé d'authentification (TOTP)" @@ -386,7 +386,7 @@ "message": "Ajouter un dossier" }, "editFolder": { - "message": "Modifier le dossier" + "message": "Éditer le dossier" }, "regeneratePassword": { "message": "Re-générer un mot de passe" @@ -564,7 +564,7 @@ "message": "Une erreur inattendue est survenue." }, "itemInformation": { - "message": "Information sur l'identifiant" + "message": "Informations sur l'élément" }, "noItemsInList": { "message": "Aucun élément à afficher." diff --git a/apps/desktop/src/locales/hr/messages.json b/apps/desktop/src/locales/hr/messages.json index e854652c077d..854cf74d2b28 100644 --- a/apps/desktop/src/locales/hr/messages.json +++ b/apps/desktop/src/locales/hr/messages.json @@ -542,7 +542,7 @@ "message": "Potreban je ponovni unos glavne lozinke." }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "Glavna lozinka mora imati najmanje $VALUE$ znakova.", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -2066,35 +2066,35 @@ "message": "Prijava drugim uređajem" }, "logInInitiated": { - "message": "Log in initiated" + "message": "Pokrenuta prijava" }, "notificationSentDevice": { - "message": "A notification has been sent to your device." + "message": "Obavijest je poslana na tvoj uređaj." }, "fingerprintMatchInfo": { - "message": "Please make sure your vault is unlocked and Fingerprint phrase matches the other device." + "message": "Provjeri je li trezor otključan i slaže li se jedinstvena fraza s drugim uređajem." }, "fingerprintPhraseHeader": { - "message": "Fingerprint phrase" + "message": "Jedinstvena fraza" }, "needAnotherOption": { - "message": "Log in with device must be set up in the settings of the Bitwarden app. Need another option?" + "message": "Prijava uređajem mora biti namještena u postavka Bitwarden mobilne aplikacije. Trebaš drugu opciju?" }, "viewAllLoginOptions": { - "message": "View all login options" + "message": "Pogledaj sve mogućnosti prijave" }, "resendNotification": { - "message": "Resend notification" + "message": "Ponovno pošalji obavijest" }, "toggleCharacterCount": { - "message": "Toggle character count", + "message": "Prikaži/Sakrij broj znakova", "description": "'Character count' describes a feature that displays a number next to each character of the password." }, "areYouTryingtoLogin": { - "message": "Are you trying to log in?" + "message": "Pokušavaš li se prijaviti?" }, "logInAttemptBy": { - "message": "Login attempt by $EMAIL$", + "message": "$EMAIL$ se pokušava prijaviti", "placeholders": { "email": { "content": "$1", @@ -2103,25 +2103,25 @@ } }, "deviceType": { - "message": "Device Type" + "message": "Vrsta uređaja" }, "ipAddress": { - "message": "IP Address" + "message": "IP Adresa" }, "time": { - "message": "Time" + "message": "Vrijeme" }, "confirmLogIn": { - "message": "Confirm login" + "message": "Potvrdi prijavu" }, "denyLogIn": { - "message": "Deny login" + "message": "Odbij prijavu" }, "approveLoginRequests": { - "message": "Approve login requests" + "message": "Odobri pokušaje prijave" }, "logInConfirmedForEmailOnDevice": { - "message": "Login confirmed for $EMAIL$ on $DEVICE$", + "message": "Prijava za $EMAIL$ potvrđena na uređaju $DEVICE$", "placeholders": { "email": { "content": "$1", @@ -2134,13 +2134,13 @@ } }, "youDeniedALogInAttemptFromAnotherDevice": { - "message": "You denied a login attempt from another device. If this really was you, try to log in with the device again." + "message": "Odbijena je prijava na drugom uređaju. Ako si ovo stvarno ti, pokušaj se ponovno prijaviti uređajem." }, "justNow": { - "message": "Just now" + "message": "Upravo" }, "requestedXMinutesAgo": { - "message": "Requested $MINUTES$ minutes ago", + "message": "Zatraženo prije $MINUTES$ minute/a", "placeholders": { "minutes": { "content": "$1", @@ -2149,16 +2149,16 @@ } }, "loginRequestHasAlreadyExpired": { - "message": "Login request has already expired." + "message": "Zahtjev za prijavu je već istekao." }, "thisRequestIsNoLongerValid": { - "message": "This request is no longer valid." + "message": "Ovaj zahtjev više nije valjan." }, "approveLoginRequestDesc": { - "message": "Use this device to approve login requests made from other devices." + "message": "Koristi ovaj uređaj za odobrenje zahtjeva za prijavu na drugim uređajima." }, "confirmLoginAtemptForMail": { - "message": "Confirm login attempt for $EMAIL$", + "message": "Potvrdi pokušaj prijave za $EMAIL$", "placeholders": { "email": { "content": "$1", @@ -2167,31 +2167,31 @@ } }, "logInRequested": { - "message": "Log in requested" + "message": "Zatražena je prijava" }, "exposedMasterPassword": { - "message": "Exposed Master Password" + "message": "Ukradena glavna lozinka" }, "exposedMasterPasswordDesc": { - "message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?" + "message": "Lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jedinstvenu lozinku. Želiš li svejedno korisiti ukradenu lozinku?" }, "weakAndExposedMasterPassword": { - "message": "Weak and Exposed Master Password" + "message": "Slaba i ukradena glavna lozinka" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?" + "message": "Slaba lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jaku i jedinstvenu lozinku. Želiš li svejedno korisiti slabu, ukradenu lozinku?" }, "checkForBreaches": { - "message": "Check known data breaches for this password" + "message": "Provjeri je li lozinka ukradena prilikom krađe podataka" }, "important": { - "message": "Important:" + "message": "Važno:" }, "masterPasswordHint": { - "message": "Your master password cannot be recovered if you forget it!" + "message": "Glavnu lozinku nije moguće oporaviti ako ju zaboraviš!" }, "characterMinimum": { - "message": "$LENGTH$ character minimum", + "message": "najmanje $LENGTH$ znakova", "placeholders": { "length": { "content": "$1", diff --git a/apps/desktop/src/locales/lv/messages.json b/apps/desktop/src/locales/lv/messages.json index edab5ab266fe..5bdae0e6fd06 100644 --- a/apps/desktop/src/locales/lv/messages.json +++ b/apps/desktop/src/locales/lv/messages.json @@ -815,7 +815,7 @@ "message": "Sinhronizācija neizdevās" }, "yourVaultIsLocked": { - "message": "Jūsu glabātuve ir bloķēta. Lai turpinātu, apstipriniet savu identitāti." + "message": "Glabātava ir slēgta. Jāapstiprina identitāte, lai turpinātu." }, "unlock": { "message": "Atslēgt" diff --git a/apps/desktop/src/locales/sl/messages.json b/apps/desktop/src/locales/sl/messages.json index 7008fe19f8de..6eaca80e722a 100644 --- a/apps/desktop/src/locales/sl/messages.json +++ b/apps/desktop/src/locales/sl/messages.json @@ -95,7 +95,7 @@ "message": "Geslo" }, "passphrase": { - "message": "Šifrirna fraza" + "message": "Večbesedno geslo" }, "editItem": { "message": "Uredi vnos" @@ -792,11 +792,11 @@ "message": "Svoje glavno geslo lahko spremenite v bitwarden.com spletnem trezorju. Želite obiskati spletno stran zdaj?" }, "fingerprintPhrase": { - "message": "Fraza prstnega odtisa", + "message": "Identifikacijsko geslo", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Fraza prstnega odtisa vašega računa", + "message": "Identifikacijsko geslo vašega računa", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "goToWebVault": { diff --git a/apps/desktop/src/locales/uk/messages.json b/apps/desktop/src/locales/uk/messages.json index 5514ffb07817..8e7a9440fda1 100644 --- a/apps/desktop/src/locales/uk/messages.json +++ b/apps/desktop/src/locales/uk/messages.json @@ -263,7 +263,7 @@ "message": "Тип" }, "firstName": { - "message": "Ім’я" + "message": "Ім'я" }, "middleName": { "message": "По батькові" @@ -1799,7 +1799,7 @@ "message": "Ви дійсно хочете вилучити пароль?" }, "maxAccessCountReached": { - "message": "Досягнуто максимальну кількість доступів" + "message": "Досягнуто максимальної кількості доступів" }, "expired": { "message": "Термін дії завершився" diff --git a/apps/desktop/src/locales/zh_CN/messages.json b/apps/desktop/src/locales/zh_CN/messages.json index 3eb8603d4130..4e7425f6483c 100644 --- a/apps/desktop/src/locales/zh_CN/messages.json +++ b/apps/desktop/src/locales/zh_CN/messages.json @@ -9,7 +9,7 @@ "message": "所有项目" }, "favorites": { - "message": "我的收藏" + "message": "收藏夹" }, "types": { "message": "类型" @@ -145,7 +145,7 @@ "message": "品牌" }, "expiration": { - "message": "到期日" + "message": "过期日" }, "securityCode": { "message": "安全码" @@ -245,10 +245,10 @@ "message": "博士" }, "expirationMonth": { - "message": "到期月份" + "message": "过期月份" }, "expirationYear": { - "message": "到期年份" + "message": "过期年份" }, "select": { "message": "选择" @@ -542,7 +542,7 @@ "message": "必须填写确认主密码。" }, "masterPasswordMinlength": { - "message": "主密码至少需要 $VALUE$ 个字符。", + "message": "主密码必须至少 $VALUE$ 个字符长度。", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -747,7 +747,7 @@ "message": "添加新登录" }, "addNewItem": { - "message": "添加新项目" + "message": "新增项目" }, "addNewFolder": { "message": "添加文件夹" @@ -837,7 +837,7 @@ "message": "无效的主密码" }, "twoStepLoginConfirmation": { - "message": "两步登录要求您从其他设备(例如安全钥匙、验证器应用、短信、电话或者电子邮件)来验证您的登录,这能使您的账户更加安全。两步登录需要在 bitwarden.com 网页版密码中设置。您现在要访问这个网站吗?" + "message": "两步登录要求您从其他设备(例如安全钥匙、验证器应用、短信、电话或者电子邮件)来验证您的登录,这能使您的账户更加安全。两步登录需要在 bitwarden.com 网页版密码库中设置。现在访问此网站吗?" }, "twoStepLogin": { "message": "两步登录" @@ -1561,7 +1561,7 @@ "message": "至少包含一个数字" }, "policyInEffectSpecial": { - "message": "至少包含一个以下特殊字符:$CHARS$", + "message": "至少包含一个以下特殊字符 $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1679,7 +1679,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "到期日期" + "message": "过期日期" }, "expirationDateDesc": { "message": "设置后,对此 Send 的访问将在指定的日期和时间后过期。", @@ -2066,13 +2066,13 @@ "message": "使用其他设备登录" }, "logInInitiated": { - "message": "已发起登录" + "message": "登录已发起" }, "notificationSentDevice": { "message": "通知已发送到您的设备。" }, "fingerprintMatchInfo": { - "message": "请确保您的密码库已解锁,并且指纹与其他设备匹配。" + "message": "请确保您的密码库已解锁,并且指纹短语与其他设备匹配。" }, "fingerprintPhraseHeader": { "message": "指纹短语" @@ -2094,7 +2094,7 @@ "message": "您正在尝试登录吗?" }, "logInAttemptBy": { - "message": "$EMAIL$ 尝试登录", + "message": "$EMAIL$ 的登录尝试", "placeholders": { "email": { "content": "$1", @@ -2134,13 +2134,13 @@ } }, "youDeniedALogInAttemptFromAnotherDevice": { - "message": "您拒绝了另一台设备的登录尝试。如果真的是您,请尝试再次使用该设备登录。" + "message": "您拒绝了一个来自其他设备的登录尝试。若确认是您自己,请尝试再次使用该设备登录。" }, "justNow": { "message": "刚刚" }, "requestedXMinutesAgo": { - "message": "在$MINUTES$ 分钟前发出的请求", + "message": "在 $MINUTES$ 分钟前发出的请求", "placeholders": { "minutes": { "content": "$1", @@ -2152,7 +2152,7 @@ "message": "登录请求已过期。" }, "thisRequestIsNoLongerValid": { - "message": "请求已失效" + "message": "此请求已失效。" }, "approveLoginRequestDesc": { "message": "使用此设备批准其他设备的登录请求。" @@ -2170,19 +2170,19 @@ "message": "已请求登录" }, "exposedMasterPassword": { - "message": "已被暴露过的主密码" + "message": "已暴露的主密码" }, "exposedMasterPasswordDesc": { - "message": "当前密码已在数据泄漏中被检测到。请使用独特的密码来保护您的帐户。您确定要继续使用已被暴露过的密码吗?" + "message": "密码在数据泄露中被发现。请使用一个独一无二的的密码以保护您的账户。确定要使用已暴露的密码吗?" }, "weakAndExposedMasterPassword": { - "message": "主密码太弱并且已经被暴露过" + "message": "主密码弱且曾经暴露" }, "weakAndBreachedMasterPasswordDesc": { - "message": "当前密码太弱并已在数据泄漏中被检测到。使用密码性强且独特的密码来保护您的帐户。您确定要继续使用当前密码吗?" + "message": "识别到弱密码且其出现在数据泄露中。请使用一个强且唯一的密码以保护你的账户。确定要使用这个密码吗?" }, "checkForBreaches": { - "message": "检查已知的数据泄露是否包含此密码。" + "message": "检查已知的数据泄露是否包含此密码" }, "important": { "message": "重要事项:" @@ -2191,7 +2191,7 @@ "message": "主密码忘记后,将无法恢复!" }, "characterMinimum": { - "message": "$LENGTH$ 字符下限", + "message": "至少 $LENGTH$ 个字符", "placeholders": { "length": { "content": "$1", From a080ceaa081fc92187d17194cf6f5d409c791962 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 01:31:02 +0100 Subject: [PATCH 05/39] Autosync the updated translations (#5068) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/browser/src/_locales/de/messages.json | 2 +- apps/browser/src/_locales/hi/messages.json | 10 +- apps/browser/src/_locales/hr/messages.json | 64 +-- apps/browser/src/_locales/it/messages.json | 394 +++++++++--------- apps/browser/src/_locales/nb/messages.json | 24 +- apps/browser/src/_locales/sl/messages.json | 8 +- apps/browser/src/_locales/sr/messages.json | 4 +- apps/browser/src/_locales/uk/messages.json | 6 +- apps/browser/src/_locales/zh_CN/messages.json | 46 +- apps/browser/store/locales/it/copy.resx | 39 +- 10 files changed, 299 insertions(+), 298 deletions(-) diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index 4e5a5794c8d7..84836c427515 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -1300,7 +1300,7 @@ "description": "Default URI match detection for auto-fill." }, "toggleOptions": { - "message": "Umschaltoptionen" + "message": "Optionen umschalten" }, "toggleCurrentUris": { "message": "Aktuelle URIs umschalten", diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index 6092cec93dd9..26f585f2c56a 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -196,13 +196,13 @@ "message": "Help & Feedback" }, "helpCenter": { - "message": "Bitwarden Help center" + "message": "बिटवॉर्डेन सहायता केंद्र" }, "communityForums": { "message": "Explore Bitwarden community forums" }, "contactSupport": { - "message": "Contact Bitwarden support" + "message": "बिटवॉर्डेन सहायता से संपर्क करें" }, "sync": { "message": "सिंक" @@ -357,7 +357,7 @@ "message": "ताला खोलें" }, "loggedInAsOn": { - "message": "Logged in as $EMAIL$ on $HOSTNAME$.", + "message": "$HOSTNAME$ पर $EMAIL$ के रूप में लॉग इन किया है।", "placeholders": { "email": { "content": "$1", @@ -439,7 +439,7 @@ "message": "मास्टर पासवर्ड पुनः डालने की आवश्यकता है।" }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "मास्टर पासवर्ड कम से कम $VALUE$ अक्षर लंबा होना चाहिए।", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -464,7 +464,7 @@ "message": "सत्यापन कोड अवैध है" }, "valueCopied": { - "message": "$VALUE$ copied", + "message": "$VALUE$ कॉपी हो गया है।", "description": "Value has been copied to the clipboard.", "placeholders": { "value": { diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index 3ad11167f643..6bd20c6c9978 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -196,13 +196,13 @@ "message": "Pomoć i povratne informacije" }, "helpCenter": { - "message": "Bitwarden Help center" + "message": "Bitwarden centar za pomoć" }, "communityForums": { - "message": "Explore Bitwarden community forums" + "message": "Istraži forume zajednice Bitwarden" }, "contactSupport": { - "message": "Contact Bitwarden support" + "message": "Kontaktiraj Bitwarden pomoć" }, "sync": { "message": "Sinkronizacija" @@ -439,7 +439,7 @@ "message": "Potreban je ponovni unos glavne lozinke." }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "Glavna lozinka mora imati najmanje $VALUE$ znakova.", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -976,10 +976,10 @@ "message": "Nakon učitavanja web stranice, ako je otkriven obrazac za prijavu, auto-ispuni." }, "experimentalFeature": { - "message": "Compromised or untrusted websites can exploit auto-fill on page load." + "message": "Ugrožene ili nepouzdane web stranice mogu iskoristiti auto-ispunu prilikom učitavanja stranice." }, "learnMoreAboutAutofill": { - "message": "Learn more about auto-fill" + "message": "Saznaj više o auto-ispuni" }, "defaultAutoFillOnPageLoad": { "message": "Zadana postvaka Auto-ispune za prijave" @@ -2064,52 +2064,52 @@ "message": "Zapamti adresu e-pošte" }, "loginWithDevice": { - "message": "Log in with device" + "message": "Prijava uređajem" }, "loginWithDeviceEnabledInfo": { - "message": "Log in with device must be set up in the settings of the Bitwarden app. Need another option?" + "message": "Prijava uređajem mora biti namještena u postavka Bitwarden mobilne aplikacije. Trebaš drugu opciju?" }, "fingerprintPhraseHeader": { - "message": "Fingerprint phrase" + "message": "Jedinstvena fraza" }, "fingerprintMatchInfo": { - "message": "Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device." + "message": "Provjeri je li trezor otključan i slaže li se jedinstvena fraza s drugim uređajem." }, "resendNotification": { - "message": "Resend notification" + "message": "Ponovno pošalji obavijest" }, "viewAllLoginOptions": { - "message": "View all log in options" + "message": "Pogledaj sve mogućnosti prijave" }, "notificationSentDevice": { - "message": "A notification has been sent to your device." + "message": "Obavijest je poslana na tvoj uređaj." }, "logInInitiated": { - "message": "Log in initiated" + "message": "Pokrenuta prijava" }, "exposedMasterPassword": { - "message": "Exposed Master Password" + "message": "Ukradena glavna lozinka" }, "exposedMasterPasswordDesc": { - "message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?" + "message": "Lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jedinstvenu lozinku. Želiš li svejedno korisiti ukradenu lozinku?" }, "weakAndExposedMasterPassword": { - "message": "Weak and Exposed Master Password" + "message": "Slaba i ukradena glavna lozinka" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?" + "message": "Slaba lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jaku i jedinstvenu lozinku. Želiš li svejedno korisiti slabu, ukradenu lozinku?" }, "checkForBreaches": { - "message": "Check known data breaches for this password" + "message": "Provjeri je li lozinka ukradena prilikom krađe podataka" }, "important": { - "message": "Important:" + "message": "Važno:" }, "masterPasswordHint": { - "message": "Your master password cannot be recovered if you forget it!" + "message": "Glavnu lozinku nije moguće oporaviti ako ju zaboraviš!" }, "characterMinimum": { - "message": "$LENGTH$ character minimum", + "message": "najmanje $LENGTH$ znakova", "placeholders": { "length": { "content": "$1", @@ -2118,13 +2118,13 @@ } }, "autofillPageLoadPolicyActivated": { - "message": "Your organization policies have turned on auto-fill on page load." + "message": "Prema pravilima tvoje organizacije uključena je auto-ispuna prilikom učitavanja stranice." }, "howToAutofill": { - "message": "How to auto-fill" + "message": "Kako auto-ispuniti" }, "autofillSelectInfoWithCommand": { - "message": "Select an item from this page or use the shortcut: $COMMAND$", + "message": "Odaberi stavku s ove stranice ili koristi prečac $COMMAND$", "placeholders": { "command": { "content": "$1", @@ -2133,22 +2133,22 @@ } }, "autofillSelectInfoWithoutCommand": { - "message": "Select an item from this page or set a shortcut in settings." + "message": "Odaberi stavku s ove stranice ili namjesti prečac u postavkama." }, "gotIt": { - "message": "Got it" + "message": "U redu" }, "autofillSettings": { - "message": "Auto-fill settings" + "message": "Postavke auto-ispune" }, "autofillShortcut": { - "message": "Auto-fill keyboard shortcut" + "message": "Tipkovnički precač auto-ispune" }, "autofillShortcutNotSet": { - "message": "The auto-fill shortcut is not set. Change this in the browser's settings." + "message": "Prečac auto-ispune nije postavljen. Promijeni u postavkama preglednika." }, "autofillShortcutText": { - "message": "The auto-fill shortcut is: $COMMAND$. Change this in the browser's settings.", + "message": "Prečac auto-ispune je: $COMMAND$. Promijeni u postavkama preglednika.", "placeholders": { "command": { "content": "$1", @@ -2157,7 +2157,7 @@ } }, "autofillShortcutTextSafari": { - "message": "Default auto-fill shortcut: $COMMAND$.", + "message": "Zadani prečac auto-ispune: $COMMAND$.", "placeholders": { "command": { "content": "$1", diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index e65ae25f9ce0..856e03c336c2 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -3,7 +3,7 @@ "message": "Bitwarden" }, "extName": { - "message": "Bitwarden - Gestore di password gratuito", + "message": "Bitwarden - Gestore di Password Gratuito", "description": "Extension name, MUST be less than 40 characters (Safari restriction)" }, "extDesc": { @@ -38,16 +38,16 @@ "message": "Password principale" }, "masterPassDesc": { - "message": "La password principale è la password che utilizzi per accedere alla tua cassaforte. È molto importante che tu non la dimentichi. Non c'è modo di recuperare questa password nel caso che tu la dimenticassi." + "message": "La password principale ti serve per accedere alla tua cassaforte. È molto importante non dimenticarla. Non possiamo aiutarti a recuperare questa password se la dimentichi." }, "masterPassHintDesc": { - "message": "Un suggerimento per la password principale può aiutarti a ricordarla nel caso la dimenticassi." + "message": "Un suggerimento per la password principale può aiutarti a ricordarla se la dimentichi." }, "reTypeMasterPass": { - "message": "Ri-digita la tua password principale" + "message": "Digita nuovamente la password" }, "masterPassHint": { - "message": "Suggerimento password principale (facoltativo)" + "message": "Suggerimento per la password principale (facoltativo)" }, "tab": { "message": "Scheda" @@ -56,7 +56,7 @@ "message": "Cassaforte" }, "myVault": { - "message": "Cassaforte" + "message": "La mia cassaforte" }, "allVaults": { "message": "Tutte le casseforti" @@ -68,7 +68,7 @@ "message": "Impostazioni" }, "currentTab": { - "message": "Scheda attuale" + "message": "Scheda corrente" }, "copyPassword": { "message": "Copia password" @@ -86,19 +86,19 @@ "message": "Copia numero" }, "copySecurityCode": { - "message": "Copia il codice di sicurezza" + "message": "Copia codice di sicurezza" }, "autoFill": { - "message": "Auto-riempimento" + "message": "Riempimento automatico" }, "generatePasswordCopied": { - "message": "Genera password (copiata)" + "message": "Genera password e copiala" }, "copyElementIdentifier": { "message": "Copia nome campo personalizzato" }, "noMatchingLogins": { - "message": "Nessun accesso corrispondente." + "message": "Nessun login corrispondente" }, "unlockVaultMenu": { "message": "Sblocca la tua cassaforte" @@ -107,7 +107,7 @@ "message": "Accedi alla tua cassaforte" }, "autoFillInfo": { - "message": "Non ci sono login disponibili per completare la scheda attuale del browser." + "message": "Non ci sono login disponibili per riempire automaticamente questa scheda del browser." }, "addLogin": { "message": "Aggiungi un login" @@ -119,10 +119,10 @@ "message": "Suggerimento password" }, "enterEmailToGetHint": { - "message": "Inserisci l'indirizzo email del tuo account per ricevere il suggerimento della password principale." + "message": "Inserisci l'indirizzo email del tuo account per ricevere il suggerimento per la password principale." }, "getMasterPasswordHint": { - "message": "Ottieni il suggerimento della password principale" + "message": "Ottieni suggerimento della password principale" }, "continue": { "message": "Continua" @@ -146,14 +146,14 @@ "message": "Account" }, "changeMasterPassword": { - "message": "Modifica password principale" + "message": "Cambia password principale" }, "fingerprintPhrase": { "message": "Frase impronta", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Frase impronta dell'account", + "message": "Frase impronta del tuo account", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "twoStepLogin": { @@ -190,19 +190,19 @@ "message": "Cartelle" }, "noFolders": { - "message": "Non ci sono cartelle da elencare." + "message": "Non ci sono cartelle da mostrare." }, "helpFeedback": { - "message": "Aiuto e segnalazioni" + "message": "Aiuto e feedback" }, "helpCenter": { "message": "Centro assistenza Bitwarden" }, "communityForums": { - "message": "Esplora i forum della community Bitwarden" + "message": "Esplora i forum della comunità Bitwarden" }, "contactSupport": { - "message": "Contatta l'assistenza Bitwarden" + "message": "Contatta assistenza Bitwarden" }, "sync": { "message": "Sincronizza" @@ -288,10 +288,10 @@ "message": "Visualizza" }, "noItemsInList": { - "message": "Non ci sono elementi da elencare." + "message": "Non ci sono elementi da mostrare." }, "itemInformation": { - "message": "Informazioni sull'elemento" + "message": "Informazioni elemento" }, "username": { "message": "Nome utente" @@ -330,7 +330,7 @@ "message": "Sito web" }, "toggleVisibility": { - "message": "Mostra/Nascondi" + "message": "Mostra/nascondi" }, "manage": { "message": "Gestisci" @@ -342,16 +342,16 @@ "message": "Valuta l'estensione" }, "rateExtensionDesc": { - "message": "Prendi in considerazione l'idea di lasciarci una buona recensione!" + "message": "Aiutaci lasciando una buona recensione!" }, "browserNotSupportClipboard": { - "message": "Il tuo browser non supporta la copia dagli appunti. Copiala manualmente." + "message": "Il tuo browser non supporta copiare dagli appunti. Copialo manualmente." }, "verifyIdentity": { - "message": "Verifica l'identità." + "message": "Verifica identità" }, "yourVaultIsLocked": { - "message": "La tua cassaforte è bloccata. Inserisci la tua password principale per continuare." + "message": "La tua cassaforte è bloccata. Verifica la tua identità per continuare." }, "unlock": { "message": "Sblocca" @@ -376,7 +376,7 @@ "message": "Timeout cassaforte" }, "lockNow": { - "message": "Blocca" + "message": "Blocca ora" }, "immediately": { "message": "Immediatamente" @@ -427,16 +427,16 @@ "message": "Si è verificato un errore" }, "emailRequired": { - "message": "L'indirizzo email è obbligatorio." + "message": "Indirizzo email obbligatorio." }, "invalidEmail": { "message": "Indirizzo email non valido." }, "masterPasswordRequired": { - "message": "È necessario inserire la password principale." + "message": "Password principale obbligatoria." }, "confirmMasterPasswordRequired": { - "message": "È necessario reinserire la password principale." + "message": "Reinserire la password principale è obbligatorio." }, "masterPasswordMinlength": { "message": "La password principale deve essere lunga almeno $VALUE$ caratteri.", @@ -449,7 +449,7 @@ } }, "masterPassDoesntMatch": { - "message": "La conferma della password principale non corrisponde." + "message": "Le password principali non corrispondono." }, "newAccountCreated": { "message": "Il tuo nuovo account è stato creato! Ora puoi eseguire l'accesso." @@ -461,7 +461,7 @@ "message": "Il codice di verifica è obbligatorio." }, "invalidVerificationCode": { - "message": "Codice di verifica non valido." + "message": "Codice di verifica non valido" }, "valueCopied": { "message": "$VALUE$ copiata", @@ -474,7 +474,7 @@ } }, "autofillError": { - "message": "Impossibile completare automaticamente il login selezionato per questa pagina. Copia e incolla manualmente le tue credenziali." + "message": "Impossibile riempire automaticamente questo elemento nella pagina. Copia e incolla le credenziali." }, "loggedOut": { "message": "Disconnesso" @@ -501,19 +501,19 @@ "message": "Cartella aggiunta" }, "changeMasterPass": { - "message": "Modifica password principale" + "message": "Cambia password principale" }, "changeMasterPasswordConfirmation": { "message": "Puoi cambiare la tua password principale sulla cassaforte online di bitwarden.com. Vuoi visitare ora il sito?" }, "twoStepLoginConfirmation": { - "message": "L'autenticazione in due passaggi rende il tuo account più sicuro richiedendo di verificare il login con un altro dispositivo come una chiave di sicurezza, applicazione di autenticazione, SMS, telefonata o email. Può essere abilitata sulla cassaforte online di bitwarden.com. Vuoi visitare il sito ora?" + "message": "La verifica in due passaggi rende il tuo account più sicuro richiedendoti di verificare il tuo login usando un altro dispositivo come una chiave di sicurezza, applicazione di autenticazione, SMS, telefonata, o email. Può essere abilitata nella cassaforte web su bitwarden.com. Vuoi visitare il sito?" }, "editedFolder": { - "message": "Cartella modificata" + "message": "Cartella salvata" }, "deleteFolderConfirmation": { - "message": "Sei sicuro di voler modificare questa cartella?" + "message": "Sei sicuro di voler eliminare questa cartella?" }, "deletedFolder": { "message": "Cartella eliminata" @@ -553,13 +553,13 @@ "message": "Elemento aggiunto" }, "editedItem": { - "message": "Elemento modificato" + "message": "Elemento salvato" }, "deleteItemConfirmation": { - "message": "Sei sicuro di voler cestinare questo elemento?" + "message": "Sei sicuro di voler eliminare questo elemento?" }, "deletedItem": { - "message": "Elemento cestinato" + "message": "Elemento eliminato" }, "overwritePassword": { "message": "Sovrascrivi password" @@ -571,7 +571,7 @@ "message": "Sovrascrivi nome utente" }, "overwriteUsernameConfirmation": { - "message": "Sei sicuro di voler sovrascrivere il nome utente attuale?" + "message": "Sei sicuro di voler sovrascrivere il nome utente corrente?" }, "searchFolder": { "message": "Cerca nella cartella" @@ -580,61 +580,61 @@ "message": "Cerca nella raccolta" }, "searchType": { - "message": "Cerca tipo" + "message": "Cerca in questo tipo" }, "noneFolder": { "message": "Nessuna cartella", "description": "This is the folder for uncategorized items" }, "enableAddLoginNotification": { - "message": "Chiedi di aggiungere il login" + "message": "Chiedi di aggiungere nuovi login" }, "addLoginNotificationDesc": { - "message": "\"Aggiungi notifica di login\" richiede automaticamente di salvare i nuovi login nella tua cassaforte ogni volta che accedi per la prima volta." + "message": "Chiedi di aggiungere un nuovo elemento se non ce n'è uno nella tua cassaforte." }, "showCardsCurrentTab": { - "message": "Mostra le carte nella pagina delle schede" + "message": "Mostra le carte nella sezione Scheda" }, "showCardsCurrentTabDesc": { - "message": "Elenca le carte nella sezione Scheda per un riempimento automatico più facile." + "message": "Mostra le carte nella sezione Scheda per riempirle automaticamente." }, "showIdentitiesCurrentTab": { - "message": "Mostra le identità nella pagina della scheda" + "message": "Mostra le identità nella sezione Scheda" }, "showIdentitiesCurrentTabDesc": { - "message": "Elenca le identità nella sezione Scheda per un riempimento automatico più facile." + "message": "Mostra le identità nella sezione Scheda per riempirle automaticamente." }, "clearClipboard": { "message": "Cancella appunti", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "clearClipboardDesc": { - "message": "Cancella automaticamente dagli appunti i valori copiati.", + "message": "Cancella automaticamente i valori copiati dagli appunti.", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "notificationAddDesc": { "message": "Vuoi che Bitwarden ricordi questa password per te?" }, "notificationAddSave": { - "message": "Sì, salva ora" + "message": "Salva" }, "enableChangedPasswordNotification": { "message": "Chiedi di aggiornare il login esistente" }, "changedPasswordNotificationDesc": { - "message": "Chiedi di aggiornare la password di accesso quando viene rilevato un cambiamento su un sito web." + "message": "Chiedi di aggiornare la password di un login quando viene cambiata su un sito web." }, "notificationChangeDesc": { "message": "Vuoi aggiornare questa password in Bitwarden?" }, "notificationChangeSave": { - "message": "Sì, aggiorna ora" + "message": "Aggiorna" }, "enableContextMenuItem": { - "message": "Mostra le opzioni del menu contestuale" + "message": "Mostra opzioni nel menu contestuale" }, "contextMenuItemDesc": { - "message": "Utilizza un clic secondario per accedere alla generazione di password e login per il sito web. " + "message": "Utilizza un secondo clic per accedere alla generazione di password e login corrispondenti per il sito web. " }, "defaultUriMatchDetection": { "message": "Rilevamento corrispondenza URI predefinito", @@ -658,7 +658,7 @@ "description": "Light color" }, "solarizedDark": { - "message": "Solarizzato scuro", + "message": "Scuro solarizzato", "description": "'Solarized' is a noun and the name of a color scheme. It should not be translated." }, "exportVault": { @@ -668,7 +668,7 @@ "message": "Formato file" }, "warning": { - "message": "ATTENZIONE", + "message": "NB", "description": "WARNING (should stay in capitalized letters if the language permits)" }, "confirmVaultExport": { @@ -678,10 +678,10 @@ "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non cifrato. Non salvare o inviare il file esportato su canali non protetti (come la posta elettronica). Eliminalo immediatamente dopo l'utilizzo." }, "encExportKeyWarningDesc": { - "message": "Questa esportazione cifra i tuoi dati utilizzando la chiave di cifratura del tuo account. Se cambi la chiave di cifratura del tuo account, non sarai più in grado di decifrare il file esportato e sarà necessario eseguire una nuova esportazione." + "message": "Questa esportazione cripta i tuoi dati usando la chiave di criptografia del tuo account. Se cambi la chiave di criptografia del tuo account, non sarai più in grado di decifrare il file esportato dovrai eseguire una nuova esportazione." }, "encExportAccountWarningDesc": { - "message": "Le chiavi di cifratura dell'account sono uniche per ogni account utente Bitwarden, quindi non è possibile importare un'esportazione cifrata in un account diverso." + "message": "Le chiavi di criptografia dell'account sono uniche per ogni account Bitwarden, quindi non puoi importare un file di esportazione criptato in un account diverso." }, "exportMasterPassword": { "message": "Inserisci la tua password principale per esportare i dati della tua cassaforte." @@ -690,7 +690,7 @@ "message": "Condiviso" }, "learnOrg": { - "message": "Scopri le organizzazioni" + "message": "Ulteriori informazioni sulle organizzazioni" }, "learnOrgConfirmation": { "message": "Bitwarden ti permette di condividere gli elementi della tua cassaforte con altri usando un'organizzazione. Vuoi visitare il sito bitwarden.com per saperne di più?" @@ -715,10 +715,10 @@ } }, "moveToOrgDesc": { - "message": "Scegli un'organizzazione in cui desideri spostare questo elemento. Spostare in un'organizzazione trasferisce la proprietà dell'elemento all'organizzazione. Non sarai più il proprietario diretto di questo elemento una volta spostato." + "message": "Scegli un'organizzazione in cui vuoi spostare questo elemento. Spostare in un'organizzazione trasferisce la proprietà dell'elemento all'organizzazione. Non sarai più il proprietario diretto di questo elemento una volta spostato." }, "learnMore": { - "message": "Per saperne di più" + "message": "Ulteriori informazioni" }, "authenticatorKeyTotp": { "message": "Chiave di autenticazione (TOTP)" @@ -727,7 +727,7 @@ "message": "Codice di verifica (TOTP)" }, "copyVerificationCode": { - "message": "Copia il codice di verifica" + "message": "Copia codice di verifica" }, "attachments": { "message": "Allegati" @@ -748,49 +748,49 @@ "message": "Nessun allegato." }, "attachmentSaved": { - "message": "L'allegato è stato salvato." + "message": "Allegato salvato" }, "file": { "message": "File" }, "selectFile": { - "message": "Seleziona un file." + "message": "Seleziona un file" }, "maxFileSize": { "message": "La dimensione massima del file è 500 MB." }, "featureUnavailable": { - "message": "Funzione non disponibile" + "message": "Funzionalità non disponibile" }, "updateKey": { - "message": "Non puoi utilizzare questa funzione finché non aggiorni la tua chiave di cifratura." + "message": "Non puoi usare questa funzionalità finché non aggiorni la tua chiave di criptografia." }, "premiumMembership": { - "message": "Abbonamento premium" + "message": "Abbonamento Premium" }, "premiumManage": { "message": "Gestisci abbonamento" }, "premiumManageAlert": { - "message": "Puoi gestire il tuo abbonamento premium online su bitwarden.com. Vuoi visitare ora il sito?" + "message": "Puoi gestire il tuo abbonamento Premium usando la cassaforte web su bitwarden.com. Vuoi visitare il sito?" }, "premiumRefresh": { "message": "Aggiorna abbonamento" }, "premiumNotCurrentMember": { - "message": "Al momento non sei un membro premium." + "message": "Al momento non sei un membro Premium." }, "premiumSignUpAndGet": { - "message": "Iscriviti ad un abbonamento premium e ottieni:" + "message": "Passa a Premium e ottieni:" }, "ppremiumSignUpStorage": { - "message": "1 GB di spazio di archiviazione cifrato per gli allegati." + "message": "1 GB di spazio di archiviazione criptato per gli allegati." }, "ppremiumSignUpTwoStep": { - "message": "Opzioni addizionali di login in due passaggi come YubiKey, FIDO U2F, e Duo." + "message": "Più opzioni di verifica in due passaggi come YubiKey, FIDO U2F, e Duo." }, "ppremiumSignUpReports": { - "message": "Sicurezza delle password, integrità dell'account e resoconti sulla violazione di dati per mantenere sicura la tua cassaforte." + "message": "Sicurezza delle password, integrità dell'account, e rapporti su violazioni di dati per mantenere sicura la tua cassaforte." }, "ppremiumSignUpTotp": { "message": "Generatore di codice di verifica TOTP (2FA) per i login nella tua cassaforte." @@ -799,16 +799,16 @@ "message": "Supporto clienti prioritario." }, "ppremiumSignUpFuture": { - "message": "Tutte le funzioni Premium future. Nuove in arrivo!" + "message": "Tutte le prossime funzioni Premium. Nuove in arrivo!" }, "premiumPurchase": { - "message": "Acquista Premium" + "message": "Passa a Premium" }, "premiumPurchaseAlert": { - "message": "Puoi acquistare il tuo abbonamento premium online su bitwarden.com. Vuoi visitare ora il sito?" + "message": "Puoi acquistare il un abbonamento Premium dalla cassaforte web su bitwarden.com. Vuoi visitare il sito?" }, "premiumCurrentMember": { - "message": "Sei un membro premium!" + "message": "Sei un membro Premium!" }, "premiumCurrentMemberThanks": { "message": "Grazie per il tuo supporto a Bitwarden." @@ -835,16 +835,16 @@ "message": "Richiedi dati biometrici all'avvio" }, "premiumRequired": { - "message": "Premium richiesto" + "message": "Premium necessario" }, "premiumRequiredDesc": { - "message": "Un abbonamento Premium è richiesto per utilizzare questa funzionalità." + "message": "Passa a Premium per utilizzare questa funzionalità." }, "enterVerificationCodeApp": { "message": "Inserisci il codice di verifica a 6 cifre dalla tua applicazione di autenticazione." }, "enterVerificationCodeEmail": { - "message": "Inserisci il codice di verifica a 6 cifrato inviato a $EMAIL$.", + "message": "Inserisci il codice di verifica a 6 cifre inviato a $EMAIL$.", "placeholders": { "email": { "content": "$1", @@ -868,7 +868,7 @@ "message": "Invia nuovamente l'email con il codice di verifica" }, "useAnotherTwoStepMethod": { - "message": "Usa un altro metodo di login in due passaggi" + "message": "Usa un altro metodo di verifica in due passaggi" }, "insertYubiKey": { "message": "Inserisci la tua YubiKey nella porta USB del computer, poi premi il suo pulsante." @@ -877,7 +877,7 @@ "message": "Inserisci la tua chiave di sicurezza nella porta USB del tuo computer. Se dispone di un pulsante, premilo." }, "webAuthnNewTab": { - "message": "Per avviare la verifica WebAuthn 2FA. Fare clic sul pulsante in basso per aprire una nuova scheda e seguire le istruzioni fornite nella nuova scheda. " + "message": "Per avviare la verifica WebAuthn 2FA. Clicca il pulsante qui sotto per aprire una nuova scheda e segui le istruzioni fornite nella nuova scheda." }, "webAuthnNewTabOpen": { "message": "Apri nuova scheda" @@ -889,16 +889,16 @@ "message": "Login non disponibile" }, "noTwoStepProviders": { - "message": "Questo account ha abilitato il login in due passaggi, ma nessuno dei provider configurati è supportato da questo browser web." + "message": "La verifica in due passaggi è abilitata per il tuo account, ma nessuno dei metodi configurati è supportato da questo browser." }, "noTwoStepProviders2": { - "message": "Utilizzare un browser web supportato (come Chrome) e/o aggiungere altri provider che sono supportati meglio da tutti i browser web (ad esempio un'applicazione di autenticazione)." + "message": "Usa un browser web supportato (come Chrome) e/o aggiungi altri metodi che sono supportati meglio da tutti i browser web (come un'applicazione di autenticazione)." }, "twoStepOptions": { - "message": "Opzioni di login in due passaggi" + "message": "Opzioni di verifica in due passaggi" }, "recoveryCodeDesc": { - "message": "Hai perso l'accesso a tutti i tuoi provider a due passaggi? Usa il tuo codice di recupero per disattivarli dal tuo account." + "message": "Hai perso l'accesso a tutti i tuoi metodi di verifica in due passaggi? Usa il tuo codice di recupero per disattivarli tutti dal tuo account." }, "recoveryCodeTitle": { "message": "Codice di recupero" @@ -907,7 +907,7 @@ "message": "Applicazione di autenticazione" }, "authenticatorAppDesc": { - "message": "Usa un'applicazione di autenticazione (come Authy o Google Authenticator) per generare codici di verifica a tempo.", + "message": "Usa un'applicazione di autenticazione (come Authy o Google Authenticator) per generare codici di verifica basati sul tempo.", "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." }, "yubiKeyTitle": { @@ -940,7 +940,7 @@ "message": "Ambiente self-hosted" }, "selfHostedEnvironmentFooter": { - "message": "Specifica l'URL principale della tua installazione Bitwarden self-hosted." + "message": "Specifica l'URL principale della tua installazione self-hosted di Bitwarden." }, "customEnvironment": { "message": "Ambiente personalizzato" @@ -967,43 +967,43 @@ "message": "URL del server di icone" }, "environmentSaved": { - "message": "Gli URL dell'ambiente sono stati salvati." + "message": "URL dell'ambiente salvati" }, "enableAutoFillOnPageLoad": { - "message": "Abilita l'auto-completamento al caricamento della pagina" + "message": "Riempi automaticamente al caricamento della pagina" }, "enableAutoFillOnPageLoadDesc": { - "message": "Se è rilevato un modulo di login, riempi automaticamente quando la pagina si carica." + "message": "Se sono rilevati campi di login, riempili automaticamente quando la pagina si carica." }, "experimentalFeature": { - "message": "I siti web compromessi o non attendibili possono abusare del riempimento automatico al caricamento della pagina." + "message": "Siti compromessi potrebbero sfruttare il riempimento automatico al caricamento della pagina." }, "learnMoreAboutAutofill": { - "message": "Ulteriori informazioni sul riempimento automatico" + "message": "Ulteriori informazioni" }, "defaultAutoFillOnPageLoad": { - "message": "Impostazioni di completamento automatico predefinito per i login" + "message": "Impostazioni di riempimento automatico predefinito per i login" }, "defaultAutoFillOnPageLoadDesc": { "message": "Puoi disattivare il riempimento automatico al caricamento della pagina per singoli login dalla sezione Modifica elemento." }, "itemAutoFillOnPageLoad": { - "message": "Riempi automaticamente al caricamento della pagina (se abilitato in Opzioni)" + "message": "Riempi automaticamente al caricamento della pagina (se abilitato in Impostazioni)" }, "autoFillOnPageLoadUseDefault": { "message": "Usa impostazione predefinita" }, "autoFillOnPageLoadYes": { - "message": "Riempimento automatico al caricamento della pagina" + "message": "Riempi automaticamente al caricamento della pagina" }, "autoFillOnPageLoadNo": { "message": "Non riempire automaticamente al caricamento della pagina" }, "commandOpenPopup": { - "message": "Apri popup cassaforte" + "message": "Apri cassaforte in un pop-up" }, "commandOpenSidebar": { - "message": "Apri la cassaforte nella barra laterale" + "message": "Apri cassaforte nella barra laterale" }, "commandAutofillDesc": { "message": "Riempi automaticamente con l'ultimo login utilizzato sul sito corrente" @@ -1050,22 +1050,22 @@ "description": "This describes a value that is 'linked' (tied) to another value." }, "popup2faCloseMessage": { - "message": "Facendo clic all'esterno della finestra popup per controllare la mail con il codice di verifica chiuderà la finestra di popup. Vuoi aprire questo popup in una nuova finestra?" + "message": "Cliccare fuori del pop-up per controllare il codice di verifica nella tua email chiuderà questo pop-up. Vuoi aprire questo pop-up in una nuova finestra in modo che non si chiuda?" }, "popupU2fCloseMessage": { - "message": "Questo browser non può elaborare richieste U2F in questa finestra a comparsa. Vuoi aprire questo popup in una nuova finestra in modo da poter accedere usando U2F?" + "message": "Questo browser non può elaborare richieste U2F in questo pop-up. Aprire questo pop-up in una nuova finestra per accedere usando U2F?" }, "enableFavicon": { - "message": "Mostra icone del sito" + "message": "Mostra icone dei siti" }, "faviconDesc": { - "message": "Mostra un'immagine riconoscibile accanto a ogni login." + "message": "Mostra un piccolo logo riconoscibile accanto a ogni login." }, "enableBadgeCounter": { - "message": "Mostra contatore" + "message": "Mostra badge contatore" }, "badgeCounterDesc": { - "message": "Indica quanti login hai per la pagina web corrente." + "message": "Mostra il numero di login salvati per il sito web corrente nell'icona dell'estensione." }, "cardholderName": { "message": "Titolare della carta" @@ -1140,7 +1140,7 @@ "message": "Sig.ra" }, "dr": { - "message": "Dottore" + "message": "Dr." }, "mx": { "message": "Mx" @@ -1155,7 +1155,7 @@ "message": "Cognome" }, "fullName": { - "message": "Nome completo" + "message": "Nome e cognome" }, "identityName": { "message": "Nome dell'identità" @@ -1167,10 +1167,10 @@ "message": "Codice fiscale/Previdenza sociale" }, "passportNumber": { - "message": "Numero del passaporto" + "message": "Numero passaporto" }, "licenseNumber": { - "message": "Numero della patente" + "message": "Numero patente" }, "email": { "message": "Email" @@ -1258,7 +1258,7 @@ "message": "Verifica se la password è stata esposta." }, "passwordExposed": { - "message": "Questa password è presente $VALUE$ volta/e in database di violazioni. Dovresti cambiarla.", + "message": "Questa password è stata esposta $VALUE$ volte nei database di violazioni dei dati. Dovresti cambiarla.", "placeholders": { "value": { "content": "$1", @@ -1300,14 +1300,14 @@ "description": "Default URI match detection for auto-fill." }, "toggleOptions": { - "message": "Attiva/Disattiva opzioni" + "message": "Mostra/nascondi" }, "toggleCurrentUris": { - "message": "Mostra/Nascondi URI attuale", + "message": "Mostra/nascondi URI corrente", "description": "Toggle the display of the URIs of the currently open tabs in the browser." }, "currentUri": { - "message": "URI attuale", + "message": "URI corrente", "description": "The URI of one of the current open tabs in the browser." }, "organization": { @@ -1321,7 +1321,7 @@ "message": "Tutti gli elementi" }, "noPasswordsInList": { - "message": "Non ci sono password da elencare." + "message": "Non ci sono password da mostrare." }, "remove": { "message": "Rimuovi" @@ -1342,13 +1342,13 @@ "description": "ex. Date this password was updated" }, "neverLockWarning": { - "message": "Sei sicuro di voler usare l'opzione \"Mai\"? Impostando le opzioni di blocco su \"Mai\", la chiave di cifratura della cassaforte sarà salvata sul tuo dispositivo. Se utilizzi questa opzione, assicurati di mantenere il dispositivo adeguatamente protetto." + "message": "Sei sicuro di voler usare l'opzione \"Mai\"? Impostare le opzioni di blocco su \"Mai\" salverà la chiave di criptografia della cassaforte sul tuo dispositivo. Se utilizzi questa opzione, assicurati di mantenere il tuo dispositivo adeguatamente protetto." }, "noOrganizationsList": { - "message": "Non appartieni ad alcuna organizzazione. Le organizzazioni ti consentono di condividere oggetti in modo sicuro con altri utenti." + "message": "Non appartieni a nessuna organizzazione. Le organizzazioni ti consentono di condividere elementi con altri in modo sicuro." }, "noCollectionsInList": { - "message": "Nessuna raccolta da elencare." + "message": "Nessuna raccolta da mostrare." }, "ownership": { "message": "Proprietà" @@ -1372,7 +1372,7 @@ "message": "Password principale debole" }, "weakMasterPasswordDesc": { - "message": "La password principale che hai scelto è debole. È necessario utilizzare una password principale forte (o una frase segreta) per proteggere adeguatamente il tuo account Bitwarden. Sei sicuro di voler utilizzare questa password principale?" + "message": "La password principale che hai scelto è debole. Usa una password principale (o una frase segreta) forte per proteggere adeguatamente il tuo account Bitwarden. Sei sicuro di voler utilizzare questa password principale?" }, "pin": { "message": "PIN", @@ -1382,10 +1382,10 @@ "message": "Sblocca con PIN" }, "setYourPinCode": { - "message": "Imposta il tuo codice PIN per sbloccare Bitwarden. Le impostazioni PIN saranno reimpostate se eseguirai una disconnessione completa dall'applicazione." + "message": "Imposta il tuo codice PIN per sbloccare Bitwarden. Le tue impostazioni PIN saranno resettate se esci completamente dall'applicazione." }, "pinRequired": { - "message": "È richiesto il PIN." + "message": "Codice PIN obbligatorio." }, "invalidPin": { "message": "Codice PIN non valido." @@ -1397,7 +1397,7 @@ "message": "In attesa di conferma dal desktop" }, "awaitDesktopDesc": { - "message": "Si prega di confermare utilizzando l'autenticazione biometrica nell'applicazione Bitwarden Desktop per abilitare l'autenticazione biometrica per il browser." + "message": "Conferma utilizzando l'autenticazione biometrica nell'applicazione Bitwarden Desktop per abilitare l'autenticazione biometrica per il browser." }, "lockWithMasterPassOnRestart": { "message": "Blocca con la password principale al riavvio del browser" @@ -1412,7 +1412,7 @@ "message": "Clona" }, "passwordGeneratorPolicyInEffect": { - "message": "Una o più policy dell'organizzazione controllano le impostazioni del tuo generatore." + "message": "Una o più politiche dell'organizzazione controllano le tue impostazioni del generatore." }, "vaultTimeoutAction": { "message": "Azione timeout cassaforte" @@ -1429,7 +1429,7 @@ "message": "Cerca nel cestino" }, "permanentlyDeleteItem": { - "message": "Elimina definitivamente l'elemento" + "message": "Elimina elemento definitivamente" }, "permanentlyDeleteItemConfirmation": { "message": "Sei sicuro di voler eliminare definitivamente questo elemento?" @@ -1447,7 +1447,7 @@ "message": "Elemento ripristinato" }, "vaultTimeoutLogOutConfirmation": { - "message": "La disconnessione rimuove tutti gli accessi alla cassaforte e richiede l'autenticazione online dopo il periodo di timeout. Sei sicuro di voler utilizzare questa impostazione?" + "message": "Uscire rimuoverà tutti gli accessi alla tua cassaforte e richiede l'autenticazione online dopo il periodo di timeout. Sei sicuro di voler usare questa opzione?" }, "vaultTimeoutLogOutConfirmationTitle": { "message": "Conferma azione di timeout" @@ -1459,13 +1459,13 @@ "message": "Elemento riempito automaticamente e URI salvato" }, "autoFillSuccess": { - "message": "Elemento riempito automaticamente" + "message": "Elemento riempito automaticamente " }, "setMasterPassword": { - "message": "Imposta la password principale" + "message": "Imposta password principale" }, "masterPasswordPolicyInEffect": { - "message": "La password principale deve avere i seguenti requisiti, stabiliti da una o più regole dell'organizzazione:" + "message": "La password principale deve avere i seguenti requisiti, stabiliti dalle politiche dell'organizzazione:" }, "policyInEffectMinComplexity": { "message": "Punteggio minimo di complessità di $SCORE$", @@ -1492,7 +1492,7 @@ "message": "Contiene almeno un carattere minuscolo" }, "policyInEffectNumbers": { - "message": "Contiene almeno una cifra" + "message": "Contiene uno o più numeri" }, "policyInEffectSpecial": { "message": "Contiene almeno uno dei seguenti caratteri speciali $CHARS$", @@ -1504,19 +1504,19 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "La tua nuova password principale non soddisfa i parametri di sicurezza." + "message": "La tua nuova password principale non soddisfa i requisiti di sicurezza." }, "acceptPolicies": { - "message": "Selezionando la casella accetti quanto segue:" + "message": "Selezionando questa casella accetti quanto segue:" }, "acceptPoliciesRequired": { "message": "I termini di servizio e l'informativa sulla privacy non sono stati accettati." }, "termsOfService": { - "message": "Termini del servizio" + "message": "Termini di Servizio" }, "privacyPolicy": { - "message": "Informativa sulla privacy" + "message": "Informativa sulla Privacy" }, "hintEqualsPassword": { "message": "Il suggerimento della password non può essere uguale alla password." @@ -1528,7 +1528,7 @@ "message": "Verifica sincronizzazione desktop" }, "desktopIntegrationVerificationText": { - "message": "Verifica che l'applicazione desktop mostri questa impronta digitale: " + "message": "Verifica che l'applicazione desktop mostri questa impronta: " }, "desktopIntegrationDisabledTitle": { "message": "L'integrazione del browser non è abilitata" @@ -1540,16 +1540,16 @@ "message": "Avvia l'applicazione desktop Bitwarden" }, "startDesktopDesc": { - "message": "L'applicazione Bitwarden Desktop deve essere avviata prima che questa funzione possa essere utilizzata." + "message": "L'applicazione Bitwarden Desktop deve essere avviata prima che l'autenticazione biometrica possa essere usata." }, "errorEnableBiometricTitle": { - "message": "Impossibile abilitare l'autenticazione biometrica" + "message": "Impossibile abilitare autenticazione biometrica" }, "errorEnableBiometricDesc": { "message": "L'azione è stata annullata dall'applicazione desktop" }, "nativeMessagingInvalidEncryptionDesc": { - "message": "L'applicazione desktop ha invalidato il canale di comunicazione sicuro. Ritenta l'operazione" + "message": "L'applicazione desktop ha invalidato il canale di comunicazione sicuro. Riprova di nuovo" }, "nativeMessagingInvalidEncryptionTitle": { "message": "Comunicazione desktop interrotta" @@ -1558,13 +1558,13 @@ "message": "L'applicazione desktop è collegata a un account diverso. Assicurati che entrambe le applicazioni siano collegate allo stesso account." }, "nativeMessagingWrongUserTitle": { - "message": "Account non corrispondente" + "message": "Account non corrispondono" }, "biometricsNotEnabledTitle": { "message": "Autenticazione biometrica non abilitata" }, "biometricsNotEnabledDesc": { - "message": "L'autenticazione biometrica del browser richiede che l'autenticazione biometrica del desktop sia prima abilitata nelle impostazioni." + "message": "L'autenticazione biometrica del browser richiede che l'autenticazione biometrica sia già abilitata anche nelle impostazioni del desktop." }, "biometricsNotSupportedTitle": { "message": "Autenticazione biometrica non supportata" @@ -1582,19 +1582,19 @@ "message": "Errore richiesta di autorizzazione" }, "nativeMessaginPermissionSidebarDesc": { - "message": "Questa azione non può essere eseguita nella barra laterale, riprova l'azione nel popup o nella finestra." + "message": "Questa azione non può essere eseguita nella barra laterale, riprova l'azione nel pop-up o nella finestra." }, "personalOwnershipSubmitError": { - "message": "A causa di una policy aziendale, non è possibile salvare elementi nella tua cassaforte personale. Cambia l'opzione proprietà in un'organizzazione e scegli tra le raccolte disponibili." + "message": "A causa di una politica aziendale, non puoi salvare elementi nella tua cassaforte personale. Cambia l'opzione di proprietà in un'organizzazione e scegli tra le raccolte disponibili." }, "personalOwnershipPolicyInEffect": { - "message": "Una policy dell'organizzazione controlla le opzioni di proprietà." + "message": "Una politica dell'organizzazione sta influenzando le tue opzioni di proprietà." }, "excludedDomains": { "message": "Domini esclusi" }, "excludedDomainsDesc": { - "message": "Bitwarden non chiederà di salvare i dettagli di accesso per questi domini. È necessario aggiornare la pagina perché le modifiche abbiano effetto." + "message": "Bitwarden non ti chiederà di aggiungere nuovi login per questi domini. Ricorda di ricaricare la pagina perché le modifiche abbiano effetto." }, "excludedDomainsInvalidDomain": { "message": "$DOMAIN$ non è un dominio valido", @@ -1658,7 +1658,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLink": { - "message": "Collegamento del Send", + "message": "Link del Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "disabled": { @@ -1680,7 +1680,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTypeHeader": { - "message": "Di quale tipo di Send si tratta?", + "message": "Che tipo di Send è questo?", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNameDesc": { @@ -1694,14 +1694,14 @@ "message": "Data di eliminazione" }, "deletionDateDesc": { - "message": "Il Send sarà definitivamente eliminato alla data e ora specificate.", + "message": "Il Send sarà eliminato definitivamente alla data e ora specificate.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { "message": "Data di scadenza" }, "expirationDateDesc": { - "message": "Se impostato, l'accesso a questo Send scadrà alla data e all'ora specificate.", + "message": "Se impostato, l'accesso a questo Send scadrà alla data e ora specificate.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "oneDay": { @@ -1723,11 +1723,11 @@ "message": "Numero massimo di accessi" }, "maximumAccessCountDesc": { - "message": "Se impostata, gli utenti non saranno più in grado di accedere a questo Send una volta raggiunto il numero massimo di accessi.", + "message": "Se impostata, gli utenti potranno più accedere a questo Send una volta raggiunto il numero massimo di accessi.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendPasswordDesc": { - "message": "Facoltativamente, richiedi una password agli utenti per accedere al Send.", + "message": "Richiedi una password agli utenti per accedere a questo Send (facoltativo).", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendNotesDesc": { @@ -1735,11 +1735,11 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisableDesc": { - "message": "Disabilita il Send per renderlo inaccessibile.", + "message": "Disattiva il Send per renderlo inaccessibile.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendShareDesc": { - "message": "Copia il collegamento del Send negli appunti dopo aver salvato.", + "message": "Copia il link al Send negli appunti dopo averlo salvato.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendTextDesc": { @@ -1750,21 +1750,21 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "currentAccessCount": { - "message": "Numero di accessi attuale" + "message": "Numero di accessi correnti" }, "createSend": { - "message": "Crea nuovo Send", + "message": "Nuovo Send", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "newPassword": { "message": "Nuova password" }, "sendDisabled": { - "message": "Send disabilitato", + "message": "Send rimosso", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendDisabledWarning": { - "message": "A causa di una policy aziendale, è possibile eliminare solo un Send esistente.", + "message": "A causa di una politica aziendale, puoi eliminare solo Send esistenti.", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "createdSend": { @@ -1772,17 +1772,17 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "editedSend": { - "message": "Send modificato", + "message": "Send salvato", "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "sendLinuxChromiumFileWarning": { - "message": "Per scegliere un file, apri l'estensione nella barra laterale (se possibile) o apri una nuova finestra facendo clic su questo banner." + "message": "Per scegliere un file, apri l'estensione nella barra laterale (se possibile) o apri una nuova finestra cliccando questo banner." }, "sendFirefoxFileWarning": { - "message": "Per scegliere un file utilizzando Firefox, apri l'estensione nella barra laterale o apri una nuova finestra facendo clic sul banner." + "message": "Per scegliere un file usando Firefox, apri l'estensione nella barra laterale o apri una nuova finestra cliccando questo banner." }, "sendSafariFileWarning": { - "message": "Per scegliere un file utilizzando Safari, apri una nuova finestra facendo clic sul banner." + "message": "Per scegliere un file usando Safari, apri una nuova finestra cliccando questo banner." }, "sendFileCalloutHeader": { "message": "Prima di iniziare" @@ -1792,7 +1792,7 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read '**To use a calendar style date picker ** click here to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage2": { - "message": "fai clic qui", + "message": "clicca qui", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker **click here** to pop out your window.'" }, "sendFirefoxCustomDatePopoutMessage3": { @@ -1806,10 +1806,10 @@ "message": "La data di eliminazione fornita non è valida." }, "expirationDateAndTimeRequired": { - "message": "È necessario inserire data e ora di scadenza." + "message": "La data e ora di scadenza sono obbligatorie." }, "deletionDateAndTimeRequired": { - "message": "È necessario inserire data e ora di eliminazione." + "message": "La data e ora di eliminazione sono obbligatorie." }, "dateParsingError": { "message": "Si è verificato un errore durante il salvataggio delle date di eliminazione e scadenza." @@ -1818,7 +1818,7 @@ "message": "Nascondi il mio indirizzo email dai destinatari." }, "sendOptionsPolicyInEffect": { - "message": "Una o più policy dell'organizzazione influenzano le opzioni dei Send." + "message": "Una o più politiche dell'organizzazione stanno influenzando le tue opzioni di Send." }, "passwordPrompt": { "message": "Nuova richiesta della password principale" @@ -1830,10 +1830,10 @@ "message": "Questa azione è protetta. Per continuare, inserisci nuovamente la tua password principale per verificare la tua identità." }, "emailVerificationRequired": { - "message": "Verifica email richiesta" + "message": "Verifica email obbligatoria" }, "emailVerificationRequiredDesc": { - "message": "Devi verificare la tua email per utilizzare questa funzionalità. Puoi verificare la tua email nella cassaforte web." + "message": "Devi verificare la tua email per usare questa funzionalità. Puoi verificare la tua email nella cassaforte web." }, "updatedMasterPassword": { "message": "Password principale aggiornata" @@ -1842,13 +1842,13 @@ "message": "Aggiorna password principale" }, "updateMasterPasswordWarning": { - "message": "La tua password principale è stata recentemente modificata da un amministratore nella tua organizzazione. Per accedere alla cassaforte, aggiorna ora la password. Procedendo sarai disconnesso dalla sessione attuale e ti sarà richiesto di effettuare nuovamente l'accesso. Le sessioni attive su altri dispositivi potrebbero continuare a rimanere attive per un massimo di un'ora." + "message": "La tua password principale è stata recentemente modificata da un amministratore nella tua organizzazione. Per accedere alla cassaforte, devi aggiornarla ora. Procedendo sarai disconnesso dalla sessione attuale, richiedendo di effettuare nuovamente l'accesso. Le sessioni attive su altri dispositivi possono continuare a rimanere attive per un massimo di un'ora." }, "resetPasswordPolicyAutoEnroll": { "message": "Iscrizione automatica" }, "resetPasswordAutoEnrollInviteWarning": { - "message": "Questa organizzazione ha una policy aziendale che ti iscriverà automaticamente al ripristino della password. Ciò permetterà agli amministratori dell'organizzazione di cambiare la tua password principale." + "message": "Questa organizzazione ha una politica aziendale che ti iscriverà automaticamente al ripristino della password. Questo permetterà agli amministratori dell'organizzazione di cambiare la tua password principale." }, "selectFolder": { "message": "Seleziona cartella..." @@ -1863,7 +1863,7 @@ "message": "Minuti" }, "vaultTimeoutPolicyInEffect": { - "message": "Le policy dell'organizzazione stanno influenzando il timeout della tua cassaforte. Il tempo massimo consentito è di $HOURS$ ore e $MINUTES$ minuti", + "message": "Le politiche della tua organizzazione stanno influenzando il timeout della tua cassaforte. Il tempo massimo consentito è di $HOURS$ ore e $MINUTES$ minuti", "placeholders": { "hours": { "content": "$1", @@ -1879,19 +1879,19 @@ "message": "Il timeout della tua cassaforte supera i limiti impostati dalla tua organizzazione." }, "vaultExportDisabled": { - "message": "Esportazione cassaforte disabilitata" + "message": "Esportazione della cassaforte non disponibile" }, "personalVaultExportPolicyInEffect": { - "message": "Una o più policy dell'organizzazione ti impediscono di esportare la tua cassaforte personale." + "message": "Una o più politiche dell'organizzazione ti impediscono di esportare la tua cassaforte personale." }, "copyCustomFieldNameInvalidElement": { - "message": "Impossibile identificare un elemento del form valido. Prova a ispezionare l'HTML." + "message": "Impossibile identificare un elemento del modulo valido. Prova a ispezionare l'HTML." }, "copyCustomFieldNameNotUnique": { "message": "Nessun identificatore univoco trovato." }, "convertOrganizationEncryptionDesc": { - "message": "$ORGANIZATION$ sta usando SSO con un server \"self-hosted\". Non è più richiesta una password principale per accedere per i membri di questa organizzazione.", + "message": "$ORGANIZATION$ sta usando SSO con un server self-hosted. Una password principale non è più necessaria per accedere per i membri di questa organizzazione.", "placeholders": { "organization": { "content": "$1", @@ -1900,13 +1900,13 @@ } }, "leaveOrganization": { - "message": "Lascia l'organizzazione" + "message": "Lascia organizzazione" }, "removeMasterPassword": { - "message": "Rimuovi la password principale" + "message": "Rimuovi password principale" }, "removedMasterPassword": { - "message": "Password principale rimossa." + "message": "Password principale rimossa" }, "leaveOrganizationConfirmation": { "message": "Sei sicuro di voler lasciare questa organizzazione?" @@ -1918,13 +1918,13 @@ "message": "Attiva/Disattiva conteggio dei caratteri" }, "sessionTimeout": { - "message": "La tua sessione è scaduta. Torna indietro e riprova ad accedere." + "message": "La tua sessione è scaduta. Torna indietro e prova ad accedere di nuovo." }, "exportingPersonalVaultTitle": { "message": "Esportazione cassaforte personale" }, "exportingPersonalVaultDescription": { - "message": "Saranno esportati solo gli oggetti della cassaforte personale associati a $EMAIL$. Gli oggetti della cassaforte dell'organizzazione non saranno inclusi.", + "message": "Solo gli elementi della cassaforte personale associati a $EMAIL$ saranno esportati. Gli elementi della cassaforte dell'organizzazione non saranno inclusi.", "placeholders": { "email": { "content": "$1", @@ -1949,7 +1949,7 @@ "description": "Username generator option that appends a random sub-address to the username. For example: address+subaddress@email.com" }, "plusAddressedEmailDesc": { - "message": "Usa le funzionalità di sub-indirizzamento del tuo fornitore di posta elettronica." + "message": "Usa le funzionalità di sub-indirizzamento del tuo fornitore di email." }, "catchallEmail": { "message": "Email catch-all" @@ -1967,7 +1967,7 @@ "message": "Nome sito web" }, "whatWouldYouLikeToGenerate": { - "message": "Cosa vorresti generare?" + "message": "Cosa vuoi generare?" }, "passwordType": { "message": "Tipo di password" @@ -1998,13 +1998,13 @@ "message": "È richiesto un abbonamento Premium" }, "organizationIsDisabled": { - "message": "L'organizzazione è disabilitata." + "message": "Organizzazione disabilitata." }, "disabledOrganizationFilterError": { - "message": "Non è possibile accedere agli oggetti nelle organizzazioni disabilitate. Contatta il proprietario della tua organizzazione per ricevere assistenza." + "message": "Non è possibile accedere a elementi da organizzazioni disabilitate. Contatta il proprietario della tua organizzazione." }, "loggingInTo": { - "message": "Accedo a $DOMAIN$", + "message": "Accedendo a $DOMAIN$", "placeholders": { "domain": { "content": "$1", @@ -2013,7 +2013,7 @@ } }, "settingsEdited": { - "message": "Le impostazioni sono state cambiate" + "message": "Impostazioni modificate" }, "environmentEditedClick": { "message": "Clicca qui" @@ -2025,7 +2025,7 @@ "message": "Versione Server" }, "selfHosted": { - "message": "Self-Hosted" + "message": "Self-hosted" }, "thirdParty": { "message": "Terze parti" @@ -2049,10 +2049,10 @@ } }, "loginWithMasterPassword": { - "message": "Accedi con la password principale" + "message": "Accedi con password principale" }, "loggingInAs": { - "message": "Accesso eseguito come" + "message": "Accedendo come" }, "notYou": { "message": "Non sei tu?" @@ -2064,16 +2064,16 @@ "message": "Ricorda email" }, "loginWithDevice": { - "message": "Accedi con il dispositivo" + "message": "Accedi con dispositivo" }, "loginWithDeviceEnabledInfo": { - "message": "Il login con il dispositivo deve essere abilitato nelle impostazioni dell'app Bitwarden. Hai bisogno di un'altra opzione?" + "message": "L'accesso con dispositivo deve essere abilitato nelle impostazioni dell'app Bitwarden. Ti serve un'altra opzione?" }, "fingerprintPhraseHeader": { "message": "Frase impronta" }, "fingerprintMatchInfo": { - "message": "Assicurati che la tua cassaforte sia sbloccata e che la \"frase impronta\" corrisponda sull'altro dispositivo." + "message": "Assicurati che la tua cassaforte sia sbloccata e che la frase impronta corrisponda sull'altro dispositivo." }, "resendNotification": { "message": "Invia nuova notifica" @@ -2091,16 +2091,16 @@ "message": "Password principale violata" }, "exposedMasterPasswordDesc": { - "message": "Password trovata in un database di data breach noto. Usa una password esclusiva per proteggere il tuo account. Sei sicuro di voler usare una password violata?" + "message": "Password trovata una violazione dei dati. Usa una password unica per proteggere il tuo account. Sei sicuro di voler usare una password violata?" }, "weakAndExposedMasterPassword": { "message": "Password principale debole e violata" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Password debole trovata in un database di data breach noto. Usa una password forte ed esclusiva per proteggere il tuo account. Sei sicuro di voler utilizzare questa password?" + "message": "Password debole e trovata una violazione dei dati. Usa una password forte e unica per proteggere il tuo account. Sei sicuro di voler usare questa password?" }, "checkForBreaches": { - "message": "Controlla se la tua password è presente nei database dei data breach noti" + "message": "Controlla se la tua password è presente in una violazione dei dati" }, "important": { "message": "Importante:" @@ -2118,7 +2118,7 @@ } }, "autofillPageLoadPolicyActivated": { - "message": "Le politiche della tua organizzazione hanno attivato il riempimento automatico al caricamento della pagina." + "message": "Le politiche della tua organizzazione hanno abilitato il riempimento automatico al caricamento della pagina." }, "howToAutofill": { "message": "Come riempire automaticamente" @@ -2136,19 +2136,19 @@ "message": "Seleziona un elemento da questa pagina o imposta una scorciatoia nelle impostazioni." }, "gotIt": { - "message": "Capito" + "message": "Ok" }, "autofillSettings": { "message": "Impostazioni di riempimento automatico" }, "autofillShortcut": { - "message": "Scorciatoia per il riempimento automatico" + "message": "Scorciatoia da tastiera per riempire automaticamente" }, "autofillShortcutNotSet": { - "message": "La scorciatoia per il riempimento automatico non è stata impostata. Impostala nelle impostazioni del browser." + "message": "Non è stata impostata nessuna scorciatoia da tastiera per riempire automaticamente. Impostala nelle impostazioni del browser." }, "autofillShortcutText": { - "message": "La scorciatoia per il riempimento automatico è: $COMMAND$. Cambiala nelle impostazioni del browser.", + "message": "La scorciatoia da tastiera per riempire automaticamente è: $COMMAND$. Cambiala nelle impostazioni del browser.", "placeholders": { "command": { "content": "$1", @@ -2157,7 +2157,7 @@ } }, "autofillShortcutTextSafari": { - "message": "Scorciatoia predefinita per il riempimento automatico: $COMMAND$.", + "message": "Scorciatoia da tastiera predefinita per riempire automaticamente: $COMMAND$.", "placeholders": { "command": { "content": "$1", diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index 1c6b5a735c2d..7c5aefecae8f 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -1412,7 +1412,7 @@ "message": "Klon" }, "passwordGeneratorPolicyInEffect": { - "message": "En eller flere av organisasjonens vilkår påvirker generatorinnstillingene dine." + "message": "En eller flere av virksomhetens regler påvirker generatorinnstillingene dine." }, "vaultTimeoutAction": { "message": "Handling ved tidsavbrudd i hvelvet" @@ -1465,7 +1465,7 @@ "message": "Angi hovedpassord" }, "masterPasswordPolicyInEffect": { - "message": "Ett eller flere av organisasjonens vilkår krever at hovedpassordet oppfyller følgende krav:" + "message": "En eller flere av virksomhetens regler krever at hovedpassordet oppfyller følgende krav:" }, "policyInEffectMinComplexity": { "message": "Minimumspoengsum for kompleksistet er $SCORE$", @@ -1504,7 +1504,7 @@ } }, "masterPasswordPolicyRequirementsNotMet": { - "message": "Det nye hovedpassordet ditt oppfyller ikke vilkårene." + "message": "Det nye hovedpassordet ditt oppfyller ikke vilkår i virksomhetsreglene." }, "acceptPolicies": { "message": "Ved å merke av denne boksen sier du deg enig i følgende:" @@ -1585,10 +1585,10 @@ "message": "Denne handlingen kan ikke gjøres i sidestolpen, prøv på nytt i sprettoppvinduet eller popvindu." }, "personalOwnershipSubmitError": { - "message": "På grunn av bedrifsretningslinjer er du begrenset fra å lagre objekter til ditt personlige hvelv. Endre alternativ for eierskap til en organisasjon og velg blant tilgjengelige samlinger." + "message": "På grunn av en virksomhetsregel er du begrenset fra å lagre objekter til ditt personlige hvelv. Endre alternativ for eierskap til en organisasjon og velg blant tilgjengelige samlinger." }, "personalOwnershipPolicyInEffect": { - "message": "En bedriftsretningslinje påvirker dine eierskapsinnstillinger." + "message": "En virksomhetsregel påvirker dine eierskapsinnstillinger." }, "excludedDomains": { "message": "Ekskluderte domener" @@ -1818,7 +1818,7 @@ "message": "Skjul min e-postadresse fra mottakere." }, "sendOptionsPolicyInEffect": { - "message": "En eller flere av organisasjons retningslinjer påvirker generatorinnstillingene dine." + "message": "En eller flere av virksomhetens regler påvirker generatorinnstillingene dine." }, "passwordPrompt": { "message": "Forespørsel om hovedpassord på nytt" @@ -1848,7 +1848,7 @@ "message": "Automatisk registrering" }, "resetPasswordAutoEnrollInviteWarning": { - "message": "Denne organisasjonen har en bedriftsoppsettsregel som automatisk innrullerer deg i tilbakestilling av passord. Registrering vil tillate organisasjonsadministratorer å endre hovedpassordet ditt." + "message": "Denne organisasjonen har en virksomhetsregel som automatisk innrullerer deg i tilbakestilling av passord. Registrering vil tillate organisasjonsadministratorer å endre hovedpassordet ditt." }, "selectFolder": { "message": "Velg mappe …" @@ -1863,7 +1863,7 @@ "message": "Minutter" }, "vaultTimeoutPolicyInEffect": { - "message": "Organisasjonens retningslinjer påvirker tidsavbruddet for hvelvet ditt. Maksimalt tillatt tidsavbrudd for hvelv er $HOURS$ time(r) og $MINUTES$ minutt(er)", + "message": "Din virksomhets regler påvirker tidsavbruddet for hvelvet ditt. Maksimalt tillatt tidsavbrudd for hvelv er $HOURS$ time(r) og $MINUTES$ minutt(er)", "placeholders": { "hours": { "content": "$1", @@ -1882,7 +1882,7 @@ "message": "Hvelveksportering er skrudd av" }, "personalVaultExportPolicyInEffect": { - "message": "En eller flere regler i organisasjonsoppsettet forhindrer deg i å eksportere ditt personlige hvelv." + "message": "En eller flere virksomhetsregler forhindrer deg i å eksportere ditt personlige hvelv." }, "copyCustomFieldNameInvalidElement": { "message": "Klarte ikke å identifisere et gyldig skjemaelement. Prøv å inspisere HTML-en i stedet." @@ -2118,13 +2118,13 @@ } }, "autofillPageLoadPolicyActivated": { - "message": "Your organization policies have turned on auto-fill on page load." + "message": "Virksomhetsreglene dine har slått på automatisk utfylling av sidene." }, "howToAutofill": { "message": "Hvordan bruke auto-utfylling" }, "autofillSelectInfoWithCommand": { - "message": "Select an item from this page or use the shortcut: $COMMAND$", + "message": "Velg et element fra denne siden eller bruk snarveien: $COMMAND$", "placeholders": { "command": { "content": "$1", @@ -2133,7 +2133,7 @@ } }, "autofillSelectInfoWithoutCommand": { - "message": "Select an item from this page or set a shortcut in settings." + "message": "Velg et element fra denne siden eller angi en snarvei i innstillingene." }, "gotIt": { "message": "Skjønner" diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index ac4bd31d9c19..bcd6f9eee1e4 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -149,11 +149,11 @@ "message": "Spremeni glavno geslo" }, "fingerprintPhrase": { - "message": "Fingerprint fraza", + "message": "Identifikacijsko geslo", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "yourAccountsFingerprint": { - "message": "Fingerprint fraza vašega računa", + "message": "Identifikacijsko geslo vašega računa", "description": "A 'fingerprint phrase' is a unique word phrase (similar to a passphrase) that a user can use to authenticate their public key with another user, for the purposes of sharing." }, "twoStepLogin": { @@ -300,7 +300,7 @@ "message": "Geslo" }, "passphrase": { - "message": "Parafraza" + "message": "Večbesedno geslo" }, "favorite": { "message": "Priljubljeni" @@ -2070,7 +2070,7 @@ "message": "Log in with device must be set up in the settings of the Bitwarden app. Need another option?" }, "fingerprintPhraseHeader": { - "message": "Fraza prstnega odtisa" + "message": "Identifikacijsko geslo" }, "fingerprintMatchInfo": { "message": "Please make sure your vault is unlocked and the Fingerprint phrase matches on the other device." diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index ea147aa6db3f..19af58209cbe 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -2124,7 +2124,7 @@ "message": "Како ауто-попуњавати" }, "autofillSelectInfoWithCommand": { - "message": "Select an item from this page or use the shortcut: $COMMAND$", + "message": "Изаберите ставку са ове странице или користите пречицу: $COMMAND$", "placeholders": { "command": { "content": "$1", @@ -2133,7 +2133,7 @@ } }, "autofillSelectInfoWithoutCommand": { - "message": "Select an item from this page or set a shortcut in settings." + "message": "Изаберите ставку са ове странице или поставите пречицу у подешавањима." }, "gotIt": { "message": "Разумем" diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index dc8babc1a4b8..aa0e421f007f 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -1628,7 +1628,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "maxAccessCountReached": { - "message": "Досягнуто максимальну кількість доступів", + "message": "Досягнуто максимальної кількості доступів", "description": "This text will be displayed after a Send has been accessed the maximum amount of times." }, "expired": { @@ -2124,7 +2124,7 @@ "message": "Як працює автозаповнення" }, "autofillSelectInfoWithCommand": { - "message": "Select an item from this page or use the shortcut: $COMMAND$", + "message": "Виберіть елемент з цієї сторінки або використайте комбінацію клавіш: $COMMAND$", "placeholders": { "command": { "content": "$1", @@ -2133,7 +2133,7 @@ } }, "autofillSelectInfoWithoutCommand": { - "message": "Select an item from this page or set a shortcut in settings." + "message": "Виберіть елемент з цієї сторінки або встановіть комбінацію клавіш у налаштуваннях." }, "gotIt": { "message": "Зрозуміло" diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index 5e38f65de535..149d70e3b36c 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -439,7 +439,7 @@ "message": "必须填写确认主密码。" }, "masterPasswordMinlength": { - "message": "主密码至少需要 $VALUE$ 个字符。", + "message": "主密码必须至少 $VALUE$ 个字符长度。", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -507,7 +507,7 @@ "message": "您可以在 bitwarden.com 网页版密码库修改主密码。您现在要访问这个网站吗?" }, "twoStepLoginConfirmation": { - "message": "两步登录要求您从其他设备(例如安全钥匙、验证器应用、短信、电话或者电子邮件)来验证您的登录,这能使您的账户更加安全。两步登录需要在 bitwarden.com 网页版密码中设置。您现在要访问这个网站吗?" + "message": "两步登录要求您从其他设备(例如安全钥匙、验证器应用、短信、电话或者电子邮件)来验证您的登录,这能使您的账户更加安全。两步登录需要在 bitwarden.com 网页版密码库中设置。现在访问此网站吗?" }, "editedFolder": { "message": "文件夹已保存" @@ -678,7 +678,7 @@ "message": "导出的密码库数据包含未加密格式。您不应该通过不安全的渠道(例如电子邮件)来存储或发送导出的文件。用完后请立即将其删除。" }, "encExportKeyWarningDesc": { - "message": "此导出将使用您账户的加密密钥来加密您的数据。 如果您曾经轮换过账户的加密密钥,您应将其重新导出,否则您将无法解密导出的文件。" + "message": "此导出将使用您账户的加密密钥来加密您的数据。如果您曾经轮换过账户的加密密钥,您应将其重新导出,否则您将无法解密导出的文件。" }, "encExportAccountWarningDesc": { "message": "账户加密密钥对每个 Bitwarden 用户账户都是唯一的,所以您不能将加密的导出导入到另一个账户。" @@ -1077,13 +1077,13 @@ "message": "品牌" }, "expirationMonth": { - "message": "到期月份" + "message": "过期月份" }, "expirationYear": { - "message": "到期年份" + "message": "过期年份" }, "expiration": { - "message": "到期" + "message": "过期日" }, "january": { "message": "一月" @@ -1230,7 +1230,7 @@ "message": "集合" }, "favorites": { - "message": "收藏" + "message": "收藏夹" }, "popOutNewWindow": { "message": "弹出到新窗口" @@ -1495,7 +1495,7 @@ "message": "至少包含一个数字" }, "policyInEffectSpecial": { - "message": "至少包含一个下列的特殊字符:$CHARS$", + "message": "至少包含一个以下特殊字符 $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -1698,7 +1698,7 @@ "description": "'Send' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." }, "expirationDate": { - "message": "到期日期" + "message": "过期日期" }, "expirationDateDesc": { "message": "设置后,对此 Send 的访问将在指定的日期和时间后过期。", @@ -1800,19 +1800,19 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'To use a calendar style date picker click here **to pop out your window.**'" }, "expirationDateIsInvalid": { - "message": "所提供的到期日期无效。" + "message": "所提供的过期日期无效。" }, "deletionDateIsInvalid": { "message": "所提供的删除日期无效。" }, "expirationDateAndTimeRequired": { - "message": "需要到期日期和时间。" + "message": "需要过期日期和时间。" }, "deletionDateAndTimeRequired": { "message": "需要删除日期和时间。" }, "dateParsingError": { - "message": "保存您的删除和到期日期时出错。" + "message": "保存您的删除和过期日期时出错。" }, "hideEmail": { "message": "对收件人隐藏我的电子邮件地址。" @@ -2064,7 +2064,7 @@ "message": "记住电子邮件地址" }, "loginWithDevice": { - "message": "使用设备登录" + "message": "设备登录" }, "loginWithDeviceEnabledInfo": { "message": "必须在 Bitwarden 应用程序的设置中启用设备登录。需要其他选项吗?" @@ -2088,25 +2088,25 @@ "message": "登录已发起" }, "exposedMasterPassword": { - "message": "暴露的主密码" + "message": "已暴露的主密码" }, "exposedMasterPasswordDesc": { - "message": "数据泄露中发现的密码。使用独特的密码来保护您的帐户。您确定要使用已暴露的密码吗?" + "message": "密码在数据泄露中被发现。请使用一个独一无二的的密码以保护您的账户。确定要使用已暴露的密码吗?" }, "weakAndExposedMasterPassword": { - "message": "弱而暴露的主密码" + "message": "主密码弱且曾经暴露" }, "weakAndBreachedMasterPasswordDesc": { - "message": "已经识别和发现在数据泄露中的弱密码。使用强大且独特的密码来保护您的帐户。您确定要使用此密码吗?" + "message": "识别到弱密码且其出现在数据泄露中。请使用一个强且唯一的密码以保护你的账户。确定要使用这个密码吗?" }, "checkForBreaches": { "message": "检查已知的数据泄露是否包含此密码。" }, "important": { - "message": "简体中文:重要" + "message": "重要:" }, "masterPasswordHint": { - "message": "检查此密码的已知数据泄露" + "message": "主密码忘记后,将无法恢复!" }, "characterMinimum": { "message": "至少 $LENGTH$ 个字符", @@ -2118,13 +2118,13 @@ } }, "autofillPageLoadPolicyActivated": { - "message": "您的组织策略已经在页面加载时打开了自动填充。" + "message": "您的组织策略已开启在页面加载时的自动填充。" }, "howToAutofill": { "message": "如何自动填充" }, "autofillSelectInfoWithCommand": { - "message": "从此页面选择一个项目,或使用快捷键: $COMMAND$", + "message": "从此页面选择一个项目,或使用快捷方式:$COMMAND$", "placeholders": { "command": { "content": "$1", @@ -2145,7 +2145,7 @@ "message": "自动填充键盘快捷键" }, "autofillShortcutNotSet": { - "message": "未设置自动填充快捷键。请在浏览器设置中更改此设置。" + "message": "未设置自动填充快捷方式。请在浏览器设置中更改此设置。" }, "autofillShortcutText": { "message": "自动填充快捷方式为: $COMMAND$。在浏览器设置中更改此项。", @@ -2157,7 +2157,7 @@ } }, "autofillShortcutTextSafari": { - "message": "默认自动填充快捷键:$COMMAND$", + "message": "默认自动填充快捷方式:$COMMAND$。", "placeholders": { "command": { "content": "$1", diff --git a/apps/browser/store/locales/it/copy.resx b/apps/browser/store/locales/it/copy.resx index 477fd25b55cb..659384445dbe 100644 --- a/apps/browser/store/locales/it/copy.resx +++ b/apps/browser/store/locales/it/copy.resx @@ -118,7 +118,7 @@ System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 - Bitwarden – Gestore di password gratuito + Bitwarden – Gestore di Password Gratuito Un gestore di password sicuro e gratuito per tutti i tuoi dispositivi @@ -126,29 +126,30 @@ Bitwarden, Inc. è la società madre di 8bit Solutions LLC. -NOMINATO MIGLIOR PASSWORD MANAGER DA THE VERGE, US NEWS & WORLD REPORT, CNET E ALTRO. +NOMINATO MIGLIOR PASSWORD MANAGER DA THE VERGE, U.S. NEWS & WORLD REPORT, CNET, E ALTRO. -Gestisci, archivia, proteggi e condividi password illimitate su dispositivi illimitati da qualsiasi luogo. Bitwarden offre soluzioni di gestione delle password open source a tutti, a casa, al lavoro o in viaggio. +Gestisci, archivia, proteggi, e condividi password illimitate su dispositivi illimitati da qualsiasi luogo. Bitwarden offre soluzioni di gestione delle password open-source a tutti, a casa, al lavoro, o in viaggio. -Genera password complesse, uniche e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. +Genera password forti, uniche, e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. -Bitwarden Send trasmette rapidamente informazioni cifrate --- file e testo in chiaro - direttamente a chiunque. +Bitwarden Send trasmette rapidamente informazioni criptate - via file e testo in chiaro - direttamente a chiunque. -Bitwarden offre piani Teams ed Enterprise per le aziende in modo da poter condividere le password in modo sicuro con i colleghi. +Bitwarden offre piani Teams ed Enterprise per le aziende così puoi condividere le password in modo sicuro con i tuoi colleghi. -Perché scegliere Bitwarden: +Perché Scegliere Bitwarden: -Crittografia di livello mondiale -Le password sono protette con cifratura end-to-end avanzata (AES-256 bit, hashtag con sale e PBKDF2 SHA-256) in modo che i tuoi dati rimangano al sicuro e privati. +Criptografia Di Livello Mondiale +Le password sono protette con criptografia end-to-end avanzata (AES-256 bit, salted hashing, e PBKDF2 SHA-256) per tenere i tuoi dati al sicuro e privati. -Generatore di password integrato -Genera password complesse, uniche e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. +Generatore Di Password Integrato +Genera password forti, uniche e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. -Traduzioni globali -Le traduzioni di Bitwarden esistono in 40 lingue e sono in crescita, grazie alla nostra comunità globale. +Traduzioni Globali +Le traduzioni di Bitwarden esistono in 40 lingue e sono in crescita grazie alla nostra comunità globale. -Applicazioni multipiattaforma -Proteggi e condividi i dati sensibili all'interno del tuo Bitwarden Vault da qualsiasi browser, dispositivo mobile o sistema operativo desktop e altro ancora. +Applicazioni Multipiattaforma +Proteggi e condividi i dati sensibili all'interno della tua cassaforte di Bitwarden da qualsiasi browser, dispositivo mobile, o sistema operativo desktop, e altro. + Un gestore di password sicuro e gratuito per tutti i tuoi dispositivi @@ -157,18 +158,18 @@ Proteggi e condividi i dati sensibili all'interno del tuo Bitwarden Vault da qua Sincronizza e accedi alla tua cassaforte da più dispositivi - Gestisci tutte le tue password ed i tuoi login da una cassaforte sicura + Gestisci tutte le tue password e i tuoi login da una cassaforte sicura - Completa velocemente tutte le tue credenziali di accesso in qualunque sito tu visiti + Riempi velocemente le tue credenziali di accesso in qualunque sito che visiti - La tua cassaforte è facilmente accessibile dal menu contestuale del tasto destro del mouse + La tua cassaforte è facilmente accessibile dal menu contestuale (tasto destro del mouse) Genera automaticamente password complesse, casuali e sicure - Le tue informazioni sono salvate in modo sicuro grazie all'algoritmo di cifratura AES-256 + Le tue informazioni sono salvate in modo sicuro grazie all'algoritmo di criptografia AES-256 From 926012f9218c678d531f2217d4824981642e52c1 Mon Sep 17 00:00:00 2001 From: "github-actions[bot]" <41898282+github-actions[bot]@users.noreply.github.com> Date: Fri, 24 Mar 2023 01:44:54 +0100 Subject: [PATCH 06/39] Autosync the updated translations (#5069) Co-authored-by: bitwarden-devops-bot <106330231+bitwarden-devops-bot@users.noreply.github.com> --- apps/web/src/locales/af/messages.json | 10 +- apps/web/src/locales/ar/messages.json | 6 +- apps/web/src/locales/az/messages.json | 8 +- apps/web/src/locales/be/messages.json | 6 +- apps/web/src/locales/bg/messages.json | 6 +- apps/web/src/locales/bn/messages.json | 6 +- apps/web/src/locales/bs/messages.json | 6 +- apps/web/src/locales/ca/messages.json | 8 +- apps/web/src/locales/cs/messages.json | 6 +- apps/web/src/locales/da/messages.json | 6 +- apps/web/src/locales/de/messages.json | 22 +- apps/web/src/locales/el/messages.json | 6 +- apps/web/src/locales/en_GB/messages.json | 6 +- apps/web/src/locales/en_IN/messages.json | 6 +- apps/web/src/locales/eo/messages.json | 6 +- apps/web/src/locales/es/messages.json | 6 +- apps/web/src/locales/et/messages.json | 6 +- apps/web/src/locales/eu/messages.json | 6 +- apps/web/src/locales/fa/messages.json | 6 +- apps/web/src/locales/fi/messages.json | 44 +- apps/web/src/locales/fil/messages.json | 174 +++--- apps/web/src/locales/fr/messages.json | 6 +- apps/web/src/locales/gl/messages.json | 6 +- apps/web/src/locales/he/messages.json | 6 +- apps/web/src/locales/hi/messages.json | 6 +- apps/web/src/locales/hr/messages.json | 692 +++++++++++------------ apps/web/src/locales/hu/messages.json | 6 +- apps/web/src/locales/id/messages.json | 6 +- apps/web/src/locales/it/messages.json | 210 +++---- apps/web/src/locales/ja/messages.json | 8 +- apps/web/src/locales/ka/messages.json | 6 +- apps/web/src/locales/km/messages.json | 6 +- apps/web/src/locales/kn/messages.json | 6 +- apps/web/src/locales/ko/messages.json | 6 +- apps/web/src/locales/lv/messages.json | 6 +- apps/web/src/locales/ml/messages.json | 6 +- apps/web/src/locales/nb/messages.json | 6 +- apps/web/src/locales/ne/messages.json | 6 +- apps/web/src/locales/nl/messages.json | 6 +- apps/web/src/locales/nn/messages.json | 6 +- apps/web/src/locales/pl/messages.json | 8 +- apps/web/src/locales/pt_BR/messages.json | 90 +-- apps/web/src/locales/pt_PT/messages.json | 6 +- apps/web/src/locales/ro/messages.json | 6 +- apps/web/src/locales/ru/messages.json | 8 +- apps/web/src/locales/si/messages.json | 6 +- apps/web/src/locales/sk/messages.json | 6 +- apps/web/src/locales/sl/messages.json | 8 +- apps/web/src/locales/sr/messages.json | 6 +- apps/web/src/locales/sr_CS/messages.json | 6 +- apps/web/src/locales/sv/messages.json | 46 +- apps/web/src/locales/te/messages.json | 6 +- apps/web/src/locales/th/messages.json | 6 +- apps/web/src/locales/tr/messages.json | 6 +- apps/web/src/locales/uk/messages.json | 50 +- apps/web/src/locales/vi/messages.json | 6 +- apps/web/src/locales/zh_CN/messages.json | 284 +++++----- apps/web/src/locales/zh_TW/messages.json | 6 +- 58 files changed, 961 insertions(+), 961 deletions(-) diff --git a/apps/web/src/locales/af/messages.json b/apps/web/src/locales/af/messages.json index c4594e3c88b2..69632b6ccfe3 100644 --- a/apps/web/src/locales/af/messages.json +++ b/apps/web/src/locales/af/messages.json @@ -393,7 +393,7 @@ "message": "Kies" }, "newItem": { - "message": "New item" + "message": "Nuwe item" }, "addItem": { "message": "Voeg item toe" @@ -405,7 +405,7 @@ "message": "Bekyk item" }, "new": { - "message": "New", + "message": "Nuut", "description": "for adding new items" }, "item": { @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ar/messages.json b/apps/web/src/locales/ar/messages.json index da49d6fe5a0f..d00c82884be7 100644 --- a/apps/web/src/locales/ar/messages.json +++ b/apps/web/src/locales/ar/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/az/messages.json b/apps/web/src/locales/az/messages.json index d4265ccb178e..135950863806 100644 --- a/apps/web/src/locales/az/messages.json +++ b/apps/web/src/locales/az/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Xidmət hesabı silindi" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Xidmət hesabları silindi" @@ -6036,8 +6036,8 @@ "message": "Müraciət tokenləri", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Müraciət tokeni yarat", + "newAccessToken": { + "message": "Yeni müraciət tokeni", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "KDF tənzimləmələrini dəyişdir" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Proses, bütün aktiv seanslardan çıxış etməyinizi təmin edəcək. Təkrar giriş etməyiniz və iki mərhələli giriş quraşdırmasını tamamlamağınız lazımdır. Məlumat itkisinin qarşısını almaq üçün şifrələmə tənzimləmələrinizi dəyişdirməzdən əvvəl anbarınızı xaricə köçürməyinizi tövsiyə edirik." }, "secretsManagerBeta": { "message": "Secrets Manager Beta" diff --git a/apps/web/src/locales/be/messages.json b/apps/web/src/locales/be/messages.json index c0c67ab0a891..ebc256b35786 100644 --- a/apps/web/src/locales/be/messages.json +++ b/apps/web/src/locales/be/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Сэрвісны ўліковы запіс быў выдалены" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Сэрвісны ўліковы запіс выдалены" @@ -6036,8 +6036,8 @@ "message": "Токены доступу", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Стварыць токены доступу", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/bg/messages.json b/apps/web/src/locales/bg/messages.json index cefb42798d13..fb65d435c697 100644 --- a/apps/web/src/locales/bg/messages.json +++ b/apps/web/src/locales/bg/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Идентификатори за достъп", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Създаване на идентификатор за достъп", + "newAccessToken": { + "message": "Нов идентификатор за достъп", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/bn/messages.json b/apps/web/src/locales/bn/messages.json index 720080917768..4c49270b11fb 100644 --- a/apps/web/src/locales/bn/messages.json +++ b/apps/web/src/locales/bn/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/bs/messages.json b/apps/web/src/locales/bs/messages.json index f781857a368d..b75f8016eac0 100644 --- a/apps/web/src/locales/bs/messages.json +++ b/apps/web/src/locales/bs/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ca/messages.json b/apps/web/src/locales/ca/messages.json index 2fa97ff958e3..c127d587c131 100644 --- a/apps/web/src/locales/ca/messages.json +++ b/apps/web/src/locales/ca/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "El compte de servei s'ha suprimit" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "S'han suprimit els comptes de servei" @@ -6036,8 +6036,8 @@ "message": "Tokens d'accès", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Crea un token d'accés", + "newAccessToken": { + "message": "Token nou d'accés", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "Canvia la configuració de KDF" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Si continueu, tancareu totes les sessions actives. Haureu de tornar a iniciar sessió i completar la configuració d'inici de sessió en dos passos. Recomanem que exporteu la caixa forta abans de canviar la configuració d'encriptació per evitar la pèrdua de dades." }, "secretsManagerBeta": { "message": "Administrador de secrets Beta" diff --git a/apps/web/src/locales/cs/messages.json b/apps/web/src/locales/cs/messages.json index 54649998f54f..baa0c0166ae6 100644 --- a/apps/web/src/locales/cs/messages.json +++ b/apps/web/src/locales/cs/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "Nový přístupový token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/da/messages.json b/apps/web/src/locales/da/messages.json index f5b6b4d27d91..e096f0bff51f 100644 --- a/apps/web/src/locales/da/messages.json +++ b/apps/web/src/locales/da/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Tjenestekonto slettet" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Tjenestekonti slettet" @@ -6036,8 +6036,8 @@ "message": "Adgangstokener", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Opret adgangstoken", + "newAccessToken": { + "message": "Nyt adgangstoken", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/de/messages.json b/apps/web/src/locales/de/messages.json index 56924cf46aae..8ef6f637d8ae 100644 --- a/apps/web/src/locales/de/messages.json +++ b/apps/web/src/locales/de/messages.json @@ -2484,7 +2484,7 @@ "message": "Externe ID" }, "externalIdDesc": { - "message": "Die externe ID kann als Referenz oder zur Verbindung zu einem externen System, wie einem Benutzerverzeichnis, verwendet werden." + "message": "Die externe ID ist eine unverschlüsselte Referenz, die vom Bitwarden Directory Connector und der API verwendet wird." }, "nestCollectionUnder": { "message": "Sammlung verschachteln unter" @@ -2562,7 +2562,7 @@ "message": "Bestätigt" }, "clientOwnerEmail": { - "message": "Kunden-E-Mail" + "message": "E-Mail-Adresse des Kundenorganisation-Eigentümers" }, "owner": { "message": "Besitzer" @@ -3795,7 +3795,7 @@ } }, "vaultTimeoutLogOutConfirmation": { - "message": "Nach dem Ausloggen verlierst du jeglichen Zugriff auf deinen Tresor und es ist nach Ablauf der Timeout-Zeit eine Online-Authentifizierung erforderlich. Bist du sicher, dass du diese Einstellung nutzen möchtest?" + "message": "Nach dem Abmelden verlierst du jeglichen Zugriff auf deinen Tresor und nach Ablauf der Timeout-Zeit ist eine Online-Authentifizierung erforderlich. Bist du sicher, dass du diese Einstellung nutzen möchtest?" }, "vaultTimeoutLogOutConfirmationTitle": { "message": "Bestätigung der Timeout-Aktion" @@ -4670,7 +4670,7 @@ "message": "Du wurdest eingeladen, einen neuen Anbieter einzurichten. Um fortzufahren, musst du dich anmelden oder ein neues Bitwarden-Konto erstellen." }, "setupProviderDesc": { - "message": "Bitte gib die nachstehenden Daten ein, um die Einrichtung des Providers abzuschließen. Wende dich an den Kundensupport, wenn du Fragen hast." + "message": "Bitte gib die nachstehenden Daten ein, um die Einrichtung des Anbieters abzuschließen. Wende dich an den Kundensupport, wenn du Fragen hast." }, "providerName": { "message": "Anbietername" @@ -5416,7 +5416,7 @@ "message": "Catch-All E-Mail-Adresse" }, "catchallEmailDesc": { - "message": "Verwenden den konfigurierten Catch-All-Posteingang deiner Domain." + "message": "Verwende den konfigurierten Catch-All-Posteingang deiner Domain." }, "random": { "message": "Zufällig", @@ -5702,11 +5702,11 @@ "message": "Alles löschen" }, "toggleCharacterCount": { - "message": "Zeichenzählung ein-/ausschalten", + "message": "Zeichenanzahl umschalten", "description": "'Character count' describes a feature that displays a number next to each character of the password." }, "passwordCharacterCount": { - "message": "Passwort Zeichenzählung", + "message": "Passwort-Zeichenanzahl", "description": "'Character count' describes a feature that displays a number next to each character of the password." }, "hide": { @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Das Dienstkonto wurde gelöscht" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Dienstkonten gelöscht" @@ -6036,8 +6036,8 @@ "message": "Zugriffstokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Zugriffstoken erstellen", + "newAccessToken": { + "message": "Neuer Zugriffstoken", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "KDF-Einstellungen ändern" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Wenn du fortfährst, wirst du von allen aktiven Sitzungen abgemeldet. Du musst dich erneut anmelden und die Zwei-Faktor-Authentifizierung durchführen. Wir empfehlen, deinen Tresor zu exportieren, bevor du deine Verschlüsselungseinstellungen änderst, um Datenverluste zu vermeiden." }, "secretsManagerBeta": { "message": "Secrets Manager Beta" diff --git a/apps/web/src/locales/el/messages.json b/apps/web/src/locales/el/messages.json index 13025b0e70a4..5ffc0fbd87de 100644 --- a/apps/web/src/locales/el/messages.json +++ b/apps/web/src/locales/el/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/en_GB/messages.json b/apps/web/src/locales/en_GB/messages.json index 4a34e5d07c54..e837433303ac 100644 --- a/apps/web/src/locales/en_GB/messages.json +++ b/apps/web/src/locales/en_GB/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/en_IN/messages.json b/apps/web/src/locales/en_IN/messages.json index 6b3f74194468..4b6d3d499651 100644 --- a/apps/web/src/locales/en_IN/messages.json +++ b/apps/web/src/locales/en_IN/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/eo/messages.json b/apps/web/src/locales/eo/messages.json index 8754474b376d..aab5f37b86ae 100644 --- a/apps/web/src/locales/eo/messages.json +++ b/apps/web/src/locales/eo/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/es/messages.json b/apps/web/src/locales/es/messages.json index 06b4ecf435ca..f884cac717fd 100644 --- a/apps/web/src/locales/es/messages.json +++ b/apps/web/src/locales/es/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "La cuenta de servicio ha sido eliminada" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Cuentas de servicio eliminadas" @@ -6036,8 +6036,8 @@ "message": "Tokens de acceso", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Crear un token de acceso", + "newAccessToken": { + "message": "Nuevo token de acceso", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/et/messages.json b/apps/web/src/locales/et/messages.json index df6f60b9ef68..350074cc2bc0 100644 --- a/apps/web/src/locales/et/messages.json +++ b/apps/web/src/locales/et/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/eu/messages.json b/apps/web/src/locales/eu/messages.json index 3a487aff32b8..98d9132ac184 100644 --- a/apps/web/src/locales/eu/messages.json +++ b/apps/web/src/locales/eu/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/fa/messages.json b/apps/web/src/locales/fa/messages.json index a9aa117b8ba8..277e2d726676 100644 --- a/apps/web/src/locales/fa/messages.json +++ b/apps/web/src/locales/fa/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "حساب سرویس حذف شده است" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "حساب‌های سرویس حذف شد" @@ -6036,8 +6036,8 @@ "message": "دسترسی به توکن‌ها", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "توکن دسترسی ایجاد کنید", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/fi/messages.json b/apps/web/src/locales/fi/messages.json index 9c52bee5b22b..a19e077101ac 100644 --- a/apps/web/src/locales/fi/messages.json +++ b/apps/web/src/locales/fi/messages.json @@ -853,7 +853,7 @@ "description": "'Authy' and 'Google Authenticator' are product names and should not be translated." }, "yubiKeyTitle": { - "message": "YubiKey OTP -todennuslaite" + "message": "YubiKey OTP" }, "yubiKeyDesc": { "message": "Käytä YubiKey-todennuslaitetta tilisi avaukseen. Toimii YubiKey 4 ja 5 -sarjojen sekä NEO -laitteiden kanssa." @@ -873,7 +873,7 @@ "message": "FIDO U2F ‑todennuslaite" }, "webAuthnTitle": { - "message": "FIDO2 WebAuthn -todennuslaite" + "message": "FIDO2 WebAuthn" }, "webAuthnDesc": { "message": "Avaa tilisi millä tahansa WebAuthn‑yhteensopivalla todennuslaitteella." @@ -2472,7 +2472,7 @@ "message": "Haluatko varmasti poistaa käyttäjän?" }, "removeOrgUserConfirmation": { - "message": "Poisteltulla jäsenellä ei ole enää käyttöoikeuksia organisaation tietoihin, eikä poistoa ole mahdollista perua. Jos jäsen halutaan palauttaa organisaatioon, hänet on kutsuttava ja määritettävä uudelleen." + "message": "Poistetulla jäsenellä ei ole enää käyttöoikeuksia organisaation tietoihin, eikä poiston peruminen ole mahdollista. Jos jäsen halutaan palauttaa organisaatioon, hänet on kutsuttava ja määritettävä uudelleen." }, "revokeUserConfirmation": { "message": "Mitätöidyllä jäsenellä ei ole enää käyttöoikeutta organisaation tietoihin. Oikeudet voidaan palauttaa nopeasti Mitätöidyt-välilehdeltä." @@ -3015,7 +3015,7 @@ "message": "Tapahtui virhe." }, "userAccess": { - "message": "Käyttäjän käyttöoikeudet" + "message": "Käyttäjän oikeudet" }, "userType": { "message": "Käyttäjän tyyppi" @@ -3171,7 +3171,7 @@ "message": "Käyttäjätilit pysyvät poiston jälkeen toiminnassa, mutta niiden kytkös tähän organisaatioon poistuu." }, "deletingOrganizationIsPermanentWarning": { - "message": "Organisaation $ORGANIZATION$ poisto on pysyvää, eikä sitä ole mahdollista perua.", + "message": "Organisaation $ORGANIZATION$ poisto on pysyvää ja peruuttamatonta.", "placeholders": { "organization": { "content": "$1", @@ -4598,10 +4598,10 @@ "message": "Toiminto ei koske valittuja käyttäjiä." }, "removeUsersWarning": { - "message": "Haluatko varmasti poistaa seuraavat käyttäjät? Käsittely voi kestää muutamia sekunteja, eikä sen keskeytys tai peruminen ole mahdollista." + "message": "Haluatko varmasti poistaa seuraavat käyttäjät? Käsittely voi kestää muutamia sekunteja, eikä sen keskeyttäminen tai peruminen ole mahdollista." }, "removeOrgUsersConfirmation": { - "message": "Poisteltuilla jäsenillä ei ole enää käyttöoikeuksia organisaation tietoihin, eikä poistoa ole mahdollista perua. Jos jäseniä halutaan palauttaa organisaatioon, heidät on kutsuttava ja määritettävä uudelleen. Käsittely voi kestää muutamia sekunteja, eikä sitä ole mahdollista keskeyttää tai perua." + "message": "Poistetuilla jäsenillä ei ole enää käyttöoikeuksia organisaation tietoihin, eikä poiston peruminen ole mahdollista. Jos jäseniä halutaan palauttaa organisaatioon, heidät on kutsuttava ja määritettävä uudelleen. Käsittely voi kestää muutamia sekunteja, eikä sen keskeyttäminen tai peruminen ole mahdollista." }, "revokeUsersWarning": { "message": "Mitätöidyillä jäsenillä ei ole enää käyttöoikeuksia organisaation tietoihin. Oikeudet voidaan palauttaa nopeasti Mitätöidyt-välilehdeltä. Käsittely voi kestää muutamia sekunteja, ei sitä ole mahdollista keskeytttää tai perua." @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Palvelutili poistettiin" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Palvelutilit poistettiin" @@ -5913,7 +5913,7 @@ "description": "Title for creating a new project." }, "softDeleteSecretWarning": { - "message": "Salaisuuksien poisto voi vaikuttaa olemassa oleviin integrointeihin.", + "message": "Salaisuuksien poistaminen voi vaikuttaa olemassa oleviin integrointeihin.", "description": "Warns that deleting secrets can have consequences on integrations" }, "softDeletesSuccessToast": { @@ -5966,7 +5966,7 @@ "description": "Notifies that a project has been deleted" }, "deleteProjectDialogMessage": { - "message": "Projektin $PROJECT$ poisto on pysyvää, eikä sitä ole mahdollista perua.", + "message": "Projektin $PROJECT$ poisto on pysyvää ja peruuttamatonta.", "description": "Informs users that projects are hard deleted and not sent to trash", "placeholders": { "project": { @@ -6006,7 +6006,7 @@ } }, "deleteProjectsDialogMessage": { - "message": "Projektien poisto on pysyvää, eikä sitä ole mahdollista perua.", + "message": "Projektien poisto on pysyvää ja peruuttamatonta.", "description": "This message is displayed in a dialog box as a warning before proceeding with project deletion." }, "projectsNoItemsTitle": { @@ -6036,8 +6036,8 @@ "message": "Käyttötunnisteet", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Luo käyttötunniste", + "newAccessToken": { + "message": "Uusi käyttötunniste", "description": "Button label for creating a new access token." }, "expires": { @@ -6057,7 +6057,7 @@ "description": "Message to be displayed when there are no access tokens to display in the list." }, "downloadAccessToken": { - "message": "Lataa tai kopioi ennen sulkua.", + "message": "Lataa tai kopioi ennen kuin suljet tämän ruudun.", "description": "Message to be displayed before closing an access token, reminding the user to download or copy it." }, "expiresOnAccessToken": { @@ -6065,7 +6065,7 @@ "description": "Label for the expiration date of an access token." }, "accessTokenCallOutTitle": { - "message": "Käyttötunnisteita ei säilytetä, eikä niiden palautus ole mahdollista", + "message": "Tunnisteita ei säilytetä, eivätkä ne ole palautettavissa", "description": "Notification to inform the user that access tokens are only displayed once and cannot be retrieved again." }, "copyToken": { @@ -6406,7 +6406,7 @@ "message": "Organisaation salaisten tietojen vienti" }, "exportingOrganizationSecretDataDescription": { - "message": "Vain organisaatioon $ORGANIZATION$ liitetyt Salaisuushallinnan tiedot viedään. Muiden tuotteiden ja muiden organisaatioiden kohteet eivät sisälly tähän.", + "message": "Vain organisaatioon $ORGANIZATION$ liitetyt Salaisuushallinnan tiedot viedään. Muiden tuotteiden ja organisaatioiden kohteet eivät sisälly tähän.", "placeholders": { "ORGANIZATION": { "content": "$1", @@ -6415,13 +6415,13 @@ } }, "fileUpload": { - "message": "Tiedoston tallennus" + "message": "Valitse tuotava tiedosto" }, "acceptedFormats": { "message": "Hyväksytyt muodot:" }, "copyPasteImportContents": { - "message": "Kopioi ja liitä tuonnin sisältö:" + "message": "Kopioi ja liitä tuotava sisältö:" }, "or": { "message": "tai" @@ -6508,7 +6508,7 @@ "message": "Myönnä käyttäjille Salaisuushallinnan käyttöoikeudet veloituksetta sen beta-vaiheen ajan." }, "userAccessSecretsManager": { - "message": "Tämä käyttäjä voi käyttää Salaisuushallinnan betaa" + "message": "Käyttäjä voi käyttää Salaisuushallinnan Beta-versiota" }, "important": { "message": "Tärkeää:" @@ -6565,7 +6565,7 @@ "description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI" }, "smCLI": { - "message": "Salaisuushallinnan komentoliittymä" + "message": "Salaisuushallinnan CLI" }, "importSecrets": { "message": "Tuo salaisuuksia" @@ -6608,10 +6608,10 @@ "message": "Valinta vaaditaan." }, "secretsManagerSubscriptionDesc": { - "message": "Ota Salaisuushallinta käyttöön organisaatiossasi veloituksetta sen Beta-ohjelman ajan. Käyttäjäkohtaiset käyttöoikeudet voidaan myöntää jäsenhallinan kautta." + "message": "Ota Salaisuushallinta käyttöön organisaatiossasi veloituksetta sen Beta-vaiheen aikana. Käyttäjäkohtaiset käyttöoikeudet voidaan myöntää jäsenhallinan kautta." }, "secretsManagerEnable": { - "message": "Ota Salaisuushallinta Beta käyttöön" + "message": "Käytä Salaisuushallinnan Beta-versiota" }, "saPeopleWarningTitle": { "message": "Käyttöoikeustunnisteet ovat edelleen käytettävissä" diff --git a/apps/web/src/locales/fil/messages.json b/apps/web/src/locales/fil/messages.json index f34016f25c10..f03302ab27fa 100644 --- a/apps/web/src/locales/fil/messages.json +++ b/apps/web/src/locales/fil/messages.json @@ -1453,64 +1453,64 @@ "message": "Gawin ito para mai-set up ang dalawang-hakbang na pag-log in gamit ang isang authenticator app:" }, "twoStepAuthenticatorDownloadApp": { - "message": "Mag download ng isang dalawang hakbang na authenticator app" + "message": "Mag-download ng isang two-step authenticator app" }, "twoStepAuthenticatorNeedApp": { - "message": "Kailangan mo ba ng dalawang-hakbang na authenticator app? Download ang isa sa mga sumusunod" + "message": "Kailangan ng two-step authenticator app? I-download ang isa sa mga sumusunod" }, "iosDevices": { - "message": "Mga aparatong iOS" + "message": "Mga iOS device" }, "androidDevices": { - "message": "Mga aparatong Android" + "message": "Mga Android device" }, "windowsDevices": { "message": "Mga Windows device" }, "twoStepAuthenticatorAppsRecommended": { - "message": "Ang mga app na ito ay inirerekomenda, gayunpaman, ang iba pang mga app ng authenticator ay gagana din." + "message": "Inirerekomenda ang mga app na ito, pero pwede rin ang iba pang mga app pang-authenticate." }, "twoStepAuthenticatorScanCode": { - "message": "I-scan ang QR code na ito gamit ang iyong authenticator app" + "message": "I-scan ang QR code na ito gamit ang authenticator app mo" }, "key": { - "message": "Susi" + "message": "Key" }, "twoStepAuthenticatorEnterCode": { - "message": "Ipasok ang nagresultang 6 digit verification code mula sa app" + "message": "Ipasok ang 6 na numerong code pamberipika galing sa app" }, "twoStepAuthenticatorReaddDesc": { - "message": "Kung sakaling kailangan mong idagdag ito sa isa pang aparato, sa ibaba ay ang QR code (o key) na kinakailangan ng iyong authenticator app." + "message": "Kung kailangan mo itong idagdag sa iba pang device, nasa ibaba ang QR code (o key) na kailangan ng authenticator app mo." }, "twoStepDisableDesc": { - "message": "Sigurado ka bang gusto mong patayin ang dalawang-hakbang na login provider na ito?" + "message": "Sigurado ka bang gusto mong isara ang provider ng dalawang-hakbang na pag-log in na ito?" }, "twoStepDisabled": { - "message": "Naka off ang two step login provider." + "message": "Isinara ang provider ng dalawang-hakbang na pag-log in." }, "twoFactorYubikeyAdd": { - "message": "Magdagdag ng bagong YubiKey sa iyong account" + "message": "Magdagdag ng bagong YubiKey sa account mo" }, "twoFactorYubikeyPlugIn": { - "message": "I-plug ang YubiKey sa USB port ng iyong computer." + "message": "Isaksak ang YubiKey sa USB port ng kompyuter mo." }, "twoFactorYubikeySelectKey": { - "message": "Piliin ang unang walang laman na YubiKey input field sa ibaba." + "message": "Piliin ang unang walang lamang YubiKey sa input field sa ibaba." }, "twoFactorYubikeyTouchButton": { - "message": "Pindutin ang pindutan ng YubiKey ni." + "message": "Pindutin ang buton ng YubiKey." }, "twoFactorYubikeySaveForm": { "message": "I-save ang form." }, "twoFactorYubikeyWarning": { - "message": "Dahil sa mga limitasyon ng platform, ang YubiKeys ay hindi maaaring gamitin sa lahat ng mga aplikasyon ng Bitwarden. Dapat kang mag set up ng isa pang dalawang hakbang na tagapagbigay ng pag login upang ma access mo ang iyong account kapag hindi magamit ang YubiKey. Mga suportadong platform:" + "message": "Hindi magagamit sa lahat ng mga aplikasyon ng Bitwarden ang YubiKey dahil sa mga limitasyon ng platform. Dapat mag-set up ka ng isa pang provider ng dalawang-hakbang na pag-log in para ma-access mo ang account mo sakaling hindi magamit ang YubiKey. Mga suportadong platform:" }, "twoFactorYubikeySupportUsb": { - "message": "Web vault, desktop application, CLI, at lahat ng mga extension ng browser sa isang aparato na may USB port na maaaring tanggapin ang iyong YubiKey." + "message": "Web vault, aplikasyon sa desktop, CLI, at lahat ng mga ekstensyon sa browser sa mga device na may USB port na masasaksakan ng YubiKey mo." }, "twoFactorYubikeySupportMobile": { - "message": "Mga mobile app sa isang aparato na may mga kakayahan sa NFC o isang port ng data na maaaring tanggapin ang iyong YubiKey." + "message": "Mga mobile app sa isang device na may NFC o data port na masasaksakan ng YubiKey mo." }, "yubikeyX": { "message": "YubiKey $INDEX$", @@ -1543,121 +1543,121 @@ "message": "Suporta sa NFC" }, "twoFactorYubikeySupportsNfc": { - "message": "Ang isa sa aking mga susi ay sumusuporta sa NFC." + "message": "Sinusuportahan ng isa sa mga key ko ang NFC." }, "twoFactorYubikeySupportsNfcDesc": { - "message": "Kung ang isa sa iyong YubiKey ay sumusuporta sa NFC (tulad ng isang YubiKey NEO), ikaw ay hinihimok sa mga mobile device tuwing natukoy ang availability ng NFC." + "message": "Kung sinusuportahan ng isa sa mga YubiKey mo ang NFC (halimbawa, YubiKey NEO), mapo-prompt ka sa mga mobile device kapag na-detect ang NFC availability." }, "yubikeysUpdated": { - "message": "Na update ang YubiKeys" + "message": "Na-update ang mga YubiKey" }, "disableAllKeys": { - "message": "I-deactivate ang lahat ng key" + "message": "I-deactivate lahat ng mga key" }, "twoFactorDuoDesc": { - "message": "Ipasok ang impormasyon ng aplikasyon ng Bitwarden mula sa iyong panel ng Duo Admin." + "message": "Ipasok ang impormasyon ng aplikasyon ng Bitwarden sa Duo Admin panel mo." }, "twoFactorDuoIntegrationKey": { - "message": "Key ng pagsasama" + "message": "Key pang-integrasyon" }, "twoFactorDuoSecretKey": { - "message": "Lihim na susi" + "message": "Sikretong key" }, "twoFactorDuoApiHostname": { "message": "Hostname ng API" }, "twoFactorEmailDesc": { - "message": "Sundin ang mga hakbang na ito upang mai set up ang dalawang hakbang na pag login sa email:" + "message": "Sundin ito para ma-set up ang dalawang-hakbang na pag-log in gamit ang email:" }, "twoFactorEmailEnterEmail": { - "message": "Ipasok ang email na nais mong makatanggap ng mga verification code" + "message": "Ilagay ang email kung saan mo gustong makatanggap ng mga code pamberipika" }, "twoFactorEmailEnterCode": { - "message": "Ipasok ang nagresultang 6 digit verification code mula sa email" + "message": "Ipasok ang 6 na numerong code pamberipika galing sa email" }, "sendEmail": { - "message": "Magpadala ng email" + "message": "Ipadala ang email" }, "twoFactorU2fAdd": { - "message": "Magdagdag ng FIDO U2F security key sa iyong account" + "message": "Magdagdag ng FIDO U2F security key sa account mo" }, "removeU2fConfirmation": { - "message": "Sigurado ka bang gusto mong alisin ang security key na ito?" + "message": "Sigurado ka bang gusto mong tanggalin ang security key na ito?" }, "twoFactorWebAuthnAdd": { - "message": "Magdagdag ng isang key ng seguridad ng WebAuthn sa iyong account" + "message": "Magdagdag ng WebAuthn security key sa account mo" }, "readKey": { - "message": "Basahin ang susi" + "message": "Basahin ang key" }, "keyCompromised": { - "message": "Nakompromiso ang susi." + "message": "Nakompromiso ang key." }, "twoFactorU2fGiveName": { - "message": "Bigyan ang security key ng isang friendly na pangalan upang matukoy ito." + "message": "Bigyan ng simpleng pangalan ang security key para madali itong matukoy." }, "twoFactorU2fPlugInReadKey": { - "message": "I-plug ang security key sa USB port ng iyong computer at i-click ang \"Read Key\" button." + "message": "Isaksak ang security key sa USB port ng kompyuter mo at pindutin ang butong \"Basahin ang Key\"." }, "twoFactorU2fTouchButton": { - "message": "Kung ang security key ay may isang pindutan, hawakan ito." + "message": "Kung may buton ang security key, pindutin ito." }, "twoFactorU2fSaveForm": { "message": "I-save ang form." }, "twoFactorU2fWarning": { - "message": "Dahil sa mga limitasyon ng platform, ang FIDO U2F ay hindi maaaring gamitin sa lahat ng mga aplikasyon ng Bitwarden. Dapat kang mag set up ng isa pang dalawang hakbang na tagapagbigay ng pag login upang ma access mo ang iyong account kapag hindi magamit ang FIDO U2F. Mga suportadong platform:" + "message": "Hindi magagamit sa lahat ng mga aplikasyon ng Bitwarden ang FIDO U2F dahil sa mga limitasyon ng platform. Dapat mag-set up ka ng isa pang provider ng dalawang-hakbang na pag-log in para ma-access mo ang account mo sakaling hindi magamit ang FIDO U2F. Mga suportadong platform:" }, "twoFactorU2fSupportWeb": { - "message": "Web vault at mga extension ng browser sa isang desktop / laptop na may isang U2F suportado browser (Chrome, Opera, Vivaldi, o Firefox na may FIDO U2F nakabukas)." + "message": "Web vault at mga ekstensyon pang-browser sa desktop/laptop na may browser na sinusuportahan ang U2F (Chrome, Opera, Vivaldi, o Firefox na nakabukas ang FIDO U2F)." }, "twoFactorU2fWaiting": { - "message": "Naghihintay para sa iyo na hawakan ang pindutan sa iyong key ng seguridad" + "message": "Naghihintay na mapindot ang buton sa security key mo" }, "twoFactorU2fClickSave": { - "message": "Gamitin ang pindutan ng \"I-save\" sa ibaba para buhayin ang security key na ito para sa dalawang-hakbang na pag-login." + "message": "Pindutin ang \"I-save\" sa ibaba para ma-activate ang security key na ito para sa dalawang-hakbang na pag-log in." }, "twoFactorU2fProblemReadingTryAgain": { - "message": "May problema sa pagbabasa ng security key. Try mo ulit." + "message": "Nagkaproblema sa pagbabasa ng security key. Pakisubukan ulit." }, "twoFactorWebAuthnWarning": { - "message": "Dahil sa mga limitasyon ng platform, hindi maaaring gamitin ang WebAuthn sa lahat ng mga aplikasyon ng Bitwarden. Dapat kang mag set up ng isa pang dalawang hakbang na provider ng pag login upang ma access mo ang iyong account kapag hindi magamit ang WebAuthn. Mga suportadong platform:" + "message": "Hindi magagamit sa lahat ng mga aplikasyon ng Bitwarden ang WebAuthn dahil sa mga limitasyon ng platform. Dapat mag-set up ka ng isa pang provider ng dalawang-hakbang na pag-log in para ma-access mo ang account mo sakaling hindi magamit ang WebAuthn. Mga suportadong platform:" }, "twoFactorWebAuthnSupportWeb": { - "message": "Web vault at mga extension ng browser sa isang desktop / laptop na may isang WebAuthn suportado browser (Chrome, Opera, Vivaldi, o Firefox na may FIDO U2F nakabukas)." + "message": "Web vault at mga ekstensyon pang-browser sa desktop/laptop na may browser na sinusuportahan ang WebAuthn (Chrome, Opera, Vivaldi, o Firefox na nakabukas ang FIDO U2F)." }, "twoFactorRecoveryYourCode": { - "message": "Ang iyong Bitwarden dalawang hakbang na code sa pagbawi ng pag login" + "message": "Code pang-recover mo sa dalawang-hakbang na pag-log in sa Bitwarden" }, "twoFactorRecoveryNoCode": { - "message": "Hindi ka pa nag set up ng anumang dalawang hakbang na mga tagapagbigay ng pag login. Pagkatapos mong mag set up ng isang dalawang hakbang na tagapagbigay ng pag login maaari mong suriin pabalik dito para sa iyong code sa pagbawi." + "message": "Hindi ka pa nakapag-set up ng anumang provider ng dalawang-hakbang na pag-log in. Pagkatapos mong makapag-set up nito, bumalik rito para makita ang mga code pang-recover mo." }, "printCode": { - "message": "Mag-print ng code", + "message": "I-print ang code", "description": "Print 2FA recovery code" }, "reports": { - "message": "Mga Ulat" + "message": "Mga ulat" }, "reportsDesc": { - "message": "Kilalanin at isara ang mga puwang sa seguridad sa iyong mga online account sa pamamagitan ng pag click sa mga ulat sa ibaba.", + "message": "Tingnan ang mga ulat sa ibaba para kilalanin at tapalan ang mga butas sa seguridad sa mga account mo online.", "description": "Vault health reports can be used to evaluate the security of your Bitwarden individual or organization vault." }, "orgsReportsDesc": { - "message": "Tukuyin at isara ang mga puwang sa seguridad sa mga account ng iyong organisasyon sa pamamagitan ng pag-click sa mga ulat sa ibaba.", + "message": "Tingnan ang mga ulat sa ibaba para kilalanin at tapalan ang mga butas sa seguridad sa mga account ng organisasyon mo.", "description": "Vault health reports can be used to evaluate the security of your Bitwarden individual or organization vault." }, "unsecuredWebsitesReport": { - "message": "Hindi ligtas na mga website" + "message": "Mga website na hindi ligtas" }, "unsecuredWebsitesReportDesc": { - "message": "Ang mga URL na nagsisimula sa http:// ay hindi gumagamit ng pinakamahusay na magagamit na pag encrypt. Baguhin ang mga URI ng pag login para sa mga account na ito upang https:// para sa mas ligtas na pag browse." + "message": "Hindi gumagamit ng pinakamainam na encryption ang mga URL na nagsisimula sa http://. Gawing https:// ang mga URI ng login ng mga account na ito para sa mas ligtas na pagba-browse." }, "unsecuredWebsitesFound": { - "message": "Natagpuan ang mga website na hindi secure" + "message": "May nakitang mga website na hindi ligtas" }, "unsecuredWebsitesFoundDesc": { - "message": "Nakita namin ang $COUNT$ na mga item sa iyong vault na may mga hindi secure na URI. Dapat mong baguhin ang kanilang scheme ng URI sa https:// kung pinapayagan ito ng website.", + "message": "May $COUNT$ item sa vault mo na gumagamit ng hindi ligtas na URI. Dapat gawing https:// ang URI scheme nito kung maa-access mo ang website gamit nito.", "placeholders": { "count": { "content": "$1", @@ -1666,19 +1666,19 @@ } }, "noUnsecuredWebsites": { - "message": "Walang mga item sa iyong vault na may mga unsecured URI." + "message": "Walang item sa vault mo na may hindi ligtas na URI." }, "inactive2faReport": { - "message": "Hindi aktibo ang dalawang hakbang na pag login" + "message": "Nakasarang dalawang-hakbang na pag-log in" }, "inactive2faReportDesc": { - "message": "Ang dalawang hakbang na pag login ay nagdaragdag ng isang layer ng proteksyon sa iyong mga account. Mag set up ng dalawang hakbang na pag login gamit ang Bitwarden authenticator para sa mga account na ito o gumamit ng isang alternatibong paraan." + "message": "Nagdadagdag ng karagdagang proteksyon sa mga account mo ang dalawang-hakbang na pag-log in. I-set up ang dalawang-hakbang na pag-log in sa mga account na ito gamit ang Bitwarden o iba pang paraan." }, "inactive2faFound": { - "message": "Natagpuan ang mga login na walang dalawang hakbang na pag login" + "message": "May mga login na nakasara ang dalawang-hakbang na pag-log in" }, "inactive2faFoundDesc": { - "message": "Natagpuan namin ang (mga) website ng $COUNT$ sa iyong vault na maaaring hindi naka-configure gamit ang dalawang-hakbang na pag-login (ayon sa 2fa.directory). Upang higit pang maprotektahan ang mga account na ito, dapat kang mag set up ng dalawang hakbang na pag login.", + "message": "May $COUNT$ website sa vault mo na maaaring hindi pa gumagamit ng dalawang-hakbang na pag-log in (ayon sa 2fa.directory). I-set up ang dalawang-hakbang na pag-log in sa mga account na ito para sa karagdagang proteksyon.", "placeholders": { "count": { "content": "$1", @@ -1687,22 +1687,22 @@ } }, "noInactive2fa": { - "message": "Walang mga website na natagpuan sa iyong vault na may nawawalang dalawang hakbang na pagsasaayos ng pag login." + "message": "Walang website sa vault mo na hindi pa gumagamit ng dalawang-hakbang na pag-log in." }, "instructions": { - "message": "Mga tagubilin" + "message": "Mga panuto" }, "exposedPasswordsReport": { - "message": "Mga nakalantad na password" + "message": "Mga nakompromisong password" }, "exposedPasswordsReportDesc": { - "message": "Ang mga password na nakalantad sa isang paglabag sa data ay madaling target para sa mga attacker. Baguhin ang mga password na ito upang maiwasan ang mga potensyal na break in." + "message": "Madaling maha-hack ang mga password na nakompromiso sa data breach. Palitan ang mga password na ito para maiwasan ang posibleng pagka-hack." }, "exposedPasswordsFound": { - "message": "Natagpuan ang mga nakalantad na password" + "message": "May nakitang mga nakompromisong password" }, "exposedPasswordsFoundDesc": { - "message": "Natagpuan namin ang $COUNT$ item sa iyong vault na may mga password na nakalantad sa mga kilalang paglabag sa data. Dapat mong baguhin ang mga ito upang gumamit ng isang bagong password.", + "message": "May $COUNT$ item sa vault mo na may password na nakompromiso sa mga naitalang data breach. Kailangan mo silang baguhin.", "placeholders": { "count": { "content": "$1", @@ -1711,13 +1711,13 @@ } }, "noExposedPasswords": { - "message": "Walang mga item sa iyong vault ang may mga password na nalantad sa mga kilalang paglabag sa data." + "message": "Walang item sa vault mo na may password na nakompromiso sa mga naitalang data breach." }, "checkExposedPasswords": { - "message": "Suriin ang mga nakalantad na password" + "message": "Tingnan ang mga nakompromisong password" }, "exposedXTimes": { - "message": "Nakalantad $COUNT$ (mga) oras", + "message": "Nakompromiso $COUNT$ beses", "placeholders": { "count": { "content": "$1", @@ -1726,16 +1726,16 @@ } }, "weakPasswordsReport": { - "message": "Mahina ang mga password" + "message": "Mga mahinang password" }, "weakPasswordsReportDesc": { - "message": "Ang mga mahina na password ay madaling hulaan ng mga attacker. Palitan ang mga password na ito sa mga malakas na gamit ang password generator." + "message": "Madaling mahuhulaan ng mga hacker ang mahihinang password. Palakasin ang mga ito gamit ang tagagawa ng password." }, "weakPasswordsFound": { - "message": "Mahina ang mga password na natagpuan" + "message": "May mga mahinang password" }, "weakPasswordsFoundDesc": { - "message": "Natagpuan namin ang $COUNT$ item sa iyong vault na may mga password na hindi malakas. Dapat mong i update ang mga ito upang magamit ang mas malakas na mga password.", + "message": "May $COUNT$ item sa vault mo na may mahinang password. Dapat mo silang palakasin.", "placeholders": { "count": { "content": "$1", @@ -1744,19 +1744,19 @@ } }, "noWeakPasswords": { - "message": "Walang mga item sa iyong vault na may mahinang mga password." + "message": "Walang item sa vault mo na may mahinang password." }, "reusedPasswordsReport": { - "message": "Muling ginamit na mga password" + "message": "Mga naulit na password" }, "reusedPasswordsReportDesc": { - "message": "Ang muling paggamit ng mga password ay ginagawang mas madali para sa mga attacker na masira sa maraming mga account. Baguhin ang mga password na ito upang ang bawat isa ay natatangi." + "message": "Mas madaling makakapasok sa maramihang mga account ang mga hacker kung uulit-ulitin mo ang mga password mo. Gawing unique ang mga password na ito." }, "reusedPasswordsFound": { - "message": "Natagpuan ang mga ginamit na password" + "message": "May mga naulit na password" }, "reusedPasswordsFoundDesc": { - "message": "Natagpuan namin ang $COUNT$ password na muling ginagamit sa iyong vault. Dapat mong baguhin ang mga ito sa isang natatanging halaga.", + "message": "May $COUNT$ item sa vault mo na may password na pinapaulit-ulit. Kailangan mo silang gawing unique.", "placeholders": { "count": { "content": "$1", @@ -1765,10 +1765,10 @@ } }, "noReusedPasswords": { - "message": "Walang mga pag login sa iyong vault na may mga password na muling ginagamit." + "message": "Walang paulit-ulit na password sa mga login sa vault mo." }, "reusedXTimes": { - "message": "Muling ginamit $COUNT$ beses", + "message": "Pinaulit-ulit $COUNT$ beses", "placeholders": { "count": { "content": "$1", @@ -1777,7 +1777,7 @@ } }, "dataBreachReport": { - "message": "Paglabag sa data" + "message": "Pagkakompromiso sa datos" }, "breachDesc": { "message": "Maaaring ilantad ng mga nilabag na account ang iyong personal na impormasyon. Secure breached account sa pamamagitan ng pagpapagana ng 2FA o paglikha ng isang mas malakas na password." @@ -4853,16 +4853,16 @@ "message": "Ang isa o higit pang mga patakaran ng organisasyon ay nagpipigil sa iyo mula sa pag-export ng iyong indibidwal na vault." }, "activateAutofill": { - "message": "I-activate ang auto-fill" + "message": "Buksan ang autofill" }, "activateAutofillDesc": { - "message": "I-activate ang auto-fill na may mga pag-load ng pahina settings sa browser extension para sa lahat ng umiiral at bagong mga miyembro." + "message": "Buksan ang autofill na may mga setting ng page load sa ekstensyon pang-browser sa lahat ng kasalukyan at bagong miyembro." }, "experimentalFeature": { - "message": "Ang mga nakompromiso o hindi pinagkakatiwalaang mga website ay maaaring samantalahin ang awtomatikong pagpuno sa pag load ng pahina." + "message": "Maaaring pagsamantalahan ng mga nakompromisong website ang pag-autofill pagka-load ng pahina." }, "learnMoreAboutAutofill": { - "message": "Matuto nang higit pa tungkol sa auto fill" + "message": "Matuto pa tungkol sa autofill" }, "selectType": { "message": "Pumili ng uri ng SSO" @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Na-delete na ang service account" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Na-delete na ang mga service accounts" @@ -6036,8 +6036,8 @@ "message": "Mga token ng access", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Lumikha ng access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/fr/messages.json b/apps/web/src/locales/fr/messages.json index 398c06b627cd..652b5ca6b5ef 100644 --- a/apps/web/src/locales/fr/messages.json +++ b/apps/web/src/locales/fr/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Le compte de service a été supprimé" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Comptes de service supprimés" @@ -6036,8 +6036,8 @@ "message": "Jetons d'accès", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Créer un jeton d'accès", + "newAccessToken": { + "message": "Nouveau jeton d'accès", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/gl/messages.json b/apps/web/src/locales/gl/messages.json index 45b83effd296..c5fcc7a7020a 100644 --- a/apps/web/src/locales/gl/messages.json +++ b/apps/web/src/locales/gl/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/he/messages.json b/apps/web/src/locales/he/messages.json index a8eeee045fe5..1f0fffa5b8af 100644 --- a/apps/web/src/locales/he/messages.json +++ b/apps/web/src/locales/he/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/hi/messages.json b/apps/web/src/locales/hi/messages.json index 309a5809a109..1ea7b63218b5 100644 --- a/apps/web/src/locales/hi/messages.json +++ b/apps/web/src/locales/hi/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/hr/messages.json b/apps/web/src/locales/hr/messages.json index 6c4e4d46935a..59f5dc9d382d 100644 --- a/apps/web/src/locales/hr/messages.json +++ b/apps/web/src/locales/hr/messages.json @@ -281,35 +281,35 @@ "message": "Pretraživanje favorita" }, "searchLogin": { - "message": "Search logins", + "message": "Pretraži prijave", "description": "Search Login type" }, "searchCard": { - "message": "Search cards", + "message": "Pretraži kartice", "description": "Search Card type" }, "searchIdentity": { - "message": "Search identities", + "message": "Pretraži identitete", "description": "Search Identity type" }, "searchSecureNote": { - "message": "Search secure notes", + "message": "Pretraži sigurne bilješke", "description": "Search Secure Note type" }, "searchVault": { "message": "Pretraživanje trezora" }, "searchMyVault": { - "message": "Search my vault" + "message": "Pretraži moj trezor" }, "searchOrganization": { - "message": "Search organization" + "message": "Pretraži organizaciju" }, "searchMembers": { - "message": "Search members" + "message": "Pretraži članove" }, "searchGroups": { - "message": "Search groups" + "message": "Pretraži grupe" }, "allItems": { "message": "Sve stavke" @@ -393,7 +393,7 @@ "message": "Odaberi" }, "newItem": { - "message": "New item" + "message": "Nova stavka" }, "addItem": { "message": "Dodaj stavku" @@ -409,7 +409,7 @@ "description": "for adding new items" }, "item": { - "message": "Item" + "message": "Stavka" }, "ex": { "message": "npr.", @@ -477,7 +477,7 @@ "message": "Trezorske stavke" }, "filter": { - "message": "Filter" + "message": "Filtriraj" }, "moveSelectedToOrg": { "message": "Premjesti odabrano u Organizaciju" @@ -586,10 +586,10 @@ "message": "Mapa izbrisana" }, "editInfo": { - "message": "Edit info" + "message": "Uredi informacije" }, "access": { - "message": "Access" + "message": "Pristup" }, "loggedOut": { "message": "Odjavljen/a" @@ -628,7 +628,7 @@ "message": "Stvori račun" }, "newAroundHere": { - "message": "New around here?" + "message": "Novi korisnik?" }, "startTrial": { "message": "Pokreni probno razdoblje" @@ -697,7 +697,7 @@ "message": "Potreban je ponovni unos glavne lozinke." }, "masterPasswordMinlength": { - "message": "Master password must be at least $VALUE$ characters long.", + "message": "Glavna lozinka mora imati najmanje $VALUE$ znakova.", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -756,7 +756,7 @@ "message": "Nema stavki za prikaz." }, "noPermissionToViewAllCollectionItems": { - "message": "You do not have permission to view all items in this collection." + "message": "Nemaš prava vidjeti sve stavke u ovoj zbirci." }, "noCollectionsInList": { "message": "Nema zbirki za prikaz." @@ -768,7 +768,7 @@ "message": "Nema korisnika za prikaz." }, "noMembersInList": { - "message": "There are no members to list." + "message": "Nema članova za prikaz." }, "noEventsInList": { "message": "Nema događaja za prikaz." @@ -906,7 +906,7 @@ "message": "Uredi zbirke s kojima se ova stavka koristi. Samo korisnici organizacije s pristupom ovim zbirkama će ih moći vidjeti." }, "deleteSelectedItemsDesc": { - "message": "Odabrano je $COUNT$ stavke/i za brisanje. Sigurno želiš obrisati sve ove stavke?", + "message": "$COUNT$ stavka/i će biti poslano su smeće.", "placeholders": { "count": { "content": "$1", @@ -915,7 +915,7 @@ } }, "deleteSelectedCollectionsDesc": { - "message": "$COUNT$ collection(s) will be permanently deleted.", + "message": "$COUNT$ zbirka/i će biti trajno izbrisano.", "placeholders": { "count": { "content": "$1", @@ -924,7 +924,7 @@ } }, "deleteSelectedConfirmation": { - "message": "Are you sure you want to continue?" + "message": "Sigurno želiš nastaviti?" }, "moveSelectedItemsDesc": { "message": "Odaberi mapu u koju želiš premjestiti odabranih $COUNT$ stavke/i.", @@ -1001,16 +1001,16 @@ "message": "Potvrdi lozinku datoteke" }, "accountRestrictedOptionDescription": { - "message": "Use your account encryption key, derived from your account's username and Master Password, to encrypt the export and restrict import to only the current Bitwarden account." + "message": "Upotrijebi svoj ključ za šifriranje računa, izveden iz korisničkog imena i glavne lozinke za šifriranje izvoza i ograničavanje uvoza samo na trenutni Bitwarden račun." }, "passwordProtectedOptionDescription": { - "message": "Postavi lozinku za šifriranje datoteke izvoza za naknadni uvoz u bilo koji Bitwarden račun." + "message": "Postavi lozinku za šifriranje izvozne datoteke. Datoteku uvezi ju u bilo koji Bitwarden račun koristeći istu lozinku." }, "exportTypeHeading": { - "message": "Export type" + "message": "Tip izvoza" }, "accountRestricted": { - "message": "Account restricted" + "message": "Račun ograničen" }, "passwordProtected": { "message": "Zaštićeno lozinkom" @@ -1165,17 +1165,17 @@ } }, "kdfMemory": { - "message": "KDF memory (MB)", + "message": "KDF memorija (MB)", "description": "Memory refers to computer memory (RAM). MB is short for megabytes." }, "argon2Warning": { - "message": "Setting your KDF iterations, memory, and parallelism too high could result in poor performance when logging into (and unlocking) Bitwarden on slower or older devices. We recommend changing these individually in small increments and then test all of your devices." + "message": "Postavljanje previsokih KDF iteracija, memorije i paralelizama može rezultirati slabijom izvedbom prilikom prijave/odjave u Bitwarden na starijim ili slabijim uređajima. Predlažemo da vrijednost povećavaš malo po malo i isprobaš na svim svojim uređajima." }, "kdfParallelism": { - "message": "KDF parallelism" + "message": "KDF paralelizam" }, "argon2Desc": { - "message": "Higher KDF iterations, memory, and parallelism can help protect your master password from being brute forced by an attacker." + "message": "Više KDF iteracije, memiorije i paralelizmi mogu pomoći zaštititi tvoju glavnu lozinku od bute force napada." }, "changeKdf": { "message": "Promijeni KDF" @@ -1256,7 +1256,7 @@ "message": "Uvoz podataka u trezor je uspio" }, "dataExportSuccess": { - "message": "Data successfully exported" + "message": "Izvoz podataka uspješan" }, "importWarning": { "message": "Uvoziš podatke u $ORGANIZATION$. Tvoji podaci možda će biti podijeljeni s članovima ove organizacije. Želiš li svejedno uvesti podatke?", @@ -1696,7 +1696,7 @@ "message": "Izvještaj o izloženim lozinkama" }, "exposedPasswordsReportDesc": { - "message": "Passwords exposed in a data breach are easy targets for attackers. Change these passwords to prevent potential break-ins." + "message": "Lozinke izložene tijekom krađe podataka su laka meta za napadače. Promijeni ove lozinke za sprječavanje provala." }, "exposedPasswordsFound": { "message": "Pronađene izložene lozinke" @@ -1910,7 +1910,7 @@ } }, "premiumPriceWithFamilyPlan": { - "message": "Go premium for just $PRICE$ /year, or get premium accounts for $FAMILYPLANUSERCOUNT$ users and unlimited family sharing with a ", + "message": "Prijeđi na premium za samo $PRICE$/godišnje ili nabavi premium račune za $FAMILYPLANUSERCOUNT$ korisnika i neograničeno dijeljenje s obitelji s ", "placeholders": { "price": { "content": "$1", @@ -1923,7 +1923,7 @@ } }, "bitwardenFamiliesPlan": { - "message": "Bitwarden Families plan." + "message": "Planom Bitwarden Families." }, "addons": { "message": "Dodaci" @@ -2065,7 +2065,7 @@ "message": "Upravljaj pretplatom" }, "launchCloudSubscription": { - "message": "Launch Cloud Subscription" + "message": "Pokreni Cloud pretplatu" }, "storage": { "message": "Prostor za pohranu" @@ -2460,7 +2460,7 @@ "message": "Sigurno želiš obrisati ovu grupu?" }, "deleteMultipleGroupsConfirmation": { - "message": "Are you sure you want to delete the following $QUANTITY$ group(s)?", + "message": "Sigurno želiš obrisati $QUANTITY$ grupu/a?", "placeholders": { "quantity": { "content": "$1", @@ -2484,10 +2484,10 @@ "message": "Vanjski Id" }, "externalIdDesc": { - "message": "Vanjski id se može koristiti kao referenca ili vezati ovaj resurs na vanjski sustav kao što je npr. direktorij korisnika." + "message": "Vanjski id je nešifrirana referenca koju koristi Bitwarden Directory Connector i API." }, "nestCollectionUnder": { - "message": "Nest collection under" + "message": "Ugnijezdi zbirku pod" }, "accessControl": { "message": "Kontrola pristupa" @@ -2511,7 +2511,7 @@ "message": "Uredi zbirku" }, "collectionInfo": { - "message": "Collection info" + "message": "Info o zbirci" }, "deleteCollectionConfirmation": { "message": "Sigurno želiš obrisati ovu zbirku?" @@ -2520,7 +2520,7 @@ "message": "Uredi člana" }, "fieldOnTabRequiresAttention": { - "message": "A field on the '$TAB$' tab requires your attention.", + "message": "Polje na kartici '$TAB$' treba tvoju pažnju.", "placeholders": { "tab": { "content": "$1", @@ -2721,7 +2721,7 @@ } }, "viewedCardNumberItemId": { - "message": "Viewed Card Number for item $ID$.", + "message": "Gledan broj kartice za stavku $ID$.", "placeholders": { "id": { "content": "$1", @@ -2793,7 +2793,7 @@ } }, "deletedCollections": { - "message": "Deleted collections" + "message": "Obrisana zbirka" }, "deletedCollectionId": { "message": "Izbrisana zbirka $ID$.", @@ -2841,7 +2841,7 @@ } }, "deletedManyGroups": { - "message": "Deleted $QUANTITY$ group(s).", + "message": "$QUANTITY$ grupa obrisana/o.", "placeholders": { "quantity": { "content": "$1", @@ -3024,7 +3024,7 @@ "message": "Grupni pristup" }, "groupAccessUserDesc": { - "message": "Uredi grupe kojima ovaj korisnik pripada." + "message": "Dodijeli članovima pristup zbirkama dodajući ih u jednu ili više grupa." }, "invitedUsers": { "message": "Korisnik/ci pozvan/i" @@ -3060,10 +3060,10 @@ } }, "confirmUsers": { - "message": "Autoriziraj korisnike" + "message": "Potvrdi korisnike" }, "usersNeedConfirmed": { - "message": "Postoje korisnici koji su potvrdili svoj poziv, ali neće imati pristup organizaciji sve dok ih se ne autorizira." + "message": "Imaš članove koji su prihvatili poziv, no moraju biti potvrđeni kako bi imali pristup organizaciji." }, "startDate": { "message": "Datum početka" @@ -3529,7 +3529,7 @@ "message": "Slaba glavna lozinka" }, "weakMasterPasswordDesc": { - "message": "Odabrana glavna lozinka je slaba. Trebaš koristiti jaču glavnu lozinku (ili frazu) kako bi tvoj Bitwarden račun bio pravilno zaštićen. Sigurno želiš koristiti ovakvu, slabu glavnu lozinku?" + "message": "Prepoznata je slaba lozinka. Za zaštitu računa, preporučuje se da koristiš jake lozinke. Želiš li svejedno koristiti slabu lozinku?" }, "rotateAccountEncKey": { "message": "Dodatno rotiraj ključ za šifriranje mojeg računa" @@ -3777,7 +3777,7 @@ "message": "Vrati stavke" }, "restoreSelectedItemsDesc": { - "message": "Odabrano je $COUNT$ stavke/i za vraćanje. Sigurno želiš vratiti sve ove stavke?", + "message": "Odabrano je $COUNT$ stavka/i za vraćanje. Sigurno želiš vratiti sve ove stavke?", "placeholders": { "count": { "content": "$1", @@ -4256,19 +4256,19 @@ "message": "Dodijeli prilagođena dopuštenja članovima" }, "customDescNonEnterpriseStart": { - "message": "Custom roles is an ", + "message": "Prilagođena uloga je ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Custom roles is an enterprise feature. Contact our support team to upgrade your subscription'" }, "customDescNonEnterpriseLink": { - "message": "enterprise feature", + "message": "enterprise značajka", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Custom roles is an enterprise feature. Contact our support team to upgrade your subscription'" }, "customDescNonEnterpriseEnd": { - "message": ". Contact our support team to upgrade your subscription", + "message": "Kontaktiraj našu podršku za nadogradnju svoje pretplate", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Custom roles is an enterprise feature. Contact our support team to upgrade your subscription'" }, "customNonEnterpriseError": { - "message": "To enable custom permissions the organization must be on an Enterprise 2020 plan." + "message": "Za uključivanje prilagođenih uloga, organizacija mora biti na planu Enterprise 2020." }, "permissions": { "message": "Dozvole" @@ -4853,16 +4853,16 @@ "message": "Jedno ili više pravila organizacija onemogućuje izvoz osobnog trezora." }, "activateAutofill": { - "message": "Activate auto-fill" + "message": "Aktiviraj auto-ispunu" }, "activateAutofillDesc": { - "message": "Activate the auto-fill with page load settings on the browser extension for all existing and new members." + "message": "Aktivira auto-ispunu kod učitavanja stranice u dodatku za preglednik za sve postojeće i nove korisnike." }, "experimentalFeature": { - "message": "Compromised or untrusted websites can exploit auto-fill on page load." + "message": "Ugrožene ili nepouzdane web stranice mogu iskoristiti auto-ispunu prilikom učitavanja stranice." }, "learnMoreAboutAutofill": { - "message": "Learn more about auto-fill" + "message": "Saznaj više o auto-ispuni" }, "selectType": { "message": "Odaberi vrstu SSO" @@ -4931,7 +4931,7 @@ "message": "URL Assertion consumer servisa (ACS)" }, "spNameIdFormat": { - "message": "Name ID format" + "message": "Format naziva ID" }, "spOutboundSigningAlgorithm": { "message": "Algoritam odlaznog potpisivanja" @@ -4973,7 +4973,7 @@ "message": "Dozvoli odlazne zahtjeve za odjavu" }, "idpSignAuthenticationRequests": { - "message": "Sign authentication requests" + "message": "Potpiši zahtjeve za autentifikaciju" }, "ssoSettingsSaved": { "message": "Konfiguracija za jedinstvenu prijavu (SSO) je spremljena." @@ -5015,7 +5015,7 @@ "message": "Unesi svoju osobnu e-poštu za korištenje obiteljskog Bitwardena" }, "sponsoredFamiliesLeaveCopy": { - "message": "If you remove an offer or are removed from the sponsoring organization, your Families sponsorship will expire at the next renewal date." + "message": "Ako ukloniš ponudu ili budeš uklonjen/a iz sponzorske organizacije, tvoje će sponzorstvo Obiteljskog plana isteći na sljedeći datum obnove." }, "acceptBitwardenFamiliesHelp": { "message": "Prihavati ponudu postojeće organizacije ili stvori novu obiteljsku organizaciju." @@ -5057,7 +5057,7 @@ } }, "resendEmailLabel": { - "message": "Resend sponsorship email to $NAME$ sponsorship", + "message": "Ponovno na $NAME$ pošalji sponzorsku poruku e-pošte", "placeholders": { "name": { "content": "$1", @@ -5078,7 +5078,7 @@ "message": "Ukloni sponzorstvo" }, "removeSponsorshipConfirmation": { - "message": "After removing a sponsorship, you will be responsible for this subscription and related invoices. Are you sure you want to continue?" + "message": "Nakon uklanjanja sponzorstva, snosiš platnu odgovornost za ovu pretplatu i povezane fakture. Sigurno želiš nastaviti?" }, "sponsorshipCreated": { "message": "Sponzorstvo stvoreno" @@ -5087,13 +5087,13 @@ "message": "e-pošta poslana" }, "revokeSponsorshipConfirmation": { - "message": "After removing this account, the Families plan sponsorship will expire at the end of the billing period. You will not be able to redeem a new sponsorship offer until the existing one expires. Are you sure you want to continue?" + "message": "Nakon uklanjanja ovog računa, sponzorstvo Obiteljskog plana isteći će na kraju obračunskog razdoblja. Nećeš moći iskoristiti novu ponudu sponzorstva dok ne istekne postojeća. Sigurno želiš nastaviti?" }, "removeSponsorshipSuccess": { "message": "Sponzorstvo uklonjeno" }, "ssoKeyConnectorError": { - "message": "Key Connector error: make sure Key Connector is available and working correctly." + "message": "Greška Key Connectora: provjeri je li Key Connector dostupan i radi li ispravno." }, "keyConnectorUrl": { "message": "URL konektora za ključ" @@ -5141,7 +5141,7 @@ "message": "Dopusti jedinstvenu SSO autentifikaciju" }, "allowSsoDesc": { - "message": "Once set up, your configuration will be saved and members will be able to authenticate using their Identity Provider credentials." + "message": "Nakon postavljanja, tvoja će konfiguracija biti spremljena i članovi će se moći autentificirati koristeći svoje vjerodajnice davatelja identiteta." }, "ssoPolicyHelpStart": { "message": "Omogući", @@ -5156,7 +5156,7 @@ "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Use the require single-sign-on authentication policy to require all members to log in with SSO.'" }, "ssoPolicyHelpKeyConnector": { - "message": "The require SSO authentication and single organization policies are required to set up Key Connector decryption." + "message": "Potrebna je SSO provjera autentičnosti i pravila jedne organizacije potrebna su za postavljanje dešifriranja koristeći Key Connector." }, "memberDecryptionOption": { "message": "Opcije dešifriranja za članove" @@ -5168,10 +5168,10 @@ "message": "Konektor za ključ" }, "memberDecryptionKeyConnectorDesc": { - "message": "Connect login with SSO to your self-hosted decryption key server. Using this option, members won’t need to use their master passwords to decrypt vault data. Contact Bitwarden Support for set up assistance." + "message": "Poveži prijavu sa SSO-om na svoj vlastiti poslužitelj za ključ za dešifriranje. Koristeći ovu opciju, članovi neće morati koristiti svoje glavne lozinke za dešifriranje podataka trezora. Kontaktiraj Bitwarden podršku za pomoć pri postavljanju." }, "keyConnectorPolicyRestriction": { - "message": "\"Login with SSO and Key Connector Decryption\" is activated. This policy will only apply to owners and admins." + "message": "Aktivirana je ”Prijava uz SSO i dešifriranje Key Connectorom„ Ovo će se pravilo primjenjivati samo na vlasnike i administratore." }, "enabledSso": { "message": "SSO omogućen" @@ -5186,13 +5186,13 @@ "message": "Konektor za ključ onemogućen" }, "keyConnectorWarning": { - "message": "Once members begin using Key Connector, your organization cannot revert to master password decryption. Proceed only if you are comfortable deploying and managing a key server." + "message": "Nakon što članovi počnu koristiti dešifriranje Key Connectorom, tvoja se organizacija ne može vratiti na dešifriranje glavnom lozinkom. Nastavi samo ako ćeš implementirati i upravljati poslužiteljem za ključeve." }, "migratedKeyConnector": { - "message": "Migrated to Key Connector" + "message": "Migrirano na Key Connector" }, "paymentSponsored": { - "message": "Please provide a payment method to associate with the organization. Don't worry, we won't charge you anything unless you select additional features or your sponsorship expires. " + "message": "Navedi način plaćanje za povezivanje s organizacijom. Ne brini, nećemo ti ništa naplatiti osim ako ne odabereš dodatne značajke ili istekne sponzorstvo. " }, "orgCreatedSponsorshipInvalid": { "message": "Sponzorirana ponuda je istekla. Kako na kraju 7 dnevnog probnog razdoblja ne bi došlo do terećenja, moguće je izbrisati stvorenu organizaciju. Zadržavanjem organizacije preuzimate obvezu plaćanja." @@ -5222,16 +5222,16 @@ "message": "BESPLATNO sa sponzorstvom" }, "viewBillingSyncToken": { - "message": "View billing sync token" + "message": "Pogledaj token za sinkronizaciju naplate" }, "generateBillingSyncToken": { "message": "Generiraj token za sinkronizaciju plaćanja" }, "copyPasteBillingSync": { - "message": "Copy and paste this token into the billing sync settings of your self-hosted organization." + "message": "Kopiraj i zalijepi ovaj token u postavke sinkronizacije naplate tvoje organizacije s vlastitim poslužiteljem." }, "billingSyncCanAccess": { - "message": "Your billing sync token can access and edit this organization's subscription settings." + "message": "Tvoj token za sinkronizaciju naplate može pristupiti i uređivati postavke pretplate ove organizacije." }, "manageBillingSync": { "message": "Upravljaj sinkronizacijom naplate" @@ -5255,19 +5255,19 @@ "message": "Vlastiti poslužitelj" }, "selfHostingEnterpriseOrganizationSectionCopy": { - "message": "To set-up your organization on your own server, you will need to upload your license file. To support Free Families plans and advanced billing capabilities for your self-hosted organization, you will need to set up billing sync." + "message": "Za postavljanje svoje organizacije na vlastitom poslužitelju, morat ćeš prenijeti datoteku licence. Kako bi podržali planove Free Families i napredne mogućnosti naplate za svoju samostalnu organizaciju, morat ćeš postaviti sinkronizaciju naplate." }, "billingSyncApiKeyRotated": { "message": "Token rotiran" }, "billingSyncDesc": { - "message": "Billing sync unlocks Families sponsorships and automatic license syncing on your server. After making updates in the Bitwarden cloud server, select Sync License to apply changes." + "message": "Sinkronizacija naplate otključava obiteljska sponzorstva i automatsku sinkronizaciju licenci na tvojem poslužitelju. Nakon ažuriranja Bitwarden poslužitelja u oblaku, odaberi Sinkronizaciju Licence za primjenu promjena." }, "billingSyncKeyDesc": { - "message": "A billing sync token from your cloud organization's subscription settings is required to complete this form." + "message": "Za ispunjavanje ovog obrasca potreban je token za sinkronizaciju naplate iz postavki pretplate tvoje organizacije u oblaku." }, "billingSyncKey": { - "message": "Billing sync token" + "message": "Token za sinkronizaciju naplate" }, "active": { "message": "Aktivno" @@ -5309,10 +5309,10 @@ } }, "required": { - "message": "required" + "message": "obavezno" }, "characterMaximum": { - "message": "$MAX$ character maximum", + "message": "najviše $MAX$ znakova", "placeholders": { "max": { "content": "$1", @@ -5321,7 +5321,7 @@ } }, "idpSingleSignOnServiceUrlRequired": { - "message": "Required if Entity ID is not a URL." + "message": "Obavezan Enditiy ID nije URL." }, "openIdOptionalCustomizations": { "message": "Izborne prilagodbe" @@ -5342,7 +5342,7 @@ "message": "Izvoz organizacijskog trezora" }, "exportingPersonalVaultDescription": { - "message": "Izvest će se samo stavke osobnog trezora povezanog s $EMAIL$. Stavke organizacijskog trezora neće biti uključene.", + "message": "Izvest će se samo stavke osobnog trezora povezanog s $EMAIL$. Stavke organizacijskog trezora neće biti uključene. Izvest će se samo informacija o stavci trezora bez pripadajućih podataka o povijesti lozinki i privitaka.", "placeholders": { "email": { "content": "$1", @@ -5351,7 +5351,7 @@ } }, "exportingOrganizationVaultDescription": { - "message": "Only the organization vault associated with $ORGANIZATION$ will be exported. Individual vault items and items from other organizations will not be included.", + "message": "Izvest će se samo organizacijski trezor povezan s $ORGANIZATION$. Pojedinačne stavke iz trezora i stavke iz drugih organizacija neće biti uključene.", "placeholders": { "organization": { "content": "$1", @@ -5360,7 +5360,7 @@ } }, "accessDenied": { - "message": "Access denied. You do not have permission to view this page." + "message": "Pristup odbijen. Nemaš prava vijdeti ovu stranicu." }, "masterPassword": { "message": "Glavna lozinka" @@ -5378,7 +5378,7 @@ "message": "Natrag na izvještaje" }, "organizationPicker": { - "message": "Organization picker" + "message": "Odabir organizacija" }, "currentOrganization": { "message": "Trenutna organizacija", @@ -5429,10 +5429,10 @@ "message": "Usluga" }, "unknownCipher": { - "message": "Unknown item, you may need to request permission to access this item." + "message": "Nepoznata stavka. Možda trebaš tražiti dozvolu za pristup ovoj stavci." }, "cannotSponsorSelf": { - "message": "You cannot redeem for the active account. Enter a different email." + "message": "Ne možeš iskorisiti za aktivi račun. Unesi drugu adresu e-pošte." }, "revokeWhenExpired": { "message": "Ističe $DATE$", @@ -5444,7 +5444,7 @@ } }, "awaitingSyncSingular": { - "message": "Token rotated $DAYS$ day ago. Update the billing sync token in your self-hosted organization settings.", + "message": "Token je rotiran prije $DAYS$ dan/a. Ažuriraj token za sinkronizaciju naplate u postavkama organizacije na vlastitom poslužitelju.", "placeholders": { "days": { "content": "$1", @@ -5453,7 +5453,7 @@ } }, "awaitingSyncPlural": { - "message": "Token rotated $DAYS$ days ago. Update the billing sync token in your self-hosted organization settings.", + "message": "Token je rotiran prije $DAYS$ dan/a. Ažuriraj token za sinkronizaciju naplate u postavkama organizacije na vlastitom poslužitelju.", "placeholders": { "days": { "content": "$1", @@ -5466,10 +5466,10 @@ "Description": "Used as a prefix to indicate the last time a sync occured. Example \"Last sync 1968-11-16 00:00:00\"" }, "sponsorshipsSynced": { - "message": "Self-hosted sponsorships synced." + "message": "Sinkronizirana sponzorstva na vlastitom poslužitelju." }, "billingManagedByProvider": { - "message": "Managed by $PROVIDER$", + "message": "Upravlja: $PROVIDER$", "placeholders": { "provider": { "content": "$1", @@ -5478,7 +5478,7 @@ } }, "billingContactProviderForAssistance": { - "message": "Please reach out to them for further assistance", + "message": "Obrati im se za dodatnu pomoć", "description": "This text is displayed if an organization's billing is managed by a Provider. It tells the user to contact the Provider for assistance." }, "forwardedEmail": { @@ -5507,7 +5507,7 @@ "message": "Provjera uređaja ažurirana" }, "areYouSureYouWantToEnableDeviceVerificationTheVerificationCodeEmailsWillArriveAtX": { - "message": "Are you sure you want to turn on device verification? The verification code emails will arrive at: $EMAIL$", + "message": "Sigurno želiš uključiti provjeru uređaja? e-pošta s kontrolnim kôdom stići će na: $EMAIL$", "placeholders": { "email": { "content": "$1", @@ -5519,11 +5519,11 @@ "message": "Potrebna Premium pretplata" }, "scim": { - "message": "SCIM provisioning", + "message": "SCIM docijeljivanje", "description": "The text, 'SCIM', is an acronymn and should not be translated." }, "scimDescription": { - "message": "Automatically provision users and groups with your preferred identity provider via SCIM provisioning", + "message": "Automatski korisnicima i grupama dodijeli željenog pružatelja identiteta putem SCIM dodjeljivanja", "description": "the text, 'SCIM', is an acronymn and should not be translated." }, "scimEnabledCheckboxDesc": { @@ -5531,11 +5531,11 @@ "description": "the text, 'SCIM', is an acronymn and should not be translated." }, "scimEnabledCheckboxDescHelpText": { - "message": "Set up your preferred identity provider by configuring the URL and SCIM API Key", + "message": "Postavite željenog pružatelja identiteta konfiguriranjem URL-a i SCIM API ključa", "description": "the text, 'SCIM', is an acronymn and should not be translated." }, "scimApiKeyHelperText": { - "message": "This API key has access to manage users within your organization. It should be kept secret." + "message": "Ovaj API ključ ima pristup upravljanju korisnicima unutar tvoje organizacije. To treba držati u tajnosti." }, "copyScimKey": { "message": "Kopiraj SCIM API ključ u svoj međuspremnik", @@ -5557,7 +5557,7 @@ "description": "the text, 'SCIM' and 'API', are acronymns and should not be translated." }, "copyScimUrl": { - "message": "Copy the SCIM endpoint URL to your clipboard", + "message": "Kopiraj URL SCIM krajnje točke u međuspremnik", "description": "the text, 'SCIM' and 'URL', are acronymns and should not be translated." }, "scimUrl": { @@ -5597,7 +5597,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "Ovi znakovi nisu dozvoljeni: $CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -5606,10 +5606,10 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "Jedna ili više adresa e-pošte nije valjana" }, "tooManyEmails": { - "message": "You can only submit up to $COUNT$ emails at a time", + "message": "Možeš unijeti najviše $COUNT$ adresa e-pošte odjednom", "placeholders": { "count": { "content": "$1", @@ -5648,49 +5648,49 @@ "message": "Nisi ti?" }, "pickAnAvatarColor": { - "message": "Pick an avatar color" + "message": "Odaberi boju avatara" }, "customizeAvatar": { - "message": "Customize avatar" + "message": "Prilagodi avatar" }, "avatarUpdated": { - "message": "Avatar updated" + "message": "Avatar ažuriran" }, "brightBlue": { - "message": "Bright Blue" + "message": "Jarko plava" }, "green": { - "message": "Green" + "message": "Zelena" }, "orange": { - "message": "Orange" + "message": "Narančasta" }, "lavender": { - "message": "Lavender" + "message": "Lavanda" }, "yellow": { - "message": "Yellow" + "message": "Žuta" }, "indigo": { "message": "Indigo" }, "teal": { - "message": "Teal" + "message": "Tirkizno" }, "salmon": { - "message": "Salmon" + "message": "Boja lososa" }, "pink": { - "message": "Pink" + "message": "Ružičasta" }, "customColor": { - "message": "Custom Color" + "message": "Prilagođena boja" }, "selectPlaceholder": { - "message": "-- Select --" + "message": "-- Odaberi --" }, "multiSelectPlaceholder": { - "message": "Upiši za filtriranje" + "message": "-- Upiši za filtriranje --" }, "multiSelectLoading": { "message": "Dohvaćanje opcija..." @@ -5702,159 +5702,159 @@ "message": "Očisti sve" }, "toggleCharacterCount": { - "message": "Toggle character count", + "message": "Prikaži/Sakrij broj znakova", "description": "'Character count' describes a feature that displays a number next to each character of the password." }, "passwordCharacterCount": { - "message": "Password character count", + "message": "Borj znakova lozinke", "description": "'Character count' describes a feature that displays a number next to each character of the password." }, "hide": { - "message": "Hide" + "message": "Sakrij" }, "projects": { - "message": "Projects", + "message": "Projekti", "description": "Description for the Projects field." }, "lastEdited": { - "message": "Last edited", + "message": "Zadnje uređeno", "description": "The label for the date and time when a item was last edited." }, "editSecret": { - "message": "Edit secret", + "message": "Uredi tajnu", "description": "Action to modify an existing secret." }, "addSecret": { - "message": "Add secret", + "message": "Dodaj tajnu", "description": "Action to create a new secret." }, "copySecretName": { - "message": "Copy secret name", + "message": "Kopiraj naziv tajne", "description": "Action to copy the name of a secret to the system's clipboard." }, "copySecretValue": { - "message": "Copy secret value", + "message": "Kopiraj tajnu vrijednost", "description": "Action to copy the value of a secret to the system's clipboard." }, "deleteSecret": { - "message": "Delete secret", + "message": "Obriši tajnu", "description": "Action to delete a single secret from the system." }, "deleteSecrets": { - "message": "Delete secrets", + "message": "Obriši tajne", "description": "The action to delete multiple secrets from the system." }, "hardDeleteSecret": { - "message": "Permanently delete secret" + "message": "Trajno izbriši tajnu" }, "hardDeleteSecrets": { - "message": "Permanently delete secrets" + "message": "Trajno izbriši tajne" }, "secretProjectAssociationDescription": { - "message": "Select projects that the secret will be associated with. Only organization users with access to these projects will be able to see the secret.", + "message": "Odaberi projekte s kojima će tajna biti povezana. Samo će korisnici organizacije s pristupom tim projektima moći vidjeti tajnu.", "description": "A prompt explaining how secrets can be associated with projects." }, "selectProjects": { - "message": "Select projects", + "message": "Odaberi projekte", "description": "A label for a type-to-filter input field to choose projects." }, "searchProjects": { - "message": "Search projects", + "message": "Traži projekte", "description": "Label for the search bar used to search projects." }, "project": { - "message": "Project", + "message": "Projekt", "description": "Similar to collections, projects can be used to group secrets." }, "editProject": { - "message": "Edit project", + "message": "Uredi projekt", "description": "The action to modify an existing project." }, "viewProject": { - "message": "View project", + "message": "Pogledaj projekt", "description": "The action to view details of a project." }, "deleteProject": { - "message": "Delete project", + "message": "Obriši projekt", "description": "The action to delete a project from the system." }, "deleteProjects": { - "message": "Delete projects", + "message": "Obriši projekte", "description": "The action to delete multiple projects from the system." }, "secret": { - "message": "Secret", + "message": "Tajna", "description": "Label for a secret (key/value pair)" }, "serviceAccount": { - "message": "Service account", + "message": "Račun usluge", "description": "A machine user which can be used to automate processes and access secrets in the system." }, "serviceAccounts": { - "message": "Service accounts", + "message": "Računi usluge", "description": "The title for the section that deals with service accounts." }, "secrets": { - "message": "Secrets", + "message": "Tajne", "description": "The title for the section of the application that deals with secrets." }, "nameValuePair": { - "message": "Name/Value pair", + "message": "Par naziv/vrijednost", "description": "Title for a name/ value pair. Secrets typically consist of a name and value pair." }, "secretEdited": { - "message": "Secret edited", + "message": "Tajna ažurirana", "description": "Notification for the successful editing of a secret." }, "secretCreated": { - "message": "Secret created", + "message": "Tajna stvorena", "description": "Notification for the successful creation of a secret." }, "newSecret": { - "message": "New secret", + "message": "Nova tajna", "description": "Title for creating a new secret." }, "newServiceAccount": { - "message": "New service account", + "message": "Novi račun usluge", "description": "Title for creating a new service account." }, "secretsNoItemsTitle": { - "message": "No secrets to show", + "message": "Nema tajni za prikaz", "description": "Empty state to indicate that there are no secrets to display." }, "secretsNoItemsMessage": { - "message": "To get started, add a new secret or import secrets.", + "message": "Za početak dodaj novu tajnu ili uvezi tajne.", "description": "Message to encourage the user to start adding secrets." }, "secretsTrashNoItemsMessage": { - "message": "There are no secrets in the trash." + "message": "Nema tajni u smeću." }, "serviceAccountsNoItemsMessage": { - "message": "Create a new service account to get started automating secret access.", + "message": "Stvori novi račun usluge za početak automatizacije tajnog pristupa.", "description": "Message to encourage the user to start creating service accounts." }, "serviceAccountsNoItemsTitle": { - "message": "Nothing to show yet", + "message": "Ništa za prikazati", "description": "Title to indicate that there are no service accounts to display." }, "searchSecrets": { - "message": "Search secrets", + "message": "Traži tajne", "description": "Placeholder text for searching secrets." }, "deleteServiceAccounts": { - "message": "Delete service accounts", + "message": "Obriši račune usluge", "description": "Title for the action to delete one or multiple service accounts." }, "deleteServiceAccount": { - "message": "Delete service account", + "message": "Obriši račun usluge", "description": "Title for the action to delete a single service account." }, "viewServiceAccount": { - "message": "View service account", + "message": "Pogledaj račun usluge", "description": "Action to view the details of a service account." }, "deleteServiceAccountDialogMessage": { - "message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.", + "message": "Brisanje računa usluge $SERVICE_ACCOUNT$ je trajno i nepovratno.", "placeholders": { "service_account": { "content": "$1", @@ -5863,10 +5863,10 @@ } }, "deleteServiceAccountsDialogMessage": { - "message": "Deleting service accounts is permanent and irreversible." + "message": "Brisanje računa usluge je trajno i nepovratno." }, "deleteServiceAccountsConfirmMessage": { - "message": "Delete $COUNT$ service accounts", + "message": "Obriši $COUNT$ računa usluge", "placeholders": { "count": { "content": "$1", @@ -5875,98 +5875,98 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Račun usluge obrisan" }, "deleteServiceAccountsToast": { - "message": "Service accounts deleted" + "message": "Računi usluge obrisani" }, "searchServiceAccounts": { - "message": "Search service accounts", + "message": "Pretraži račune usluge", "description": "Placeholder text for searching service accounts." }, "editServiceAccount": { - "message": "Edit service account", + "message": "Uredi račun usluge", "description": "Title for editing a service account." }, "addProject": { - "message": "Add project", + "message": "Dodaj projekt", "description": "Title for creating a new project." }, "projectEdited": { - "message": "Project edited", + "message": "Projekt uređen", "description": "Notification for the successful editing of a project." }, "projectSaved": { - "message": "Project saved", + "message": "Projekt spremljen", "description": "Notification for the successful saving of a project." }, "projectCreated": { - "message": "Project created", + "message": "Projekt stvoren", "description": "Notification for the successful creation of a project." }, "projectName": { - "message": "Project name", + "message": "Naziv projekta", "description": "Label for entering the name of a project." }, "newProject": { - "message": "New project", + "message": "Novi projekt", "description": "Title for creating a new project." }, "softDeleteSecretWarning": { - "message": "Deleting secrets can affect existing integrations.", + "message": "Brisanje tajni može utjecati na postojeće integracije.", "description": "Warns that deleting secrets can have consequences on integrations" }, "softDeletesSuccessToast": { - "message": "Secrets sent to trash", + "message": "Tajne poslane u smeće", "description": "Notifies that the selected secrets have been moved to the trash" }, "hardDeleteSecretConfirmation": { - "message": "Are you sure you want to permanently delete this secret?" + "message": "Sigurno želiš trajno obrisati ovu tajnu?" }, "hardDeleteSecretsConfirmation": { - "message": "Are you sure you want to permanently delete these secrets?" + "message": "Sigurno želiš trajno obrisati ove tajne?" }, "hardDeletesSuccessToast": { - "message": "Secrets permanently deleted" + "message": "Tajne trajno izbrisane" }, "smAccess": { - "message": "Access", + "message": "Pristup", "description": "Title indicating what permissions a service account has" }, "projectCommaSecret": { - "message": "Project, Secret", + "message": "Projekt, tajna", "description": "" }, "serviceAccountName": { - "message": "Service account name", + "message": "Naziv računa usluge", "description": "Label for the name of a service account" }, "serviceAccountCreated": { - "message": "Service account created", + "message": "Stvoren račun usluge", "description": "Notifies that a new service account has been created" }, "serviceAccountUpdated": { - "message": "Service account updated", + "message": "Ažuriran račun usluge", "description": "Notifies that a service account has been updated" }, "newSaSelectAccess": { - "message": "Type or select projects or secrets", + "message": "Upiši ili odaberi projekte ili tajne", "description": "Instructions for selecting projects or secrets for a new service account" }, "newSaTypeToFilter": { - "message": "Type to filter", + "message": "Upiši za filtriranje…", "description": "Instructions for filtering a list of projects or secrets" }, "deleteProjectsToast": { - "message": "Projects deleted", + "message": "Projekti obrisani", "description": "Notifies that the selected projects have been deleted" }, "deleteProjectToast": { - "message": "Project deleted", + "message": "Projekt obrisan", "description": "Notifies that a project has been deleted" }, "deleteProjectDialogMessage": { - "message": "Deleting project $PROJECT$ is permanent and irreversible.", + "message": "Brisanje projekta $PROJECT$ trajno je i nepovratno.", "description": "Informs users that projects are hard deleted and not sent to trash", "placeholders": { "project": { @@ -5976,7 +5976,7 @@ } }, "deleteProjectInputLabel": { - "message": "Type \"$CONFIRM$\" to continue", + "message": "Upiši ”$CONFIRM$„ za nastavak", "description": "Users are prompted to type 'confirm' to delete a project", "placeholders": { "confirm": { @@ -5986,7 +5986,7 @@ } }, "deleteProjectConfirmMessage": { - "message": "Delete $PROJECT$", + "message": "Obriši $PROJECT$", "description": "Confirmation prompt to delete a specific project, where '$PROJECT$' is a placeholder for the name of the project.", "placeholders": { "project": { @@ -5996,7 +5996,7 @@ } }, "deleteProjectsConfirmMessage": { - "message": "Delete $COUNT$ Projects", + "message": "Obriši $COUNT$ projekata", "description": "Confirmation prompt to delete multiple projects, where '$COUNT$' is a placeholder for the number of projects to be deleted.", "placeholders": { "count": { @@ -6006,104 +6006,104 @@ } }, "deleteProjectsDialogMessage": { - "message": "Deleting projects is permanent and irreversible.", + "message": "Brisanje projekata trajno je i nepovratno.", "description": "This message is displayed in a dialog box as a warning before proceeding with project deletion." }, "projectsNoItemsTitle": { - "message": "No projects to display", + "message": "Nema projekata za prikaz", "description": "Empty state to be displayed when there are no projects to display in the list." }, "projectsNoItemsMessage": { - "message": "Add a new project to get started organizing secrets.", + "message": "Dodaj novi projekt za početak organiziranja tajni.", "description": "Message to be displayed when there are no projects to display in the list." }, "smConfirmationRequired": { - "message": "Confirmation required", + "message": "Potrebna je potvrda", "description": "Indicates that user confirmation is required for an action to proceed." }, "bulkDeleteProjectsErrorMessage": { - "message": "The following projects could not be deleted:", + "message": "Sljedeće projekte nije bilo moguće obrisati:", "description": "Message to be displayed when there is an error during bulk project deletion." }, "softDeleteSuccessToast": { - "message": "Secret sent to trash", + "message": "Tajna poslana u smeće", "description": "Notification to be displayed when a secret is successfully sent to the trash." }, "hardDeleteSuccessToast": { - "message": "Secret permanently deleted" + "message": "Tajna trajno izbrisana" }, "accessTokens": { - "message": "Access tokens", + "message": "Pristupni tokeni", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "Novi pristupni token", "description": "Button label for creating a new access token." }, "expires": { - "message": "Expires", + "message": "Ističe", "description": "Label for the expiration date of an access token." }, "canRead": { - "message": "Can read", + "message": "Može čitati", "description": "Label for the access level of an access token (Read only)." }, "accessTokensNoItemsTitle": { - "message": "No access tokens to show", + "message": "Nema pristupnih tokena za prikaz", "description": "Title to be displayed when there are no access tokens to display in the list." }, "accessTokensNoItemsDesc": { - "message": "To get started, create an access token", + "message": "Za početak izradi pristupni token", "description": "Message to be displayed when there are no access tokens to display in the list." }, "downloadAccessToken": { - "message": "Download or copy before closing.", + "message": "Preuzmi ili kopiraj prije zatvaranja.", "description": "Message to be displayed before closing an access token, reminding the user to download or copy it." }, "expiresOnAccessToken": { - "message": "Expires on:", + "message": "Ističe:", "description": "Label for the expiration date of an access token." }, "accessTokenCallOutTitle": { - "message": "Access tokens are not stored and cannot be retrieved", + "message": "Pristupni tokeni nisu pohranjeni i ne mogu se dohvatiti", "description": "Notification to inform the user that access tokens are only displayed once and cannot be retrieved again." }, "copyToken": { - "message": "Copy token", + "message": "Kopiraj token", "description": "Copies the generated access token to the user's clipboard." }, "accessToken": { - "message": "Access token", + "message": "Pristupni token", "description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets." }, "accessTokenExpirationRequired": { - "message": "Expiration date required", + "message": "Potreban datum isteka", "description": "Error message indicating that an expiration date for the access token must be set." }, "accessTokenCreatedAndCopied": { - "message": "Access token created and copied to clipboard", + "message": "Pristupni token je stvoren i kopiran u međuspremnik", "description": "Notification to inform the user that the access token has been created and copied to the clipboard." }, "accessTokenPermissionsBetaNotification": { - "message": "Permissions management is unavailable for beta.", + "message": "Upravljanje dozvolama nije dostupno za beta verziju.", "description": "Notification to inform the user that the feature for managing access token permissions is not available in the beta version." }, "revokeAccessToken": { - "message": "Revoke access token", + "message": "Opozovi pristupni token", "description": "Invalidates / cancels an access token and as such removes access to secrets for the client application." }, "revokeAccessTokens": { - "message": "Revoke access tokens" + "message": "Opozovi pristupne tokene" }, "revokeAccessTokenDesc": { - "message": "Revoking access tokens is permanent and irreversible." + "message": "Opoziv prtistupnih tokena je trajno i nepovratno." }, "accessTokenRevoked": { - "message": "Access tokens revoked", + "message": "Pristupni tokeni opozvani", "description": "Toast message after deleting one or multiple access tokens." }, "submenu": { - "message": "Submenu" + "message": "Podizbornik" }, "from": { "message": "Od" @@ -6118,7 +6118,7 @@ "message": "Ažuriraj" }, "plusNMore": { - "message": "+ $QUANTITY$ more", + "message": "+ još $QUANTITY$", "placeholders": { "quantity": { "content": "$1", @@ -6127,37 +6127,37 @@ } }, "groupInfo": { - "message": "Group info" + "message": "Informacije o grupi" }, "editGroupMembersDesc": { - "message": "Grant members access to the group's assigned collections." + "message": "Omogući članovima pristup dodijeljenim zbirkama grupe." }, "editGroupCollectionsDesc": { - "message": "Grant access to collections by adding them to this group." + "message": "Odobri pristup zbirkama dodavanjem u ovu grupu." }, "accessAllCollectionsDesc": { - "message": "Grant access to all current and future collections." + "message": "Odobri pristup svim postojećim i budućim zbirkama." }, "accessAllCollectionsHelp": { - "message": "If checked, this will replace all other collection permissions." + "message": "Ako je uključeno, ovo će zamijeniti sve druge dozvole za prikupljanje." }, "selectMembers": { - "message": "Select members" + "message": "Odaberi članove" }, "selectCollections": { - "message": "Select collections" + "message": "Odaberi zbirke" }, "role": { "message": "Uloga" }, "removeMember": { - "message": "Remove member" + "message": "Ukloni člana" }, "collection": { - "message": "Collection" + "message": "Zbirka" }, "noCollection": { - "message": "No collection" + "message": "Nema zbirke" }, "canView": { "message": "Može vidjeti" @@ -6172,13 +6172,13 @@ "message": "Može urediti, osim lozinke" }, "noCollectionsAdded": { - "message": "No collections added" + "message": "Niti jedna zbirka nije dodana" }, "noMembersAdded": { - "message": "No members added" + "message": "Niti jedan član nije dodan" }, "noGroupsAdded": { - "message": "No groups added" + "message": "Niti jedna grupa nije dodana" }, "group": { "message": "Grupa" @@ -6190,64 +6190,64 @@ "message": "Ovaj korisnik može pristupiti i urediti sve stavke." }, "domainVerification": { - "message": "Domain verification" + "message": "Potvrda domene" }, "newDomain": { - "message": "New domain" + "message": "Nova domena" }, "noDomains": { - "message": "No domains" + "message": "Nema domena" }, "noDomainsSubText": { - "message": "Connecting a domain allows members to skip the SSO identifier field during Login with SSO." + "message": "Povezivanje domene omogućuje članovima da preskoče polje SSO identifikatora tijekom prijave pomoću SSO-a." }, "verifyDomain": { - "message": "Verify domain" + "message": "Potvrdi domenu" }, "reverifyDomain": { - "message": "Reverify domain" + "message": "Ponovno potvrdi domenu" }, "copyDnsTxtRecord": { - "message": "Copy DNS TXT record" + "message": "Kopiraj DNS TXT record" }, "dnsTxtRecord": { - "message": "DNS TXT record" + "message": "DNS TXT zapis" }, "dnsTxtRecordInputHint": { - "message": "Copy and paste the TXT record into your DNS Provider." + "message": "Kopiraj i zalijepi TXT zapis kod svog DNS pružatelja usluga." }, "domainNameInputHint": { - "message": "Example: mydomain.com. Subdomains require separate entries to be verified." + "message": "Primjer: mojadomena.hr Poddomene zahtijevaju zasebne unose za provjeru." }, "automaticDomainVerification": { - "message": "Automatic Domain Verification" + "message": "Automatska potvrda domene" }, "automaticDomainVerificationProcess": { - "message": "Bitwarden will attempt to verify the domain 3 times during the first 72 hours. If the domain can’t be verified, check the DNS record in your host and manually verify. The domain will be removed from your organization in 7 days if it is not verified" + "message": "Bitwarden će pokušati potvrditi domenu 3 puta tijekom prva 72 sata. Ako se domena ne može potvrditi, provjeri DNS zapis na svom poslužitelju i ručno potvrdi. Domena će, ako se ne potvrdi, biti uklonjena iz vaše organizacije nakon 7 dana" }, "invalidDomainNameMessage": { - "message": "Input is not a valid format. Format: mydomain.com. Subdomains require separate entries to be verified." + "message": "Unos nije važeći. Format: mojadomena.hr Poddomene zahtijevaju zasebne unose za provjeru." }, "removeDomain": { - "message": "Remove domain" + "message": "Ukloni domenu" }, "removeDomainWarning": { - "message": "Removing a domain cannot be undone. Are you sure you want to continue?" + "message": "Uklanjanje domene ne može se poništiti. Sigurno želiš nastaviti?" }, "domainRemoved": { - "message": "Domain removed" + "message": "Domena uklonjena" }, "domainSaved": { - "message": "Domain saved" + "message": "Domena spremljena" }, "domainVerified": { - "message": "Domain verified" + "message": "Domena potvrđena" }, "duplicateDomainError": { - "message": "You can't claim the same domain twice." + "message": "Ne možeš dvaput zatražiti istu domenu." }, "domainNotAvailable": { - "message": "Someone else is using $DOMAIN$. Use a different domain to continue.", + "message": "Netko drugi koristi $DOMAIN$. Koristi drugu domenu za nastavak.", "placeholders": { "DOMAIN": { "content": "$1", @@ -6256,7 +6256,7 @@ } }, "domainNotVerified": { - "message": "$DOMAIN$ not verified. Check your DNS record.", + "message": "$DOMAIN$ nije potvrđena. Provjeri svoj DNS zapis.", "placeholders": { "DOMAIN": { "content": "$1", @@ -6265,28 +6265,28 @@ } }, "domainStatusVerified": { - "message": "Verified" + "message": "Potvrđena" }, "domainStatusUnverified": { - "message": "Unverified" + "message": "Nije potvrđena" }, "domainNameTh": { - "message": "Name" + "message": "Naziv" }, "domainStatusTh": { "message": "Status" }, "lastChecked": { - "message": "Last checked" + "message": "Zadnje provjereno" }, "editDomain": { - "message": "Edit domain" + "message": "Uredi domenu" }, "domainFormInvalid": { - "message": "There are form errors that need your attention" + "message": "Postoje greške koje zahtijevaju tvoju pažnju" }, "addedDomain": { - "message": "Added domain $DOMAIN$", + "message": "$DOMAIN$ domena dodana", "placeholders": { "DOMAIN": { "content": "$1", @@ -6295,7 +6295,7 @@ } }, "removedDomain": { - "message": "Removed domain $DOMAIN$", + "message": "$DOMAIN$ domena uklonjena", "placeholders": { "DOMAIN": { "content": "$1", @@ -6304,7 +6304,7 @@ } }, "domainVerifiedEvent": { - "message": "$DOMAIN$ verified", + "message": "$DOMAIN$ potvrđena", "placeholders": { "DOMAIN": { "content": "$1", @@ -6313,7 +6313,7 @@ } }, "domainNotVerifiedEvent": { - "message": "$DOMAIN$ not verified", + "message": "$DOMAIN$ nije potvrđena", "placeholders": { "DOMAIN": { "content": "$1", @@ -6322,46 +6322,46 @@ } }, "membersColumnHeader": { - "message": "Member/Group" + "message": "Član/grupa" }, "groupAndMemberColumnHeader": { - "message": "Member" + "message": "Član" }, "selectGroupsAndMembers": { - "message": "Select groups and members" + "message": "Odaberi grupe i članove" }, "selectGroups": { - "message": "Select groups" + "message": "Odaberi grupe" }, "userPermissionOverrideHelper": { - "message": "Permissions set for a member will replace permissions set by that member's group" + "message": "Dopuštenja postavljena za člana zamijenit će dopuštenja postavljena od strane grupe tog člana" }, "noMembersOrGroupsAdded": { - "message": "No members or groups added" + "message": "Nema dodanih članova ili grupa" }, "deleted": { - "message": "Deleted" + "message": "Obrisano" }, "memberStatusFilter": { - "message": "Member status filter" + "message": "Filter članskog statusa" }, "inviteMember": { - "message": "Invite member" + "message": "Pozovi člana" }, "needsConfirmation": { - "message": "Needs confirmation" + "message": "Treba potvrdu" }, "memberRole": { - "message": "Member role" + "message": "Uloga člana" }, "moreFromBitwarden": { - "message": "More from Bitwarden" + "message": "Više od Bitwardena" }, "switchProducts": { - "message": "Switch products" + "message": "Zamijeni proizvode" }, "freeOrgInvLimitReachedManageBilling": { - "message": "Free organizations may have up to $SEATCOUNT$ members. Upgrade to a paid plan to invite more members.", + "message": "Besplatne organizacije mogu imati do $SEATCOUNT$ članova. Nadogradi na plaćeni plan za pozivanje više članova.", "placeholders": { "seatcount": { "content": "$1", @@ -6370,7 +6370,7 @@ } }, "freeOrgInvLimitReachedNoManageBilling": { - "message": "Free organizations may have up to $SEATCOUNT$ members. Contact your organization owner to upgrade.", + "message": "Besplatne organizacije mogu imati do $SEATCOUNT$ članova. Obrati se vlasniku svoje organizacije za nadogradnju.", "placeholders": { "seatcount": { "content": "$1", @@ -6379,7 +6379,7 @@ } }, "freeOrgMaxCollectionReachedManageBilling": { - "message": "Free organizations may have up to $COLLECTIONCOUNT$ collections. Upgrade to a paid plan to add more collections.", + "message": "Besplatne organizacije mogu imati do $COLLECTIONCOUNT$ zbirki. Nadogradi na plaćeni plan za dodavanje više zbirki.", "placeholders": { "COLLECTIONCOUNT": { "content": "$1", @@ -6388,7 +6388,7 @@ } }, "freeOrgMaxCollectionReachedNoManageBilling": { - "message": "Free organizations may have up to $COLLECTIONCOUNT$ collections. Contact your organization owner to upgrade.", + "message": "Besplatne organizacije mogu imati do $COLLECTIONCOUNT$ zbirki. Za nadogradnju se obrati vlasniku svoje organizacije.", "placeholders": { "COLLECTIONCOUNT": { "content": "$1", @@ -6397,16 +6397,16 @@ } }, "server": { - "message": "Server" + "message": "Poslužitelj" }, "exportData": { - "message": "Export data" + "message": "Izvezi podatke" }, "exportingOrganizationSecretDataTitle": { - "message": "Exporting Organization Secret Data" + "message": "Izvoz tajnih podataka organizacije" }, "exportingOrganizationSecretDataDescription": { - "message": "Only the Secrets Manager data associated with $ORGANIZATION$ will be exported. Items in other products or from other organizations will not be included.", + "message": "Bit će izvezeni samo podaci upravitelja tajnama povezani s $ORGANIZATION$. Stavke u drugim proizvodima ili iz drugih organizacija neće biti uključene.", "placeholders": { "ORGANIZATION": { "content": "$1", @@ -6415,109 +6415,109 @@ } }, "fileUpload": { - "message": "File upload" + "message": "Prenesi datoteku" }, "acceptedFormats": { - "message": "Accepted Formats:" + "message": "Prihvaćeni formati:" }, "copyPasteImportContents": { - "message": "Copy & paste import contents:" + "message": "Kopiraj i zalijepi sadržaj uvoza:" }, "or": { - "message": "or" + "message": "ili" }, "licenseAndBillingManagement": { - "message": "License and billing management" + "message": "Upravljanje licencama i naplatom" }, "automaticSync": { - "message": "Automatic sync" + "message": "Automatska sinkronizacija" }, "manualUpload": { - "message": "Manual upload" + "message": "Ručni prijenos" }, "manualUploadDesc": { - "message": "If you do not want to opt into billing sync, manually upload your license here." + "message": "Ako ne želiš uključiti sinkronizaciju naplate, ovdje ručno prenesi svoju licencu." }, "syncLicense": { - "message": "Sync license" + "message": "Sinkroniziraj licencu" }, "licenseSyncSuccess": { - "message": "Successfully synced license" + "message": "Licenca sinkronizirana" }, "licenseUploadSuccess": { - "message": "Successfully uploaded license" + "message": "Licenca uspješno prenesena" }, "lastLicenseSync": { - "message": "Last license sync" + "message": "Posljednja sinkronizracija licence" }, "billingSyncHelp": { - "message": "Billing Sync help" + "message": "Pomoć za sinkronizaciju naplate" }, "uploadLicense": { - "message": "Upload license" + "message": "Prenesi licencu" }, "projectPeopleDescription": { - "message": "Grant groups or people access to this project." + "message": "Odobri grupama ili osobama pristup ovom projektu." }, "projectPeopleSelectHint": { - "message": "Type or select people or groups" + "message": "Unesi ili odabri osobe ili grupe" }, "projectServiceAccountsDescription": { - "message": "Grant service accounts access to this project." + "message": "Odobri računima usluga pristup ovom projektu." }, "projectServiceAccountsSelectHint": { - "message": "Type or select service accounts" + "message": "Unesi ili odaberi račune usluge" }, "projectEmptyPeopleAccessPolicies": { - "message": "Add people or groups to start collaborating" + "message": "Dodaj osobe ili grupe za početak suradnje" }, "projectEmptyServiceAccountAccessPolicies": { - "message": "Add service accounts to grant access" + "message": "Dodaj račune usluga za odobrenje pristupa" }, "serviceAccountPeopleDescription": { - "message": "Grant groups or people access to this service account." + "message": "Odobri grupama ili osobama pristup ovom računu usluge." }, "serviceAccountProjectsDescription": { - "message": "Assign projects to this service account. " + "message": "Dodijelite projekte ovom računu usluge. " }, "serviceAccountEmptyProjectAccesspolicies": { - "message": "Add projects to grant access" + "message": "Dodaj projekte za odobravanje pristupa" }, "canReadWrite": { - "message": "Can read, write" + "message": "Može čitati, pisati" }, "groupSlashUser": { - "message": "Group/User" + "message": "Grupa/korisnik" }, "lowKdfIterations": { - "message": "Low KDF Iterations" + "message": "Niske KDF iteracije" }, "lowKdfIterationsDesc": { - "message": "Increase your KDF encryption settings to improve the security of your account." + "message": "Povećaj KDF iteracije za bolju sigurnost tvog računa." }, "changeKdfSettings": { - "message": "Change KDF settings" + "message": "Promijeni KDF postavke" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Nastavkom ćeš se odjaviti iz svih aktivnih sesija. Morat ćeš se ponovno prijaviti i dovršiti postavljanje prijave dvostrukom autentifikacijom. Preporučujemo izvoz trezora prije promjene postavki enkripcije kako bi se spriječio gubitak podataka." }, "secretsManagerBeta": { - "message": "Secrets Manager Beta" + "message": "Beta Upravitelj tajni" }, "secretsManagerBetaDesc": { - "message": "Enable user access to the Secrets Manager at no charge during the Beta program." + "message": "Omogući korisnički pristup Upravitelju tajni bez naknade tijekom trajanja beta perioda." }, "userAccessSecretsManager": { - "message": "This user can access the Secrets Manager Beta" + "message": "Ovaj korisnik može pristupiti beti Upravitelja tajni" }, "important": { - "message": "Important:" + "message": "Važno:" }, "viewAll": { - "message": "View all" + "message": "Vidi sve" }, "showingPortionOfTotal": { - "message": "Showing $PORTION$ of $TOTAL$", + "message": "Prikazuje se $PORTION$ od $TOTAL$", "placeholders": { "portion": { "content": "$1", @@ -6530,16 +6530,16 @@ } }, "resolveTheErrorsBelowAndTryAgain": { - "message": "Resolve the errors below and try again." + "message": "Popravi navedene greške i pokušaj ponovo." }, "description": { - "message": "Description" + "message": "Opis" }, "errorReadingImportFile": { - "message": "An error occurred when trying to read the import file" + "message": "Pojavila se greška prilikom pokušaja čitanja uvozne datoteke" }, "accessedSecret": { - "message": "Accessed secret $SECRET_ID$.", + "message": "Pristupljeno tajni $SECRET_ID$.", "placeholders": { "secret_id": { "content": "$1", @@ -6552,29 +6552,29 @@ "description": "Software Development Kit" }, "createSecret": { - "message": "Create a secret" + "message": "Stvori tajnu" }, "createProject": { - "message": "Create a project" + "message": "Stvori projekt" }, "createServiceAccount": { - "message": "Create a service account" + "message": "Stvori servisni račun" }, "downloadThe": { - "message": "Download the", + "message": "Preuzmi", "description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI" }, "smCLI": { - "message": "Secrets Manager CLI" + "message": "Naredbeni redak Upravitelja tajni" }, "importSecrets": { - "message": "Import secrets" + "message": "Uvezi tajne" }, "getStarted": { - "message": "Get started" + "message": "Počni" }, "complete": { - "message": "$COMPLETED$/$TOTAL$ Complete", + "message": "$COMPLETED$/$TOTAL$ dovršeno", "placeholders": { "COMPLETED": { "content": "$1", @@ -6587,70 +6587,70 @@ } }, "restoreSecret": { - "message": "Restore secret" + "message": "Vrati tajnu" }, "restoreSecrets": { - "message": "Restore secrets" + "message": "Vrati tajne" }, "restoreSecretPrompt": { - "message": "Are you sure you want to restore this secret?" + "message": "Sigurno želiš vratiti ovu tajnu?" }, "restoreSecretsPrompt": { - "message": "Are you sure you want to restore these secrets?" + "message": "Sigurno želiš vratiti ove tajne?" }, "secretRestoredSuccessToast": { - "message": "Secret restored" + "message": "Tajna vraćena" }, "secretsRestoredSuccessToast": { - "message": "Secrets restored" + "message": "Tajne vraćene" }, "selectionIsRequired": { - "message": "Selection is required." + "message": "Potreban je odabir." }, "secretsManagerSubscriptionDesc": { - "message": "Turn on organization access to the Secrets Manager at no charge during the Beta program. Users can be granted access to the Beta in Members." + "message": "Uključi pristup organizacije Urpavitelju tajni bez naknade tijekom trajanja beta perioda. Korisnicima se može odobriti pristup beti u Članovima." }, "secretsManagerEnable": { - "message": "Enable Secrets Manager Beta" + "message": "Uključi Upravitelj tajni beta" }, "saPeopleWarningTitle": { - "message": "Access tokens still available" + "message": "Pristupni tokeni su još uvijek dostupni" }, "saPeopleWarningMessage": { - "message": "Removing people from a service account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a service account." + "message": "Uklanjanje osoba iz računa usluge ne uklanja pristupne tokene koje su stvorili. Najbolja sigurnosna praksa preporučuje opozvati pristupne tokene koje su izradile osobe uklonjene iz računa usluge." }, "smAccessRemovalWarningProjectTitle": { - "message": "Remove access to this project" + "message": "Ukloni pristup ovom projektu" }, "smAccessRemovalWarningProjectMessage": { - "message": "This action will remove your access to the project." + "message": "Ovo će ti ukloniti pristup projektu." }, "smAccessRemovalWarningSaTitle": { - "message": "Remove access to this service account" + "message": "Ukloni pristup ovom računu usluge" }, "smAccessRemovalWarningSaMessage": { - "message": "This action will remove your access to the service account." + "message": "Ovo će ti ukloniti pristup računu usluge." }, "removeAccess": { - "message": "Remove access" + "message": "Ukloni pristup" }, "checkForBreaches": { - "message": "Check known data breaches for this password" + "message": "Provjeri je li ova lozinka ukradena prilikom krađe podataka" }, "exposedMasterPassword": { - "message": "Exposed Master Password" + "message": "Ukradena glavna lozinka" }, "exposedMasterPasswordDesc": { - "message": "Password found in a data breach. Use a unique password to protect your account. Are you sure you want to use an exposed password?" + "message": "Lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jedinstvenu lozinku. Želiš li svejedno korisiti ukradenu lozinku?" }, "weakAndExposedMasterPassword": { - "message": "Weak and Exposed Master Password" + "message": "Slaba i ukradena glavna lozinka" }, "weakAndBreachedMasterPasswordDesc": { - "message": "Weak password identified and found in a data breach. Use a strong and unique password to protect your account. Are you sure you want to use this password?" + "message": "Slaba lozinka je nađena među ukradenima tijekom krađa podataka. Za zaštitu svog računa koristi jaku i jedinstvenu lozinku. Želiš li svejedno korisiti ovu lozinku?" }, "characterMinimum": { - "message": "$LENGTH$ character minimum", + "message": "najmanje $LENGTH$ znakova", "placeholders": { "length": { "content": "$1", @@ -6659,7 +6659,7 @@ } }, "masterPasswordMinimumlength": { - "message": "Master password must be at least $LENGTH$ characters long.", + "message": "Glavna lozinka mora imati najmanje $LENGTH$ znakova.", "placeholders": { "length": { "content": "$1", @@ -6668,6 +6668,6 @@ } }, "dismiss": { - "message": "Dismiss" + "message": "Odbaci" } } diff --git a/apps/web/src/locales/hu/messages.json b/apps/web/src/locales/hu/messages.json index 257a33e23ea4..400aa669010c 100644 --- a/apps/web/src/locales/hu/messages.json +++ b/apps/web/src/locales/hu/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "A szolgáltatásfiók törlésre került." + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "A szolgáltatás fiókok törlésre kerültek." @@ -6036,8 +6036,8 @@ "message": "Vezérjelek elérése", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Elérési vezérjel létrehozása", + "newAccessToken": { + "message": "Új hozzáférési vezérjel", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/id/messages.json b/apps/web/src/locales/id/messages.json index 6f82c073e17a..1df96e6e69bc 100644 --- a/apps/web/src/locales/id/messages.json +++ b/apps/web/src/locales/id/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/it/messages.json b/apps/web/src/locales/it/messages.json index 221b778b0296..d08c381788c6 100644 --- a/apps/web/src/locales/it/messages.json +++ b/apps/web/src/locales/it/messages.json @@ -465,7 +465,7 @@ "message": "La mia cassaforte" }, "allVaults": { - "message": "Tutte le Casseforti" + "message": "Tutte le casseforti" }, "vault": { "message": "Cassaforte" @@ -477,7 +477,7 @@ "message": "Elementi della cassaforte" }, "filter": { - "message": "Filtro" + "message": "Filtra" }, "moveSelectedToOrg": { "message": "Sposta selezionati in organizzazione" @@ -507,7 +507,7 @@ "message": "Sei sicuro di voler eliminare questo allegato?" }, "attachmentSaved": { - "message": "L'allegato è stato salvato." + "message": "Allegato salvato" }, "file": { "message": "File" @@ -525,7 +525,7 @@ "message": "Elemento aggiunto" }, "editedItem": { - "message": "Elemento modificato" + "message": "Elemento salvato" }, "movedItemToOrg": { "message": "$ITEMNAME$ spostato in $ORGNAME$", @@ -574,7 +574,7 @@ "message": "Sei sicuro di voler sovrascrivere la password corrente?" }, "editedFolder": { - "message": "Cartella modificata" + "message": "Cartella salvata" }, "addedFolder": { "message": "Cartella aggiunta" @@ -601,7 +601,7 @@ "message": "Sei sicuro di volerti disconnettere?" }, "logOut": { - "message": "Disconnetti" + "message": "Esci" }, "ok": { "message": "Ok" @@ -619,10 +619,10 @@ "message": "Accedi con il dispositivo" }, "loginWithDeviceEnabledInfo": { - "message": "Il login con il dispositivo deve essere abilitato nelle impostazioni dell'app mobile Bitwarden. Hai bisogno di un'altra opzione?" + "message": "Il login con dispositivo deve essere abilitato nelle impostazioni dell'app mobile di Bitwarden. Hai bisogno di un'altra opzione?" }, "loginWithMasterPassword": { - "message": "Accedi con la password principale" + "message": "Accedi con password principale" }, "createAccount": { "message": "Crea account" @@ -631,7 +631,7 @@ "message": "Nuovo da queste parti?" }, "startTrial": { - "message": "Inizia il periodo di prova" + "message": "Inizia periodo di prova" }, "logIn": { "message": "Accedi" @@ -658,7 +658,7 @@ "message": "La password principale è la password che utilizzi per accedere alla tua cassaforte. È molto importante che tu non la dimentichi. Non c'è modo di recuperare questa password nel caso che tu la dimenticassi." }, "masterPassImportant": { - "message": "Le password principali non possono essere recuperate se dimenticate!" + "message": "La tua password principale non può essere recuperata se la dimentichi!" }, "masterPassHintDesc": { "message": "Un suggerimento che può aiutarti a ricordare la tua password principale se la dimentichi." @@ -691,10 +691,10 @@ "message": "L'indirizzo email non è valido." }, "masterPasswordRequired": { - "message": "È necessario inserire la password principale." + "message": "La password principale è obbligatoria." }, "confirmMasterPasswordRequired": { - "message": "È necessario reinserire la password principale." + "message": "Reinserire la password principale è obbligatorio." }, "masterPasswordMinlength": { "message": "La password principale deve essere lunga almeno $VALUE$ caratteri.", @@ -750,7 +750,7 @@ "message": "Password errata, usa la password che hai inserito alla creazione del file di esportazione." }, "lockNow": { - "message": "Blocca" + "message": "Blocca ora" }, "noItemsInList": { "message": "Non ci sono elementi da mostrare." @@ -1199,7 +1199,7 @@ "message": "Inoltre, procedere ti disconnetterà dalla sessione corrente, richiedendoti di accedere di nuovo. Se abilitata, ti sarà richiesta nuovamente la verifica in due passaggi. Le sessioni attive su altri dispositivi potrebbero continuare a rimanere attive per un massimo di un'ora." }, "sessionsDeauthorized": { - "message": "Tutte le sessioni sono state annullate" + "message": "Ogni sessione revocata" }, "purgeVault": { "message": "Svuota cassaforte" @@ -1220,13 +1220,13 @@ "message": "Lo svuotamento della cassaforte è permanente. Questa azione non è reversibile." }, "vaultPurged": { - "message": "La tua cassaforte è stata svuotata." + "message": "Cassaforte svuotata." }, "deleteAccount": { "message": "Elimina account" }, "deleteAccountDesc": { - "message": "Procedi qui sotto per eliminare il tuo account e tutti i dati ad esso associati." + "message": "Procedi sotto per eliminare il tuo account e tutti i dati della tua cassaforte." }, "deleteAccountWarning": { "message": "L'eliminazione dell'account è permanente. Questa azione non è reversibile." @@ -1253,7 +1253,7 @@ "message": "Si è verificato un problema con i dati che hai provato a importare. Risolvi gli errori elencati di seguito nel file importato e riprova." }, "importSuccess": { - "message": "I dati sono stati importati correttamente nella tua cassaforte." + "message": "Dati importati con successo" }, "dataExportSuccess": { "message": "Dati esportati con successo" @@ -1283,7 +1283,7 @@ "message": "Seleziona il file da importare" }, "chooseFile": { - "message": "Seleziona File" + "message": "Seleziona file" }, "noFileChosen": { "message": "Nessun file selezionato" @@ -1311,7 +1311,7 @@ "message": "Personalizza l'esperienza della tua cassaforte web." }, "preferencesUpdated": { - "message": "Preferenze aggiornate" + "message": "Preferenze salvate" }, "language": { "message": "Lingua" @@ -1320,10 +1320,10 @@ "message": "Cambia la lingua utilizzata dalla cassaforte web." }, "enableFavicon": { - "message": "Mostra icone del sito" + "message": "Mostra icone dei siti" }, "faviconDesc": { - "message": "Mostra un'immagine riconoscibile accanto a ogni login." + "message": "Mostra un piccolo logo riconoscibile accanto a ogni login." }, "enableFullWidth": { "message": "Disposizione a larghezza piena", @@ -1372,7 +1372,7 @@ } }, "domainsUpdated": { - "message": "Domini aggiornati" + "message": "Domini salvati" }, "twoStepLogin": { "message": "Verifica in due passaggi" @@ -1384,20 +1384,20 @@ "message": "Proteggi il tuo account richiedendo un passaggio aggiuntivo all'accesso." }, "twoStepLoginOrganizationDescStart": { - "message": "Forza le opzioni di accesso in due passaggi di Bitwarden per i membri utilizzando il ", + "message": "Forza le opzioni di verifica in due passaggi di Bitwarden per i membri usando il ", "description": "This will be used as part of a larger sentence, broken up to include links. The full sentence will read 'Enforce Bitwarden Two-step Login options for members by using the Two-step Login Policy.'" }, "twoStepLoginPolicy": { - "message": "Politica di accesso in due passaggi" + "message": "Politica di verifica in due passaggi" }, "twoStepLoginOrganizationDuoDesc": { - "message": "Per applicare l'accesso in due passaggi tramite Duo, utilizzare le opzioni qui sotto." + "message": "Per forzare la verifica in due passaggi tramite Duo, usa le opzioni qui sotto." }, "twoStepLoginOrganizationSsoDesc": { "message": "Se hai configurato SSO o prevedi di farlo, la verifica in due passaggi potrebbe già essere forzato dal tuo Identity Provider." }, "twoStepLoginRecoveryWarning": { - "message": "Con la verifica in due passaggi potresti bloccare permanentemente il tuo account di Bitwarden. Un codice di recupero ti permette di accedere al tuo account nel caso in cui non fossi più in grado di utilizzare il tuo solito metodo di verifica (ad esempio se perdi il tuo telefono). L'assistenza di Bitwarden non sarà in grado di aiutarti qualora dovessi perdere l'accesso al tuo account. Ti consigliamo di scrivere o stampare il tuo codice di recupero e di conservarlo in un luogo sicuro." + "message": "Impostare la verifica in due passaggi potrebbe bloccarti permanentemente fuori dal tuo account Bitwarden. Un codice di recupero ti permette di accedere al tuo account nel caso non fossi più in grado di utilizzare il tuo solito metodo di verifica in due passaggi (per esempio se perdi il telefono). L'assistenza di Bitwarden non sarà in grado di aiutarti se perdi l'accesso al tuo account. Scrivi o stampa il tuo codice di recupero e conservalo in un luogo sicuro." }, "viewRecoveryCode": { "message": "Visualizza codice di recupero" @@ -1407,13 +1407,13 @@ "description": "Two-step login providers such as YubiKey, Duo, Authenticator apps, Email, etc." }, "enable": { - "message": "Abilita" + "message": "Attiva" }, "enabled": { - "message": "Abilitato" + "message": "Attivato" }, "restoreAccess": { - "message": "Ripristina l'accesso" + "message": "Ripristina accesso" }, "premium": { "message": "Premium", @@ -1423,25 +1423,25 @@ "message": "Abbonamento Premium" }, "premiumRequired": { - "message": "Abbonamento Premium richiesto" + "message": "Premium necessario" }, "premiumRequiredDesc": { "message": "Un abbonamento Premium è richiesto per utilizzare questa funzionalità." }, "youHavePremiumAccess": { - "message": "Hai accesso premium" + "message": "Hai accesso Premium" }, "alreadyPremiumFromOrg": { - "message": "Hai già accesso alle funzioni premium a causa di un'organizzazione di cui sei membro." + "message": "Hai già accesso alle funzionalità Premium grazie a un'organizzazione di cui sei membro." }, "manage": { "message": "Gestisci" }, "disable": { - "message": "Disabilita" + "message": "Disattiva" }, "revokeAccess": { - "message": "Revoca l'accesso" + "message": "Revoca accesso" }, "twoStepLoginProviderEnabled": { "message": "Questo metodo di verifica in due passaggi è abilitato sul tuo account." @@ -1483,10 +1483,10 @@ "message": "Nel caso in cui fosse necessario aggiungerlo ad un altro dispositivo, di seguito è riportato il QR code (o la chiave) richiesta dalla tua applicazione di autenticazione." }, "twoStepDisableDesc": { - "message": "Sei sicuro di voler disabilitare questo metodo di verifica in due passaggi?" + "message": "Sei sicuro di voler rimuovere questo metodo di verifica in due passaggi?" }, "twoStepDisabled": { - "message": "Metodo di verifica in due passaggi disabilitato." + "message": "Metodo di verifica in due passaggi rimosso." }, "twoFactorYubikeyAdd": { "message": "Aggiungi una nuova YubiKey al tuo account" @@ -1504,7 +1504,7 @@ "message": "Salva il modulo." }, "twoFactorYubikeyWarning": { - "message": "A causa di limitazioni della piattaforma, YubiKey non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove YubiKeys non può essere usato. Piattaforme supportate:" + "message": "A causa di limitazioni della piattaforma, YubiKey non può essere usato su tutte le app di Bitwarden. Abilita un altro metodo di verifica in due passaggi per poter accedere al tuo account anche quando YubiKey non può essere usato. Piattaforme supportate:" }, "twoFactorYubikeySupportUsb": { "message": "La cassaforte web, l'applicazione desktop, la CLI e tutte le estensioni per browser su un dispositivo con una porta USB in grado di accettare la tua YubiKey." @@ -1552,7 +1552,7 @@ "message": "Yubikey aggiornate" }, "disableAllKeys": { - "message": "Disabilita tutte le chiavi" + "message": "Disattiva tutti le chiavi" }, "twoFactorDuoDesc": { "message": "Inserisci le informazioni della applicazione Bitwarden dal tuo pannello amministratore Duo." @@ -1588,7 +1588,7 @@ "message": "Aggiungi una chiave di sicurezza WebAuthn al tuo account" }, "readKey": { - "message": "Leggi la chiave" + "message": "Leggi chiave" }, "keyCompromised": { "message": "La chiave è compromessa." @@ -1606,10 +1606,10 @@ "message": "Salva il modulo." }, "twoFactorU2fWarning": { - "message": "A causa di limitazioni della piattaforma, FIDO U2F non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove FIDO U2F non può essere usato. Piattaforme supportate:" + "message": "A causa di limitazioni della piattaforma, FIDO U2F non può essere usato su tutte le app di Bitwarden. Abilita un altro metodo di verifica in due passaggi per poter accedere al tuo account anche quando FIDO U2F non può essere usato. Piattaforme supportate:" }, "twoFactorU2fSupportWeb": { - "message": "Cassaforte web ed estensione per il browser desktop/laptop con un U2F browser abilitato (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." + "message": "Cassaforte web ed estensione per il browser desktop/laptop con un U2F browser abilitato U2F (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." }, "twoFactorU2fWaiting": { "message": "In attesa che venga premuto il pulsante della tua chiave di sicurezza" @@ -1621,7 +1621,7 @@ "message": "Si è verificato un problema durante la lettura della chiave di sicurezza. Riprova." }, "twoFactorWebAuthnWarning": { - "message": "A causa di limitazioni della piattaforma, WebAuthn non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi in modo da poter accedere al tuo account anche dove WebAuthn non può essere usato. Piattaforme supportate:" + "message": "A causa di limitazioni della piattaforma, WebAuthn non può essere utilizzato su tutte le applicazioni Bitwarden. Dovresti abilitare un altro metodo di verifica in due passaggi per accedere al tuo account anche quando WebAuthn non può essere usato. Piattaforme supportate:" }, "twoFactorWebAuthnSupportWeb": { "message": "Cassaforte Web ed estensione per il browser desktop/portatile con un browser abilitato per WebAuthn (Chrome, Opera, Vivaldi o Firefox con FIDO U2F abilitato)." @@ -1630,17 +1630,17 @@ "message": "Il tuo codice di recupero Bitwarden per la verifica in due passaggi" }, "twoFactorRecoveryNoCode": { - "message": "Non hai ancora abilitato alcun metodo per la verifica in due passaggi. Dopo aver abilitato un metodo per la verifica in due passaggi torna qui per trovare il tuoi codice di recupero." + "message": "Non hai abilitato nessun metodo per la verifica in due passaggi. Dopo averne abilitato uno, puoi tornare qui per ottenere il tuoi codice di recupero." }, "printCode": { - "message": "Stampa il codice", + "message": "Stampa codice", "description": "Print 2FA recovery code" }, "reports": { "message": "Resoconti" }, "reportsDesc": { - "message": "Identifica e chiudi i problemi di sicurezza dei tuoi account online cliccando sui report in basso.", + "message": "Identifica e correggi problemi di sicurezza nei tuoi account online cliccando sulle segnalazioni qui sotto.", "description": "Vault health reports can be used to evaluate the security of your Bitwarden individual or organization vault." }, "orgsReportsDesc": { @@ -1648,10 +1648,10 @@ "description": "Vault health reports can be used to evaluate the security of your Bitwarden individual or organization vault." }, "unsecuredWebsitesReport": { - "message": "Resoconto sui siti web non protetti" + "message": "Siti web non sicuri" }, "unsecuredWebsitesReportDesc": { - "message": "L'utilizzo di siti web non protetti con lo schema http:// può essere pericoloso. Se il sito web lo consente, devi sempre accedervi utilizzando lo schema https:// in modo che la connessione sia cifrata." + "message": "Indirizzi che cominciano con http:// non usano la migliore crittografia disponibile. Modifica gli URI di accesso per questi account usando https:// per una maggiore sicurezza." }, "unsecuredWebsitesFound": { "message": "Trovati siti web non protetti" @@ -1669,16 +1669,16 @@ "message": "Nessun elemento nella tua cassaforte ha URI non protetti." }, "inactive2faReport": { - "message": "Resoconto 2FA inattivi" + "message": "Verifiche in due passaggi inattive" }, "inactive2faReportDesc": { - "message": "L'autenticazione a due fattori (2FA) è un'impostazione di sicurezza importante che consente di proteggere i tuoi account. Se il sito web lo offre, dovresti sempre abilitare l'autenticazione a due fattori." + "message": "La verifica in due passaggi aggiunge un livello di protezione ai tuoi account. Imposta la verifica in due passaggi usando l'autenticatore di Bitwarden o un altro metodo." }, "inactive2faFound": { - "message": "Accessi senza 2FA trovati" + "message": "Login senza verifica in due passaggi trovati" }, "inactive2faFoundDesc": { - "message": "Abbiamo trovato $COUNT$ siti web nella tua cassaforte che potrebbero non essere configurati con l'accesso in due passaggi (secondo 2fa.directory). Per proteggere ulteriormente questi account, è necessario impostare il login in due passaggi.", + "message": "Abbiamo trovato $COUNT$ siti web nella tua cassaforte che potrebbero non essere configurati con la verifica in due passaggi (secondo 2fa.directory). Per proteggere ulteriormente questi account, abilita la verifica in due passaggi.", "placeholders": { "count": { "content": "$1", @@ -1687,19 +1687,19 @@ } }, "noInactive2fa": { - "message": "Nessun sito web è stato trovato nella cassaforte con una configurazione di autenticazione a due fattori mancante." + "message": "Non sono stati trovati siti web senza verifica in due passaggi nella tua cassaforte." }, "instructions": { "message": "Istruzioni" }, "exposedPasswordsReport": { - "message": "Resoconto sulle password esposte" + "message": "Password esposte" }, "exposedPasswordsReportDesc": { - "message": "Le password esposte in una violazione dei dati sono un facile bersaglio per gli aggressori. Cambiate queste password per evitare potenziali intrusioni." + "message": "Password esposte in una violazione dei dati sono un bersaglio facile per utenti malintenzionati. Cambia queste password per evitare potenziali intrusioni." }, "exposedPasswordsFound": { - "message": "Trovate password esposte" + "message": "Password esposte trovate" }, "exposedPasswordsFoundDesc": { "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte che hanno password che sono state esposte a violazioni di dati note. Dovresti modificarli per usare una nuova password.", @@ -1726,13 +1726,13 @@ } }, "weakPasswordsReport": { - "message": "Resoconto sulle password deboli" + "message": "Password deboli" }, "weakPasswordsReportDesc": { - "message": "Le password deboli possono essere facilmente intuite dagli hacker e dagli strumenti automatici utilizzati per decifrare le password. Il generatore di password di Bitwarden può aiutarti a creare password robuste." + "message": "Le password deboli possono essere facilmente indovinate da utenti malintenzionati. Rendi queste password robuste usando il generatore di password." }, "weakPasswordsFound": { - "message": "Trovate password deboli" + "message": "Password deboli trovate" }, "weakPasswordsFoundDesc": { "message": "Abbiamo trovato $COUNT$ elementi nella tua cassaforte con password non robuste. Dovresti aggiornarli per usare password più robuste.", @@ -1747,13 +1747,13 @@ "message": "Nessun elemento nella tua cassaforte ha password deboli." }, "reusedPasswordsReport": { - "message": "Resoconto sulle password riutilizzate" + "message": "Password riutilizzate" }, "reusedPasswordsReportDesc": { - "message": "Se un servizio che usi è compromesso, riutilizzare la stessa password altrove può consentire agli hacker di accedere facilmente a più account online. È necessario utilizzare una password univoca per ogni account o servizio." + "message": "Riutilizzare le password rende facile per utenti malintenzionati di entrare in più account. Cambia queste password in modo che ognuna sia unica." }, "reusedPasswordsFound": { - "message": "Trovate password riutilizzate" + "message": "Password riutilizzate trovate" }, "reusedPasswordsFoundDesc": { "message": "Abbiamo trovato $COUNT$ password che sono riutilizzate nella tua cassaforte. Dovresti cambiarle in un valore univoco.", @@ -1777,16 +1777,16 @@ } }, "dataBreachReport": { - "message": "Resoconto sulle violazioni dei dati" + "message": "Violazioni dei dati" }, "breachDesc": { - "message": "Una \"violazione\" è un incidente dove i dati di un sito sono stati illegalmente accessi dagli hacker e poi rilasciati pubblicamente. Esaminare i tipi di dati che sono stati compromessi (indirizzi email, password, carte di credito ecc.) e adottare azioni appropriate, ad esempio la modifica delle password." + "message": "Account violati possono esporre le tue informazioni personali. Proteggi gli account violati abilitando 2FA o creando una password più sicura." }, "breachCheckUsernameEmail": { "message": "Controlla ogni nome utente o indirizzi email che usi." }, "checkBreaches": { - "message": "Verifica violazioni" + "message": "Verifica violazioni dei dati" }, "breachUsernameNotFound": { "message": "$USERNAME$ non è stato trovato in nessuna violazione di dati conosciuta.", @@ -1877,7 +1877,7 @@ "message": "Hai effettuato l'aggiornamento a Premium." }, "premiumUpgradeUnlockFeatures": { - "message": "Aggiorna il tuo account per un abbonamento premium e sblocca alcune funzioni aggiuntive." + "message": "Passa a Premium e sblocca alcune funzionalità utili." }, "premiumSignUpStorage": { "message": "1 GB di spazio di archiviazione cifrato per gli allegati." @@ -1898,7 +1898,7 @@ "message": "Supporto clienti prioritario." }, "premiumSignUpFuture": { - "message": "Tutte le funzioni premium. Nuove in arrivo!" + "message": "Tutte le prossime funzioni Premium. Nuove in arrivo!" }, "premiumPrice": { "message": "Il tutto per solo $PRICE$ all'anno!", @@ -1910,7 +1910,7 @@ } }, "premiumPriceWithFamilyPlan": { - "message": "Passa a premium per soli $PRICE$ /anno, o aggiungi account premium per $FAMILYPLANUSERCOUNT$ utenti e condivisione in famiglia senza limiti con un ", + "message": "Passa a Premium per solo $PRICE$ /anno, o aggiungi account Premium per $FAMILYPLANUSERCOUNT$ utenti e condivisione in famiglia senza limiti con un ", "placeholders": { "price": { "content": "$1", @@ -1932,7 +1932,7 @@ "message": "Accesso Premium" }, "premiumAccessDesc": { - "message": "Puoi aggiungere l'accesso premium a tutti i membri della tua organizzazione per $PRICE$ /$INTERVAL$.", + "message": "Puoi aggiungere l'accesso Premium a tutti i membri della tua organizzazione per $PRICE$ /$INTERVAL$.", "placeholders": { "price": { "content": "$1", @@ -1999,7 +1999,7 @@ } }, "paymentChargedWithTrial": { - "message": "Il tuo piano include una prova gratuita di 7 giorni. La tua carta non verrà addebitata fino alla fine del periodo di prova e su base ricorrente ogni $INTERVAL$. È possibile annullare in qualsiasi momento." + "message": "Il tuo piano include una prova gratuita di 7 giorni. Il tuo metodo di pagamento non sarà addebitato fino alla fine del periodo di prova. Puoi cancellarlo in qualsiasi momento." }, "paymentInformation": { "message": "Informazioni sul pagamento" @@ -2008,13 +2008,13 @@ "message": "Dati di fatturazione" }, "billingTrialSubLabel": { - "message": "Non verrà addebitato nulla sul vostro metodo di pagamento durante i sette giorni di prova gratuita." + "message": "Il tuo metodo di pagamento non sarà addebitato durante i 7 giorni d prova gratuita." }, "creditCard": { "message": "Carta di credito" }, "paypalClickSubmit": { - "message": "Fai clic sul pulsante di PayPal per accedere al tuo account PayPal, quindi fai clic sul pulsante Invia per continuare." + "message": "Clicca il pulsante PayPal per accedere al tuo account PayPal, poi clicca sul pulsante Invia qui sotto per continuare." }, "cancelSubscription": { "message": "Annulla abbonamento" @@ -2041,7 +2041,7 @@ "message": "Sei sicuro di voler annullare il tuo abbonamento? Alla fine di questo ciclo di fatturazione perderai l'accesso a tutte le funzionalità aggiuntive date dall'abbonamento." }, "canceledSubscription": { - "message": "L'abbonamento è stato annullato." + "message": "Abbonamento annullato" }, "neverExpires": { "message": "Nessuna scadenza" @@ -2490,7 +2490,7 @@ "message": "Raccolta annidata" }, "accessControl": { - "message": "Controllo di accesso" + "message": "Controllo accesso" }, "groupAccessAllItems": { "message": "Questo gruppo può accedere e modificare tutti gli elementi." @@ -2520,7 +2520,7 @@ "message": "Modifica membro" }, "fieldOnTabRequiresAttention": { - "message": "Un campo nel tab '$TAB$' richiede la tua attenzione.", + "message": "Un campo nella scheda '$TAB$' richiede la tua attenzione.", "placeholders": { "tab": { "content": "$1", @@ -2529,10 +2529,10 @@ } }, "inviteUserDesc": { - "message": "Invita un nuovo utente alla tua organizzazione inserendo il suo indirizzo email dell'account Bitwarden di seguito. Se non hanno già un account Bitwarden, verrà richiesto di creare un nuovo account." + "message": "Invita un nuovo utente alla tua organizzazione inserendo il suo indirizzo email dell'account Bitwarden qui sotto. Se non ha già un account Bitwarden, gli sarà richiesto di creare un nuovo account." }, "inviteMultipleEmailDesc": { - "message": "Puoi invitare fino a $COUNT$ utenti alla volta inserendo un elenco di indirizzi email separati da una virgola.", + "message": "Invita fino a $COUNT$ indirizzi email separati da una virgola.", "placeholders": { "count": { "content": "$1", @@ -2541,7 +2541,7 @@ } }, "userUsingTwoStep": { - "message": "Questo utente utilizza l'accesso in due passaggi per proteggere il proprio account." + "message": "Questo utente usa la verifica in due passaggi per proteggere il suo account." }, "userAccessAllItems": { "message": "Questo utente può accedere e modificare tutti gli elementi." @@ -2568,7 +2568,7 @@ "message": "Proprietario" }, "ownerDesc": { - "message": "L'utente con accesso più alto sarà in grado di gestire tutti gli aspetti della tua organizzazione." + "message": "Gestisci tutti gli aspetti della tua organizzazione, inclusi fatturazione e abbonamenti" }, "clientOwnerDesc": { "message": "Questo utente non dovrebbe dipendere dal fornitore. Se il fornitore viene rimosso dall'organizzazione, questo utente manterrà la proprietà dell'organizzazione." @@ -2577,7 +2577,7 @@ "message": "Amministratore" }, "adminDesc": { - "message": "Gli amministratori possono accedere e gestire tutti gli elementi, le raccolte e gli utenti dell'organizzazione." + "message": "Gestisci l'accesso all'organizzazione, tutte le raccolte, i membri, i rapporti e le impostazioni di sicurezza" }, "user": { "message": "Utente" @@ -2589,7 +2589,7 @@ "message": "Responsabile" }, "managerDesc": { - "message": "I responsabili possono accedere e gestire le raccolte assegnate nella propria organizzazione." + "message": "Crea, elimina, e gestisci l'accesso nelle raccolte assegnate" }, "all": { "message": "Tutti" @@ -2625,16 +2625,16 @@ "message": "Cassaforte web" }, "loggedIn": { - "message": "Accesso effettuato." + "message": "Accesso effettuato" }, "changedPassword": { - "message": "Password dell'account modificata." + "message": "Password dell'account cambiata" }, "enabledUpdated2fa": { - "message": "Verifica in due passaggi abilitata/aggiornata." + "message": "Verifica in due passaggi salvata" }, "disabled2fa": { - "message": "Verifica in due passaggi disabilitata." + "message": "Verifica in due passaggi disattivata" }, "recovered2fa": { "message": "Account ripristinato dalla verifica in due passaggi." @@ -2766,7 +2766,7 @@ } }, "autofilledItemId": { - "message": "Elemento riempito automaticamente $ID$.", + "message": "$ID$ riempito automaticamente.", "placeholders": { "id": { "content": "$1", @@ -2805,7 +2805,7 @@ } }, "editedPolicyId": { - "message": "Policy $ID$ modificata.", + "message": "Politica $ID$ modificata.", "placeholders": { "id": { "content": "$1", @@ -3024,10 +3024,10 @@ "message": "Gruppo di accesso" }, "groupAccessUserDesc": { - "message": "Modificare i gruppi a cui appartiene questo utente." + "message": "Concedi ai membri accesso alle raccolte aggiungendoli a uno o più gruppi." }, "invitedUsers": { - "message": "Invitato/i utente/i." + "message": "Utenti invitati" }, "resendInvitation": { "message": "Invia nuovamente l'invito" @@ -3036,7 +3036,7 @@ "message": "Invia email di nuovo" }, "hasBeenReinvited": { - "message": "$USER$ è stato invitato.", + "message": "$USER$ invitato di nuovo", "placeholders": { "user": { "content": "$1", @@ -3051,7 +3051,7 @@ "message": "Conferma utente" }, "hasBeenConfirmed": { - "message": "$USER$ è stato confermato.", + "message": "$USER$ confermato.", "placeholders": { "user": { "content": "$1", @@ -3063,7 +3063,7 @@ "message": "Conferma utenti" }, "usersNeedConfirmed": { - "message": "Hai utenti che hanno accettato il loro invito, ma devono ancora essere confermati. Gli utenti non avranno accesso all'organizzazione fino a quando non sono confermati." + "message": "Hai membri che hanno accettato il loro invito, ma che devono ancora essere confermati. I membri non avranno accesso all'organizzazione finché non sono confermati." }, "startDate": { "message": "Data di inizio" @@ -3084,7 +3084,7 @@ "message": "Controlla la tua casella di posta per il collegamenti di verifica." }, "emailVerified": { - "message": "Il tuo indirizzo email è stato verificato." + "message": "Email dell'account verificata" }, "emailVerifiedFailed": { "message": "Impossibile verificare il tuo indirizzo email. Prova a inviare una nuova email di verifica." @@ -3096,7 +3096,7 @@ "message": "Devi verificare la tua email per utilizzare questa funzionalità." }, "updateBrowser": { - "message": "Aggiorna il browser" + "message": "Aggiorna browser" }, "updateBrowserDesc": { "message": "Stai utilizzando un browser non supportato. La cassaforte web potrebbe non funzionare correttamente." @@ -3105,13 +3105,13 @@ "message": "Unisciti all'organizzazione" }, "joinOrganizationDesc": { - "message": "Sei stato invitato a far parte dell'organizzazione sopra elencata. Per accettare l'invito, è necessario accedere o creare un nuovo account di Bitwarden." + "message": "Sei stato invitato a far parte dell'organizzazione qui sopra. Per accettare l'invito, accedi o crea un nuovo account Bitwarden." }, "inviteAccepted": { "message": "Invito accettato" }, "inviteAcceptedDesc": { - "message": "Puoi accedere a questa organizzazione una volta che un amministratore conferma la tua iscrizione. Ti invieremo una email quando accadrà." + "message": "Puoi accedere a questa organizzazione quando un amministratore conferma la tua iscrizione. Ti invieremo una email quando sarai confermato." }, "inviteAcceptFailed": { "message": "Non è possibile accettare l'invito. Chiedi ad un amministratore dell'organizzazione di inviare un nuovo invito." @@ -3129,13 +3129,13 @@ "message": "Ricorda email" }, "recoverAccountTwoStepDesc": { - "message": "Se non puoi accedere al tuo account attraverso i normali metodi di verifica in due passaggi, puoi usare il codice di recupero per la verifica in due passaggi per disabilitare tutti i metodi di verifica in due passaggi presenti sul tuo account." + "message": "Se non puoi accedere al tuo account usando i normali metodi di verifica in due passaggi, usa il tuo codice di recupero per disattivare tutti i metodi di verifica sul tuo account." }, "recoverAccountTwoStep": { - "message": "Ripristina la verifica in due passaggi dell'account" + "message": "Recupera verifica in due passaggi" }, "twoStepRecoverDisabled": { - "message": "La verifica in due passaggi è stata disabilitata sul tuo account." + "message": "Verifica in due passaggi disabilitata sul tuo account." }, "learnMore": { "message": "Ulteriori informazioni" @@ -3186,7 +3186,7 @@ "message": "L'organizzazione e tutti i dati associati sono stati eliminati." }, "organizationUpdated": { - "message": "Organizzazione aggiornata" + "message": "Organizzazione salvata" }, "taxInformation": { "message": "Informazioni fiscali" @@ -4859,10 +4859,10 @@ "message": "Attiva l'impostazione di riempimento automatico al caricamento della pagina nella estensione per il browser per tutti i membri esistenti e nuovi." }, "experimentalFeature": { - "message": "I siti web compromessi o non attendibili possono abusare del riempimento automatico al caricamento della pagina." + "message": "Siti compromessi potrebbero sfruttare il riempimento automatico al caricamento della pagina." }, "learnMoreAboutAutofill": { - "message": "Scopri di più sul riempimento automatico" + "message": "Ulteriori informazioni" }, "selectType": { "message": "Seleziona tipo di SSO" @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "L'account di servizio è stato eliminato" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Account di servizio eliminati" @@ -6036,8 +6036,8 @@ "message": "Token di accesso", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Genera token di accesso", + "newAccessToken": { + "message": "Nuovo token di accesso", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "Cambia impostazioni KDF" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Procedendo verrai disconnesso da tutte le sessioni attualmente attive. Dovrai nuovamente effettuare il login insieme all'autenticazione a due fattori. Ti consigliamo di esportare la tua cassaforte prima di cambiare le impostazioni di criptazione per prevenire perdite di dati." }, "secretsManagerBeta": { "message": "Gestore segreti (beta)" diff --git a/apps/web/src/locales/ja/messages.json b/apps/web/src/locales/ja/messages.json index e02cdbd178f1..9e5b6ef5f9d0 100644 --- a/apps/web/src/locales/ja/messages.json +++ b/apps/web/src/locales/ja/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "サービスアカウントを削除しました" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "サービスアカウントを削除しました" @@ -6036,8 +6036,8 @@ "message": "アクセストークン", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "アクセストークンを作成", + "newAccessToken": { + "message": "新しいアクセストークン", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "KDF 設定の変更" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "続行すると、すべてのアクティブなセッションからログアウトします。再度ログインし、2段階認証を完了する必要があります。 暗号化設定を変更する前に、保管庫をエクスポートしてデータの損失を防ぐことをおすすめします。" }, "secretsManagerBeta": { "message": "ベータ版シークレットマネージャー" diff --git a/apps/web/src/locales/ka/messages.json b/apps/web/src/locales/ka/messages.json index 45b83effd296..c5fcc7a7020a 100644 --- a/apps/web/src/locales/ka/messages.json +++ b/apps/web/src/locales/ka/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/km/messages.json b/apps/web/src/locales/km/messages.json index 45b83effd296..c5fcc7a7020a 100644 --- a/apps/web/src/locales/km/messages.json +++ b/apps/web/src/locales/km/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/kn/messages.json b/apps/web/src/locales/kn/messages.json index fb249f76f997..6487d95b64af 100644 --- a/apps/web/src/locales/kn/messages.json +++ b/apps/web/src/locales/kn/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ko/messages.json b/apps/web/src/locales/ko/messages.json index d5b8c90eaf52..c47fdae72bf8 100644 --- a/apps/web/src/locales/ko/messages.json +++ b/apps/web/src/locales/ko/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/lv/messages.json b/apps/web/src/locales/lv/messages.json index 9582decb9845..9bbc4fc353f1 100644 --- a/apps/web/src/locales/lv/messages.json +++ b/apps/web/src/locales/lv/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Pakalpojumu konts tika izdzēsts" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Pakalpojumu konti ir izdzēsti" @@ -6036,8 +6036,8 @@ "message": "Piekļuves pilnvaras", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Izveidot piekļuves pilnvaru", + "newAccessToken": { + "message": "Jauna piekļuves pilnvara", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ml/messages.json b/apps/web/src/locales/ml/messages.json index aad958f6fb1c..5e6ff688f845 100644 --- a/apps/web/src/locales/ml/messages.json +++ b/apps/web/src/locales/ml/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/nb/messages.json b/apps/web/src/locales/nb/messages.json index 686d218ab776..e12c06e316be 100644 --- a/apps/web/src/locales/nb/messages.json +++ b/apps/web/src/locales/nb/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Tjenestekontoen er slettet" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Tjenestekontoer slettet" @@ -6036,8 +6036,8 @@ "message": "Tilgangstoken", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Opprett tilgangstoken", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ne/messages.json b/apps/web/src/locales/ne/messages.json index 45b83effd296..c5fcc7a7020a 100644 --- a/apps/web/src/locales/ne/messages.json +++ b/apps/web/src/locales/ne/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/nl/messages.json b/apps/web/src/locales/nl/messages.json index a2c1cd78538b..7d4cd139f564 100644 --- a/apps/web/src/locales/nl/messages.json +++ b/apps/web/src/locales/nl/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Het serviceaccount is verwijderd" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Serviceaccounts verwijderd" @@ -6036,8 +6036,8 @@ "message": "Toegangstoken", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Toegangstoken aanmaken", + "newAccessToken": { + "message": "Nieuw toegangstoken", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/nn/messages.json b/apps/web/src/locales/nn/messages.json index 48861baa30ff..e767e057f562 100644 --- a/apps/web/src/locales/nn/messages.json +++ b/apps/web/src/locales/nn/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/pl/messages.json b/apps/web/src/locales/pl/messages.json index b2a960f10dd7..b5d2364648de 100644 --- a/apps/web/src/locales/pl/messages.json +++ b/apps/web/src/locales/pl/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Konto serwisowe zostało usunięte" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Usunięto konta serwisowe" @@ -6036,8 +6036,8 @@ "message": "Tokeny dostępu", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Utwórz token dostępu", + "newAccessToken": { + "message": "Nowy token dostępu", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "Zmień ustawienia KDF" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Kontynuowanie spowoduje wylogowanie ze wszystkich aktywnych sesji. Będzie trzeba zalogować się ponownie i ukończyć konfigurację logowania dwuetapowego. Zalecamy wyeksportowanie sejfu przed zmianą ustawień szyfrowania, aby zapobiec utracie danych." }, "secretsManagerBeta": { "message": "Menedżer sekretów beta" diff --git a/apps/web/src/locales/pt_BR/messages.json b/apps/web/src/locales/pt_BR/messages.json index 7a559d0180e0..384b888b5665 100644 --- a/apps/web/src/locales/pt_BR/messages.json +++ b/apps/web/src/locales/pt_BR/messages.json @@ -4853,16 +4853,16 @@ "message": "Uma ou mais políticas da organização impdem que você exporte seu cofre pessoal." }, "activateAutofill": { - "message": "Activate auto-fill" + "message": "Ativar preenchimento automático" }, "activateAutofillDesc": { - "message": "Activate the auto-fill with page load settings on the browser extension for all existing and new members." + "message": "Ative o autopreenchimento com configurações de carregamento de página na extensão do navegador para todos os membros existentes e novos." }, "experimentalFeature": { - "message": "Compromised or untrusted websites can exploit auto-fill on page load." + "message": "Sites comprometidos ou não confiáveis podem tomar vantagem do autopreenchimento ao carregar a página." }, "learnMoreAboutAutofill": { - "message": "Learn more about auto-fill" + "message": "Saiba mais sobre preenchimento automático" }, "selectType": { "message": "Selecionar Tipo de SSO" @@ -5854,7 +5854,7 @@ "description": "Action to view the details of a service account." }, "deleteServiceAccountDialogMessage": { - "message": "Deleting service account $SERVICE_ACCOUNT$ is permanent and irreversible.", + "message": "Excluir conta de serviço $SERVICE_ACCOUNT$ é permanente e irreversível.", "placeholders": { "service_account": { "content": "$1", @@ -5863,10 +5863,10 @@ } }, "deleteServiceAccountsDialogMessage": { - "message": "Deleting service accounts is permanent and irreversible." + "message": "A exclusão de projetos é permanente e irreversível." }, "deleteServiceAccountsConfirmMessage": { - "message": "Delete $COUNT$ service accounts", + "message": "Excluir $COUNT$ contas de serviço", "placeholders": { "count": { "content": "$1", @@ -5875,17 +5875,17 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Conta de serviço excluída" }, "deleteServiceAccountsToast": { - "message": "Service accounts deleted" + "message": "Contas de serviço excluídas" }, "searchServiceAccounts": { "message": "Pesquisar contas de serviço", "description": "Placeholder text for searching service accounts." }, "editServiceAccount": { - "message": "Edit service account", + "message": "Editar conta de serviço", "description": "Title for editing a service account." }, "addProject": { @@ -5946,7 +5946,7 @@ "description": "Notifies that a new service account has been created" }, "serviceAccountUpdated": { - "message": "Service account updated", + "message": "Conta de serviço atualizada", "description": "Notifies that a service account has been updated" }, "newSaSelectAccess": { @@ -6036,8 +6036,8 @@ "message": "Tokens de acesso", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Criar token de acesso", + "newAccessToken": { + "message": "Novo token de acesso", "description": "Button label for creating a new access token." }, "expires": { @@ -6065,57 +6065,57 @@ "description": "Label for the expiration date of an access token." }, "accessTokenCallOutTitle": { - "message": "Access tokens are not stored and cannot be retrieved", + "message": "Os tokens de acesso não são armazenados e não podem ser recuperados", "description": "Notification to inform the user that access tokens are only displayed once and cannot be retrieved again." }, "copyToken": { - "message": "Copy token", + "message": "Copiar token", "description": "Copies the generated access token to the user's clipboard." }, "accessToken": { - "message": "Access token", + "message": "Token de acesso", "description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets." }, "accessTokenExpirationRequired": { - "message": "Expiration date required", + "message": "Data de validade requerida", "description": "Error message indicating that an expiration date for the access token must be set." }, "accessTokenCreatedAndCopied": { - "message": "Access token created and copied to clipboard", + "message": "Token de acesso criado e copiado para a área de transferência", "description": "Notification to inform the user that the access token has been created and copied to the clipboard." }, "accessTokenPermissionsBetaNotification": { - "message": "Permissions management is unavailable for beta.", + "message": "O gerenciamento de permissões não está disponível para versão beta.", "description": "Notification to inform the user that the feature for managing access token permissions is not available in the beta version." }, "revokeAccessToken": { - "message": "Revoke access token", + "message": "Revogar token de acesso", "description": "Invalidates / cancels an access token and as such removes access to secrets for the client application." }, "revokeAccessTokens": { - "message": "Revoke access tokens" + "message": "Revogar tokens de acesso" }, "revokeAccessTokenDesc": { - "message": "Revoking access tokens is permanent and irreversible." + "message": "Revogar tokens de acesso é permanente e irreversível." }, "accessTokenRevoked": { - "message": "Access tokens revoked", + "message": "Tokens de acesso revogados", "description": "Toast message after deleting one or multiple access tokens." }, "submenu": { "message": "Submenu" }, "from": { - "message": "From" + "message": "De" }, "to": { - "message": "To" + "message": "Para" }, "member": { - "message": "Member" + "message": "Membro" }, "update": { - "message": "Update" + "message": "Atualizar" }, "plusNMore": { "message": "+ $QUANTITY$ mais", @@ -6133,55 +6133,55 @@ "message": "Conceder acesso às coleções atribuídas ao grupo." }, "editGroupCollectionsDesc": { - "message": "Grant access to collections by adding them to this group." + "message": "Conceder acesso às coleções adicionando-as a este grupo." }, "accessAllCollectionsDesc": { - "message": "Grant access to all current and future collections." + "message": "Conceder acesso a todas as coleções atuais e futuras." }, "accessAllCollectionsHelp": { - "message": "If checked, this will replace all other collection permissions." + "message": "Se marcado, isto irá substituir todas as permissões de outras coleções." }, "selectMembers": { - "message": "Select members" + "message": "Selecionar membros" }, "selectCollections": { - "message": "Select collections" + "message": "Selecionar coleções" }, "role": { - "message": "Role" + "message": "Função" }, "removeMember": { - "message": "Remove member" + "message": "Remover membro" }, "collection": { - "message": "Collection" + "message": "Coleção" }, "noCollection": { - "message": "No collection" + "message": "Sem coleções" }, "canView": { - "message": "Can view" + "message": "Pode ver" }, "canViewExceptPass": { - "message": "Can view, except passwords" + "message": "Pode ver, exceto senhas" }, "canEdit": { - "message": "Can edit" + "message": "Pode editar" }, "canEditExceptPass": { - "message": "Can edit, except passwords" + "message": "Pode editar, exceto senhas" }, "noCollectionsAdded": { - "message": "No collections added" + "message": "Nenhuma coleção adicionada" }, "noMembersAdded": { - "message": "No members added" + "message": "Nenhum membro adicionado" }, "noGroupsAdded": { - "message": "No groups added" + "message": "Nenhum grupo adicionado" }, "group": { - "message": "Group" + "message": "Grupo" }, "groupAccessAll": { "message": "This group can access and modify all items." @@ -6211,7 +6211,7 @@ "message": "Copy DNS TXT record" }, "dnsTxtRecord": { - "message": "DNS TXT record" + "message": "Registro DNS TXT" }, "dnsTxtRecordInputHint": { "message": "Copy and paste the TXT record into your DNS Provider." diff --git a/apps/web/src/locales/pt_PT/messages.json b/apps/web/src/locales/pt_PT/messages.json index 016f07916ab8..f225d0ad0d41 100644 --- a/apps/web/src/locales/pt_PT/messages.json +++ b/apps/web/src/locales/pt_PT/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "Novo token de acesso", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ro/messages.json b/apps/web/src/locales/ro/messages.json index d636f6525874..22fc37f10564 100644 --- a/apps/web/src/locales/ro/messages.json +++ b/apps/web/src/locales/ro/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/ru/messages.json b/apps/web/src/locales/ru/messages.json index a61b4b12e592..e23f7fe814d6 100644 --- a/apps/web/src/locales/ru/messages.json +++ b/apps/web/src/locales/ru/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Сервисный аккаунт удален" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Сервисные аккаунты удалены" @@ -6036,8 +6036,8 @@ "message": "Токены доступа", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Создать токен доступа", + "newAccessToken": { + "message": "Новый токен доступа", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "Изменить параметры KDF" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "При продолжении все активные сессии будут завершены. Вам потребуется авторизоваться повторно и выполнить настройку двухэтапной аутентификации. Мы рекомендуем экспортировать хранилище перед изменением настроек шифрования, чтобы предотвратить потерю данных." }, "secretsManagerBeta": { "message": "Менеджер секретов Beta" diff --git a/apps/web/src/locales/si/messages.json b/apps/web/src/locales/si/messages.json index baa9630d3cde..c045605250ea 100644 --- a/apps/web/src/locales/si/messages.json +++ b/apps/web/src/locales/si/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/sk/messages.json b/apps/web/src/locales/sk/messages.json index 4b27a18c0623..e98feb043c7c 100644 --- a/apps/web/src/locales/sk/messages.json +++ b/apps/web/src/locales/sk/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "Nový prístupový token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/sl/messages.json b/apps/web/src/locales/sl/messages.json index b515449a935f..0b9a3028c431 100644 --- a/apps/web/src/locales/sl/messages.json +++ b/apps/web/src/locales/sl/messages.json @@ -41,7 +41,7 @@ "message": "Novo geslo" }, "passphrase": { - "message": "Šifrirna fraza" + "message": "Večbesedno geslo" }, "notes": { "message": "Zapiski" @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/sr/messages.json b/apps/web/src/locales/sr/messages.json index 4165f1c2b7df..5aacb8b803f8 100644 --- a/apps/web/src/locales/sr/messages.json +++ b/apps/web/src/locales/sr/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Услужни налог избрисан" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Услужни налог избрисан" @@ -6036,8 +6036,8 @@ "message": "Приступни токени", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Креирати приступни токен", + "newAccessToken": { + "message": "Нови приступни токен", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/sr_CS/messages.json b/apps/web/src/locales/sr_CS/messages.json index a347d9c6e106..8bc20466d08e 100644 --- a/apps/web/src/locales/sr_CS/messages.json +++ b/apps/web/src/locales/sr_CS/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/sv/messages.json b/apps/web/src/locales/sv/messages.json index 8d59db0e1f1b..8865d5f184ae 100644 --- a/apps/web/src/locales/sv/messages.json +++ b/apps/web/src/locales/sv/messages.json @@ -5240,7 +5240,7 @@ "message": "Set up billing sync" }, "generateToken": { - "message": "Generate token" + "message": "Generera token" }, "rotateToken": { "message": "Rotate token" @@ -5391,16 +5391,16 @@ "message": "Generator" }, "whatWouldYouLikeToGenerate": { - "message": "What would you like to generate?" + "message": "Vad vill du generera?" }, "passwordType": { "message": "Lösenordstyp" }, "regenerateUsername": { - "message": "Regenerate username" + "message": "Återskapa användarnamn" }, "generateUsername": { - "message": "Generate username" + "message": "Generera användarnamn" }, "usernameType": { "message": "Username type" @@ -5419,7 +5419,7 @@ "message": "Use your domain's configured catch-all inbox." }, "random": { - "message": "Random", + "message": "Slumpmässigt", "description": "Generates domain-based username using random letters" }, "randomWord": { @@ -5485,14 +5485,14 @@ "message": "Forwarded email alias" }, "forwardedEmailDesc": { - "message": "Generate an email alias with an external forwarding service." + "message": "Generera ett e-postalias med en extern vidarebefordranstjänst." }, "hostname": { "message": "Hostname", "description": "Part of a URL." }, "apiAccessToken": { - "message": "API access token" + "message": "API-åtkomsttoken" }, "deviceVerification": { "message": "Device verification" @@ -5866,7 +5866,7 @@ "message": "Att ta bort tjänstkonton är permanent och kan inte ångras." }, "deleteServiceAccountsConfirmMessage": { - "message": "Ta bort $COUNT$ tjänstkonton", + "message": "Radera $COUNT$ tjänstkonton", "placeholders": { "count": { "content": "$1", @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Tjänstkontot har tagits bort" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Tjänstkonton togs bort" @@ -6033,11 +6033,11 @@ "message": "Secret permanently deleted" }, "accessTokens": { - "message": "Access tokens", + "message": "Åtkomsttoken", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "Nytt åtkomsttoken", "description": "Button label for creating a new access token." }, "expires": { @@ -6049,11 +6049,11 @@ "description": "Label for the access level of an access token (Read only)." }, "accessTokensNoItemsTitle": { - "message": "No access tokens to show", + "message": "Inga åtkomsttoken att visa", "description": "Title to be displayed when there are no access tokens to display in the list." }, "accessTokensNoItemsDesc": { - "message": "To get started, create an access token", + "message": "Skapa ett åtkomsttoken för att komma igång", "description": "Message to be displayed when there are no access tokens to display in the list." }, "downloadAccessToken": { @@ -6061,11 +6061,11 @@ "description": "Message to be displayed before closing an access token, reminding the user to download or copy it." }, "expiresOnAccessToken": { - "message": "Expires on:", + "message": "Upphör:", "description": "Label for the expiration date of an access token." }, "accessTokenCallOutTitle": { - "message": "Access tokens are not stored and cannot be retrieved", + "message": "Åtkomsttoken lagras inte och kan inte hämtas", "description": "Notification to inform the user that access tokens are only displayed once and cannot be retrieved again." }, "copyToken": { @@ -6073,7 +6073,7 @@ "description": "Copies the generated access token to the user's clipboard." }, "accessToken": { - "message": "Access token", + "message": "Åtkomsttoken", "description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets." }, "accessTokenExpirationRequired": { @@ -6081,7 +6081,7 @@ "description": "Error message indicating that an expiration date for the access token must be set." }, "accessTokenCreatedAndCopied": { - "message": "Access token created and copied to clipboard", + "message": "Åtkomsttoken skapades och kopierades till urklipp", "description": "Notification to inform the user that the access token has been created and copied to the clipboard." }, "accessTokenPermissionsBetaNotification": { @@ -6089,17 +6089,17 @@ "description": "Notification to inform the user that the feature for managing access token permissions is not available in the beta version." }, "revokeAccessToken": { - "message": "Revoke access token", + "message": "Återkalla åtkomsttoken", "description": "Invalidates / cancels an access token and as such removes access to secrets for the client application." }, "revokeAccessTokens": { - "message": "Revoke access tokens" + "message": "Återkalla åtkomsttoken" }, "revokeAccessTokenDesc": { - "message": "Revoking access tokens is permanent and irreversible." + "message": "Att återkalla åtkomsttoken är permanent och kan inte ångras." }, "accessTokenRevoked": { - "message": "Access tokens revoked", + "message": "Åtkomsttoken återkallades", "description": "Toast message after deleting one or multiple access tokens." }, "submenu": { @@ -6614,7 +6614,7 @@ "message": "Enable Secrets Manager Beta" }, "saPeopleWarningTitle": { - "message": "Access tokens still available" + "message": "Åtkomsttoken fortfarande tillgängliga" }, "saPeopleWarningMessage": { "message": "Removing people from a service account does not remove the access tokens they created. For security best practice, it is recommended to revoke access tokens created by people removed from a service account." diff --git a/apps/web/src/locales/te/messages.json b/apps/web/src/locales/te/messages.json index 45b83effd296..c5fcc7a7020a 100644 --- a/apps/web/src/locales/te/messages.json +++ b/apps/web/src/locales/te/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/th/messages.json b/apps/web/src/locales/th/messages.json index ed1650835efb..86f92167c55e 100644 --- a/apps/web/src/locales/th/messages.json +++ b/apps/web/src/locales/th/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/tr/messages.json b/apps/web/src/locales/tr/messages.json index eacd903e6cd3..88087713d106 100644 --- a/apps/web/src/locales/tr/messages.json +++ b/apps/web/src/locales/tr/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Hizmet hesabı silindi" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Hizmet hesapları silindi" @@ -6036,8 +6036,8 @@ "message": "Erişim anahtarları", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Erişim anahtarı oluşturma", + "newAccessToken": { + "message": "Yeni erişim belirteci", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/uk/messages.json b/apps/web/src/locales/uk/messages.json index b6523a6661af..0619071cc429 100644 --- a/apps/web/src/locales/uk/messages.json +++ b/apps/web/src/locales/uk/messages.json @@ -1951,7 +1951,7 @@ "message": "# додаткових ГБ" }, "additionalStorageIntervalDesc": { - "message": "У ваш тарифний план включено зашифроване сховище файлів, розміром $SIZE$. Ви можете збільшити обсяг сховища по ціні $PRICE$ за ГБ /$INTERVAL$.", + "message": "У ваш тарифний план включено зашифроване сховище файлів, розміром $SIZE$. Ви можете збільшити обсяг сховища за ціною $PRICE$ за ГБ /$INTERVAL$.", "placeholders": { "size": { "content": "$1", @@ -2775,7 +2775,7 @@ } }, "createdCollectionId": { - "message": "Створена збірка $ID$.", + "message": "Створено збірку $ID$.", "placeholders": { "id": { "content": "$1", @@ -2784,7 +2784,7 @@ } }, "editedCollectionId": { - "message": "Змінена збірка $ID$.", + "message": "Збірку $ID$ змінено.", "placeholders": { "id": { "content": "$1", @@ -2796,7 +2796,7 @@ "message": "Збірки видалено" }, "deletedCollectionId": { - "message": "Видалена збірка $ID$.", + "message": "Збірку $ID$ видалено.", "placeholders": { "id": { "content": "$1", @@ -2805,7 +2805,7 @@ } }, "editedPolicyId": { - "message": "$ID$ зміненої політики.", + "message": "Змінено політику $ID$.", "placeholders": { "id": { "content": "$1", @@ -2814,7 +2814,7 @@ } }, "createdGroupId": { - "message": "Створена група $ID$.", + "message": "Створено групу $ID$.", "placeholders": { "id": { "content": "$1", @@ -2823,7 +2823,7 @@ } }, "editedGroupId": { - "message": "Змінена група $ID$.", + "message": "Групу $ID$ змінено.", "placeholders": { "id": { "content": "$1", @@ -2832,7 +2832,7 @@ } }, "deletedGroupId": { - "message": "Видалена група $ID$.", + "message": "Групу $ID$ видалено.", "placeholders": { "id": { "content": "$1", @@ -2841,7 +2841,7 @@ } }, "deletedManyGroups": { - "message": "Групи видалено ($QUANTITY$).", + "message": "Групи ($QUANTITY$) видалено.", "placeholders": { "quantity": { "content": "$1", @@ -2850,7 +2850,7 @@ } }, "removedUserId": { - "message": "Вилучений користувач $ID$.", + "message": "Користувача $ID$ вилучено.", "placeholders": { "id": { "content": "$1", @@ -2922,7 +2922,7 @@ } }, "invitedUserId": { - "message": "Запрошений користувач $ID$.", + "message": "Запрошено користувача $ID$.", "placeholders": { "id": { "content": "$1", @@ -2931,7 +2931,7 @@ } }, "confirmedUserId": { - "message": "Підтверджений користувач $ID$.", + "message": "Підтверджено користувача $ID$.", "placeholders": { "id": { "content": "$1", @@ -2940,7 +2940,7 @@ } }, "editedUserId": { - "message": "Змінений користувач $ID$.", + "message": "Користувача $ID$ змінено.", "placeholders": { "id": { "content": "$1", @@ -2949,7 +2949,7 @@ } }, "editedGroupsForUser": { - "message": "Змінені групи для користувача $ID$.", + "message": "Для користувача $ID$ змінено групи.", "placeholders": { "id": { "content": "$1", @@ -2958,7 +2958,7 @@ } }, "unlinkedSsoUser": { - "message": "Незв'язаний SSO для користувача $ID$.", + "message": "Користувач $ID$ не має пов'язаного SSO.", "placeholders": { "id": { "content": "$1", @@ -2985,7 +2985,7 @@ } }, "removedOrganizationId": { - "message": "Вилучено організацію $ID$.", + "message": "Організацію $ID$ вилучено.", "placeholders": { "id": { "content": "$1", @@ -4000,7 +4000,7 @@ "message": "Усі відправлення" }, "maxAccessCountReached": { - "message": "Досягнуто максимальну кількість доступів", + "message": "Досягнуто максимальної кількості доступів", "description": "This text will be displayed after a Send has been accessed the maximum amount of times." }, "pendingDeletion": { @@ -4853,16 +4853,16 @@ "message": "Одна чи декілька політик організації не дозволяють вам експортувати особисте сховище." }, "activateAutofill": { - "message": "Activate auto-fill" + "message": "Активувати автозаповнення" }, "activateAutofillDesc": { - "message": "Activate the auto-fill with page load settings on the browser extension for all existing and new members." + "message": "Активувати автозаповнення під час завантаження сторінки в налаштуваннях розширення браузера для всіх наявних і нових учасників." }, "experimentalFeature": { - "message": "Compromised or untrusted websites can exploit auto-fill on page load." + "message": "Скомпрометовані або ненадійні вебсайти можуть використати функцію автозаповнення під час завантаження сторінки для завдання шкоди." }, "learnMoreAboutAutofill": { - "message": "Learn more about auto-fill" + "message": "Дізнатися більше про автозаповнення" }, "selectType": { "message": "Оберіть тип SSO" @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "Службовий обліковий запис було видалено" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Службові облікові записи видалено" @@ -6036,8 +6036,8 @@ "message": "Токени доступу", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Створити токен доступу", + "newAccessToken": { + "message": "Новий токен доступу", "description": "Button label for creating a new access token." }, "expires": { @@ -6499,7 +6499,7 @@ "message": "Змінити налаштування KDF" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "Продовжуючи, ви вийдете з усіх активних сеансів. Необхідно буде повторно виконати вхід і пройти двоетапну перевірку. Перед зміною налаштувань шифрування ми рекомендуємо експортувати ваше сховище, щоб запобігти можливій втраті даних." }, "secretsManagerBeta": { "message": "Керування секретами (бета-версія)" diff --git a/apps/web/src/locales/vi/messages.json b/apps/web/src/locales/vi/messages.json index 18cd22f88c08..5155d4acef0c 100644 --- a/apps/web/src/locales/vi/messages.json +++ b/apps/web/src/locales/vi/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "Access tokens", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "Create access token", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { diff --git a/apps/web/src/locales/zh_CN/messages.json b/apps/web/src/locales/zh_CN/messages.json index bbfe6596f743..e052e84361a4 100644 --- a/apps/web/src/locales/zh_CN/messages.json +++ b/apps/web/src/locales/zh_CN/messages.json @@ -140,10 +140,10 @@ "message": "博士" }, "expirationMonth": { - "message": "到期月份" + "message": "过期月份" }, "expirationYear": { - "message": "到期年份" + "message": "过期年份" }, "authenticatorKeyTotp": { "message": "验证器密钥 (TOTP)" @@ -285,7 +285,7 @@ "description": "Search Login type" }, "searchCard": { - "message": "搜索卡片", + "message": "搜索支付卡", "description": "Search Card type" }, "searchIdentity": { @@ -293,7 +293,7 @@ "description": "Search Identity type" }, "searchSecureNote": { - "message": "搜索安全备注", + "message": "搜索安全笔记", "description": "Search Secure Note type" }, "searchVault": { @@ -315,7 +315,7 @@ "message": "所有项目" }, "favorites": { - "message": "收藏" + "message": "收藏夹" }, "types": { "message": "类型" @@ -393,7 +393,7 @@ "message": "选择" }, "newItem": { - "message": "新项目" + "message": "新增项目" }, "addItem": { "message": "添加项目" @@ -405,7 +405,7 @@ "message": "查看项目" }, "new": { - "message": "新建", + "message": "新增", "description": "for adding new items" }, "item": { @@ -616,7 +616,7 @@ "message": "登录或者创建一个账户来访问您的安全密码库。" }, "loginWithDevice": { - "message": "使用设备登录" + "message": "设备登录" }, "loginWithDeviceEnabledInfo": { "message": "必须在 Bitwarden 移动应用程序的设置中启用设备登录。需要其他选项吗?" @@ -697,7 +697,7 @@ "message": "必须再次输入主密码。" }, "masterPasswordMinlength": { - "message": "主密码必须至少 $VALUE$ 个字符长。", + "message": "主密码必须至少 $VALUE$ 个字符长度。", "description": "The Master Password must be at least a specific number of characters long.", "placeholders": { "value": { @@ -906,7 +906,7 @@ "message": "编辑与此项目共享的集合。只有具有这些集合访问权限的组织用户才能看到此项目。" }, "deleteSelectedItemsDesc": { - "message": "您选择了要删除 $COUNT$ 个项目。确实要删除所有这些项目吗?", + "message": "$COUNT$ 个项目将被发送到回收站。", "placeholders": { "count": { "content": "$1", @@ -1001,7 +1001,7 @@ "message": "确认文件密码" }, "accountRestrictedOptionDescription": { - "message": "使用您账户的加密密钥,源自您账户的用户名和主密码, 加密导出并限制导入到当前的 Bitwarden 帐户。" + "message": "使用衍生自您账户的用户名和主密码的加密密钥,以加密此导出并限制只能导入到当前的 Bitwarden 帐户。" }, "passwordProtectedOptionDescription": { "message": "设置一个密码用来加密导出的数据,并使用此密码解密以导入到任意 Bitwarden 账户。" @@ -1010,7 +1010,7 @@ "message": "导出类型" }, "accountRestricted": { - "message": "账户已限制" + "message": "账户受限" }, "passwordProtected": { "message": "密码保护" @@ -1156,7 +1156,7 @@ } }, "kdfIterationsWarning": { - "message": "如果将 KDF 迭代设置得太高,可能会在 CPU 速度较慢的设备上登录(以及解锁)Bitwarden 时性能变差。建议您以 $INCREMENT$ 的增量值递增,然后在所有设备上进行测试。", + "message": "如果将 KDF 迭代设置得太高,可能导致在相对老旧的设备上登录(以及解锁)Bitwarden 时性能不佳。建议您以 $INCREMENT$ 的增量值递增,然后测试您的所有设备。", "placeholders": { "increment": { "content": "$1", @@ -1169,7 +1169,7 @@ "description": "Memory refers to computer memory (RAM). MB is short for megabytes." }, "argon2Warning": { - "message": "如果将 KDF 迭代、内存占用和并行设置得太高,可能导致在相对老旧的设备上登录(解锁) Bitwarden 时性能不佳。 我们建议以小量递增的方式更改这些设置,然后测试您的所有设备。" + "message": "如果将 KDF 迭代、内存占用和并行设置得太高,可能导致在相对老旧的设备上登录(以及解锁)Bitwarden 时性能不佳。我们建议以小量递增的方式更改这些设置,然后测试您的所有设备。" }, "kdfParallelism": { "message": "KDF 并行性" @@ -1910,7 +1910,7 @@ } }, "premiumPriceWithFamilyPlan": { - "message": "只为 $PRICE$ /年,或为 $FAMILYPLANUSERCOUNT$ 用户获得高级帐户和无限的家庭共享 ", + "message": "升级高级会员仅需 $PRICE$/年,或成为高级账户,其具有 $FAMILYPLANUSERCOUNT$ 个用户,以及无限制的家庭共享,家庭共享具有 ", "placeholders": { "price": { "content": "$1", @@ -2460,7 +2460,7 @@ "message": "您确定要删除此群组吗?" }, "deleteMultipleGroupsConfirmation": { - "message": "您确定要删除以下 $QUANTITY$ 组?", + "message": "您确定要删除如下 $QUANTITY$ 个群组吗?", "placeholders": { "quantity": { "content": "$1", @@ -2475,7 +2475,7 @@ "message": "移除成员后,他们将不再具有对组织数据的访问权限,并且此操作是不可逆的。要将此成员添加回组织,必须再次邀请他们并加入。" }, "revokeUserConfirmation": { - "message": "撤销成员后,他们将不再具有对组织数据的访问权限。要快速恢复此成员的访问权限,请转到「已撤销」选项卡。" + "message": "撤销成员后,他们将不再具有对组织数据的访问权限。要快速恢复此成员的访问权限,请转到「已撤销」标签页。" }, "removeUserConfirmationKeyConnector": { "message": "警告!此用户需要 Key Connector 来管理他们的加密。从您的组织中移除此用户将永久停用他们的账户。此操作无法撤消。您要继续吗?" @@ -2484,10 +2484,10 @@ "message": "外部 ID" }, "externalIdDesc": { - "message": "外部 ID 可用作参考,或将此资源与用户目录等外部系统联系起来。" + "message": "外部 ID 是一个 Bitwarden 目录连接器和 API 使用的未经加密的参考。" }, "nestCollectionUnder": { - "message": "排料集合在" + "message": "嵌套集合在" }, "accessControl": { "message": "访问控制" @@ -2511,7 +2511,7 @@ "message": "编辑集合" }, "collectionInfo": { - "message": "收藏信息" + "message": "集合信息" }, "deleteCollectionConfirmation": { "message": "你确定要删除此集合吗?" @@ -2520,7 +2520,7 @@ "message": "编辑成员" }, "fieldOnTabRequiresAttention": { - "message": "'$TAB$' 选项卡上的字段需要您注意。", + "message": "'$TAB$' 标签页上的字段需要您注意。", "placeholders": { "tab": { "content": "$1", @@ -2532,7 +2532,7 @@ "message": "在下面输入 Bitwarden 账户的电子邮件地址,以邀请新用户加入您的组织。如果他们没有 Bitwarden 账户,将会提示他们创建一个。" }, "inviteMultipleEmailDesc": { - "message": "通过使用逗号分隔的电子邮件地址列表,您可以一次邀请最多 $COUNT$ 位用户。", + "message": "通过逗号分隔,最多输入 $COUNT$ 个电子邮件地址。", "placeholders": { "count": { "content": "$1", @@ -2583,7 +2583,7 @@ "message": "用户" }, "userDesc": { - "message": "访问项目和将项目添加到已分配的集合" + "message": "访问并添加项目到已分配的集合" }, "manager": { "message": "经理" @@ -2793,7 +2793,7 @@ } }, "deletedCollections": { - "message": "已删除收藏" + "message": "已删除集合" }, "deletedCollectionId": { "message": "删除了集合 $ID$。", @@ -3024,7 +3024,7 @@ "message": "群组权限" }, "groupAccessUserDesc": { - "message": "编辑此用户隶属的群组。" + "message": "通过将集合添加到 1 个或多个群组,授予成员对集合的访问权限。" }, "invitedUsers": { "message": "用户已邀请" @@ -3060,10 +3060,10 @@ } }, "confirmUsers": { - "message": "确认用户" + "message": "确认成员" }, "usersNeedConfirmed": { - "message": "您的用户已经接受了发给他们的邀请,但仍需要被确认。用户在被确认之前将无法访问组织。" + "message": "您的成员已经接受了发给他们的邀请,但仍需要被确认。成员在被确认之前将无法访问组织。" }, "startDate": { "message": "开始日期" @@ -3447,7 +3447,7 @@ "message": "隐私条款" }, "filters": { - "message": "筛选器" + "message": "筛选" }, "vaultTimeout": { "message": "密码库超时时间" @@ -3489,7 +3489,7 @@ "description": "ex. Date this password was updated" }, "organizationIsDisabled": { - "message": "组织已暂停" + "message": "组织已停用" }, "disabledOrganizationFilterError": { "message": "无法访问已暂停组织中的项目。请联系您的组织所有者获取帮助。" @@ -3529,7 +3529,7 @@ "message": "脆弱的主密码" }, "weakMasterPasswordDesc": { - "message": "您选择的主密码较弱。您应该使用强密码(或密码短语)来正确保护您的 Bitwarden 账户。仍要使用此主密码吗?" + "message": "识别到弱密码。请使用一个强密码以保护你的账户。你确定你要使用弱密码吗?" }, "rotateAccountEncKey": { "message": "同时轮换账户的加密密钥" @@ -3679,7 +3679,7 @@ "message": "至少包含一个数字" }, "policyInEffectSpecial": { - "message": "至少包含一个下列特殊字符:$CHARS$", + "message": "至少包含一个以下特殊字符 $CHARS$", "placeholders": { "chars": { "content": "$1", @@ -3777,7 +3777,7 @@ "message": "恢复项目" }, "restoreSelectedItemsDesc": { - "message": "您选择了要恢复 $COUNT$ 个项目。确实要恢复所有这些项目吗?", + "message": "您选择了要恢复 $COUNT$ 个项目。确定要恢复这些项目吗?", "placeholders": { "count": { "content": "$1", @@ -3837,7 +3837,7 @@ "message": "您现在可以在扩展中关闭此标签页并继续。" }, "includeAllTeamsFeatures": { - "message": "包含所有团队版功能" + "message": "所有团队版功能,以及:" }, "includeSsoAuthentication": { "message": "通过 SAML2.0 和 OpenID Connect 进行 SSO 身份验证" @@ -4604,7 +4604,7 @@ "message": "移除成员后,他们将不再具有对组织数据的访问权限,并且此操作是不可逆的。要将成员添加回组织,必须再次邀请他们并加入。该过程可能需要几秒钟才能完成,并且不能被中断或取消。" }, "revokeUsersWarning": { - "message": "撤销成员后,他们将不再具有对组织数据的访问权限。要快速恢复成员的访问权限,请转到「已撤销」选项卡。该过程可能需要几秒钟才能完成,并且不能被中断或取消。" + "message": "撤销成员后,他们将不再具有对组织数据的访问权限。要快速恢复成员的访问权限,请转到「已撤销」标签页。该过程可能需要几秒钟才能完成,并且不能被中断或取消。" }, "theme": { "message": "主题" @@ -4856,7 +4856,7 @@ "message": "激活自动填充" }, "activateAutofillDesc": { - "message": "激活所有现有成员和新成员的浏览器扩展中的页面加载时的自动填充设置。" + "message": "为所有现有成员和新成员激活浏览器扩展中的页面加载时自动填充设置。" }, "experimentalFeature": { "message": "不完整或不信任的网站可以在页面加载时自动填充。" @@ -5174,7 +5174,7 @@ "message": "「SSO 登录和 Key Connector 解密」已启用。此策略仅适用于所有者和管理员。" }, "enabledSso": { - "message": "启用了 SSO" + "message": "SSO 已启用" }, "disabledSso": { "message": "SSO 已停用" @@ -5183,7 +5183,7 @@ "message": "Key Connector 已启用" }, "disabledKeyConnector": { - "message": "停用了 Key Connector" + "message": "Key Connector 已停用" }, "keyConnectorWarning": { "message": "一旦成员开始使用 Key Connector,您的组织就无法恢复为使用主密码解密。仅当您可以轻松地部署和管理密钥服务器时才继续操作。" @@ -5261,7 +5261,7 @@ "message": "令牌已轮换" }, "billingSyncDesc": { - "message": "计费同步通过将您的自托管 Bitwarden 链接到 Bitwarden 云服务器,为成员提供免费家庭计划和高级计费功能。" + "message": "计费同步解锁家庭赞助并在您的服务器上自动同步许可证。在 Bitwarden 云服务器上进行更新后,选择「同步许可证」以应用更改。" }, "billingSyncKeyDesc": { "message": "要完成此表单,需要填写您的云组织订阅设置中的计费同步令牌。" @@ -5312,7 +5312,7 @@ "message": "必填" }, "characterMaximum": { - "message": "$MAX$ 字符最大值", + "message": "最多 $MAX$ 个字符", "placeholders": { "max": { "content": "$1", @@ -5342,7 +5342,7 @@ "message": "正在导出组织密码库" }, "exportingPersonalVaultDescription": { - "message": "仅会导出与 $EMAIL$ 关联的个人密码库项目。组织密码库的项目不会导出。", + "message": "仅会导出与 $EMAIL$ 关联的个人密码库项目,不包括组织密码库的项目。仅会导出密码库项目信息,不包括关联的密码历史记录或附件。", "placeholders": { "email": { "content": "$1", @@ -5597,7 +5597,7 @@ } }, "inputForbiddenCharacters": { - "message": "以下字符是不允许的: $CHARACTERS$", + "message": "以下字符不被允许:$CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -5606,10 +5606,10 @@ } }, "multipleInputEmails": { - "message": "一个或多个电子邮件无效" + "message": "一个或多个电子邮件地址无效" }, "tooManyEmails": { - "message": "您一次只能提交最多 $COUNT$ 封邮件", + "message": "您一次只能提交最多 $COUNT$ 个电子邮件地址", "placeholders": { "count": { "content": "$1", @@ -5666,7 +5666,7 @@ "message": "橙色" }, "lavender": { - "message": "熏衣草紫" + "message": "熏衣草色" }, "yellow": { "message": "黄色" @@ -5678,7 +5678,7 @@ "message": "蓝绿色" }, "salmon": { - "message": "鲑红" + "message": "鲑红色" }, "pink": { "message": "粉红色" @@ -5690,7 +5690,7 @@ "message": "-- 选择 --" }, "multiSelectPlaceholder": { - "message": "-- 键入以筛选 --" + "message": "-- 输入筛选条件 --" }, "multiSelectLoading": { "message": "正在获取选项..." @@ -5717,7 +5717,7 @@ "description": "Description for the Projects field." }, "lastEdited": { - "message": "上次编辑时间", + "message": "最后编辑于", "description": "The label for the date and time when a item was last edited." }, "editSecret": { @@ -5745,10 +5745,10 @@ "description": "The action to delete multiple secrets from the system." }, "hardDeleteSecret": { - "message": "永久删除密钥" + "message": "永久删除机密" }, "hardDeleteSecrets": { - "message": "永久删除密钥" + "message": "永久删除机密" }, "secretProjectAssociationDescription": { "message": "选择与机密相关联的项目。仅有权访问该项目的组织用户能查看该机密。", @@ -5759,27 +5759,27 @@ "description": "A label for a type-to-filter input field to choose projects." }, "searchProjects": { - "message": "搜索项目", + "message": "搜索方案", "description": "Label for the search bar used to search projects." }, "project": { - "message": "项目", + "message": "方案", "description": "Similar to collections, projects can be used to group secrets." }, "editProject": { - "message": "编辑项目", + "message": "编辑方案", "description": "The action to modify an existing project." }, "viewProject": { - "message": "查看项目", + "message": "查看方案", "description": "The action to view details of a project." }, "deleteProject": { - "message": "删除项目", + "message": "删除方案", "description": "The action to delete a project from the system." }, "deleteProjects": { - "message": "删除项目", + "message": "删除方案", "description": "The action to delete multiple projects from the system." }, "secret": { @@ -5827,10 +5827,10 @@ "description": "Message to encourage the user to start adding secrets." }, "secretsTrashNoItemsMessage": { - "message": "回收站中没有密钥。" + "message": "回收站中没有机密。" }, "serviceAccountsNoItemsMessage": { - "message": "创建一个新的服务账户以开始自动密钥访问。", + "message": "创建一个新的服务账户以开始自动机密访问。", "description": "Message to encourage the user to start creating service accounts." }, "serviceAccountsNoItemsTitle": { @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "服务账户已被删除" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "服务账户已删除" @@ -5889,27 +5889,27 @@ "description": "Title for editing a service account." }, "addProject": { - "message": "添加项目", + "message": "添加方案", "description": "Title for creating a new project." }, "projectEdited": { - "message": "项目已编辑", + "message": "方案已编辑", "description": "Notification for the successful editing of a project." }, "projectSaved": { - "message": "项目已保存", + "message": "方案已保存", "description": "Notification for the successful saving of a project." }, "projectCreated": { - "message": "项目已创建", + "message": "方案已创建", "description": "Notification for the successful creation of a project." }, "projectName": { - "message": "项目名称", + "message": "方案名称", "description": "Label for entering the name of a project." }, "newProject": { - "message": "新建项目", + "message": "新建方案", "description": "Title for creating a new project." }, "softDeleteSecretWarning": { @@ -5921,20 +5921,20 @@ "description": "Notifies that the selected secrets have been moved to the trash" }, "hardDeleteSecretConfirmation": { - "message": "您确定要永久删除此密钥吗?" + "message": "您确定要永久删除此机密吗?" }, "hardDeleteSecretsConfirmation": { - "message": "您确定要永久删除这些密钥吗?" + "message": "您确定要永久删除这些机密吗?" }, "hardDeletesSuccessToast": { - "message": "密钥已永久删除" + "message": "机密已永久删除" }, "smAccess": { "message": "访问权限", "description": "Title indicating what permissions a service account has" }, "projectCommaSecret": { - "message": "项目,机密", + "message": "方案,机密", "description": "" }, "serviceAccountName": { @@ -5950,19 +5950,19 @@ "description": "Notifies that a service account has been updated" }, "newSaSelectAccess": { - "message": "输入或选择项目或机密", + "message": "输入或选择方案或机密", "description": "Instructions for selecting projects or secrets for a new service account" }, "newSaTypeToFilter": { - "message": "键入以筛选", + "message": "输入筛选条件", "description": "Instructions for filtering a list of projects or secrets" }, "deleteProjectsToast": { - "message": "项目已删除", + "message": "方案已删除", "description": "Notifies that the selected projects have been deleted" }, "deleteProjectToast": { - "message": "项目和所有相关的机密已被删除", + "message": "方案已删除", "description": "Notifies that a project has been deleted" }, "deleteProjectDialogMessage": { @@ -5996,7 +5996,7 @@ } }, "deleteProjectsConfirmMessage": { - "message": "删除 $COUNT$ 个项目", + "message": "删除 $COUNT$ 个方案", "description": "Confirmation prompt to delete multiple projects, where '$COUNT$' is a placeholder for the number of projects to be deleted.", "placeholders": { "count": { @@ -6006,15 +6006,15 @@ } }, "deleteProjectsDialogMessage": { - "message": "删除项目是永久性的,不可撤销!", + "message": "删除方案是永久性的,不可撤销!", "description": "This message is displayed in a dialog box as a warning before proceeding with project deletion." }, "projectsNoItemsTitle": { - "message": "没有可显示的项目", + "message": "没有可显示的方案", "description": "Empty state to be displayed when there are no projects to display in the list." }, "projectsNoItemsMessage": { - "message": "添加一个新项目来开始组织密钥。", + "message": "添加一个新方案来以开始组织机密。", "description": "Message to be displayed when there are no projects to display in the list." }, "smConfirmationRequired": { @@ -6022,7 +6022,7 @@ "description": "Indicates that user confirmation is required for an action to proceed." }, "bulkDeleteProjectsErrorMessage": { - "message": "以下项目无法删除:", + "message": "以下方案无法删除:", "description": "Message to be displayed when there is an error during bulk project deletion." }, "softDeleteSuccessToast": { @@ -6030,14 +6030,14 @@ "description": "Notification to be displayed when a secret is successfully sent to the trash." }, "hardDeleteSuccessToast": { - "message": "密钥已永久删除" + "message": "机密已永久删除" }, "accessTokens": { "message": "访问令牌", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "创建访问令牌", + "newAccessToken": { + "message": "新增访问令牌", "description": "Button label for creating a new access token." }, "expires": { @@ -6077,7 +6077,7 @@ "description": "A unique string that gives a client application (eg. CLI) access to a secret or set of secrets." }, "accessTokenExpirationRequired": { - "message": "到期日期是必需的。", + "message": "过期日期必填", "description": "Error message indicating that an expiration date for the access token must be set." }, "accessTokenCreatedAndCopied": { @@ -6085,7 +6085,7 @@ "description": "Notification to inform the user that the access token has been created and copied to the clipboard." }, "accessTokenPermissionsBetaNotification": { - "message": "Beta 版中的权限管理不可用。", + "message": "权限管理在 Beat 版中不可用。", "description": "Notification to inform the user that the feature for managing access token permissions is not available in the beta version." }, "revokeAccessToken": { @@ -6118,7 +6118,7 @@ "message": "更新" }, "plusNMore": { - "message": "+ $QUANTITY$ 更多", + "message": "+ $QUANTITY$ 及更多", "placeholders": { "quantity": { "content": "$1", @@ -6130,22 +6130,22 @@ "message": "群组信息" }, "editGroupMembersDesc": { - "message": "授予成员访问群组指定收藏的权限。" + "message": "授予成员对该群组已分配的集合的访问权限。" }, "editGroupCollectionsDesc": { - "message": "通过将资源库添加到此群组来授予访问权限。" + "message": "通过将集合添加到此群组来授予对集合的访问权限。" }, "accessAllCollectionsDesc": { - "message": "允许访问所有当前和未来的资源库。" + "message": "授予对所有当前和未来的集合的访问权限。" }, "accessAllCollectionsHelp": { - "message": "如果选中,这将替换所有其他资源库权限。" + "message": "如果选中,这将替换所有其他集合权限。" }, "selectMembers": { "message": "选择成员" }, "selectCollections": { - "message": "选择资源库" + "message": "选择集合" }, "role": { "message": "角色" @@ -6154,10 +6154,10 @@ "message": "移除成员" }, "collection": { - "message": "资源库" + "message": "集合" }, "noCollection": { - "message": "没有资源库" + "message": "没有集合" }, "canView": { "message": "可以查看" @@ -6172,13 +6172,13 @@ "message": "除密码外,可以编辑" }, "noCollectionsAdded": { - "message": "未添加资源库" + "message": "未添加任何集合" }, "noMembersAdded": { - "message": "未添加成员" + "message": "未添加任何成员" }, "noGroupsAdded": { - "message": "没有添加组" + "message": "未添加任何群组" }, "group": { "message": "群组" @@ -6334,10 +6334,10 @@ "message": "选择群组" }, "userPermissionOverrideHelper": { - "message": "为会员设置的权限将替换该成员组设置的权限" + "message": "用于成员的权限设置将替换该成员群组的权限设置" }, "noMembersOrGroupsAdded": { - "message": "未添加成员或组" + "message": "未添加任何成员或群组" }, "deleted": { "message": "已删除" @@ -6349,13 +6349,13 @@ "message": "邀请成员" }, "needsConfirmation": { - "message": "需要确认" + "message": "需确认" }, "memberRole": { "message": "成员角色" }, "moreFromBitwarden": { - "message": "来自 Bitwarden 的更多产品" + "message": "更多来自 Bitwarden 的产品" }, "switchProducts": { "message": "切换产品" @@ -6403,10 +6403,10 @@ "message": "导出数据" }, "exportingOrganizationSecretDataTitle": { - "message": "正在导出组织安全数据" + "message": "正在导出组织机密数据" }, "exportingOrganizationSecretDataDescription": { - "message": "将只导出与 $ORGANIZATION$ 相关联的密码管理器数据。其他产品或其他组织的项目将不包括在内。", + "message": "仅会导出与 $ORGANIZATION$ 关联的机密管理器数据。不包括其他产品中的项目或来自其他组织的项目。", "placeholders": { "ORGANIZATION": { "content": "$1", @@ -6418,7 +6418,7 @@ "message": "文件上传" }, "acceptedFormats": { - "message": "可用格式:" + "message": "可接受的格式:" }, "copyPasteImportContents": { "message": "复制并粘贴导入内容:" @@ -6427,7 +6427,7 @@ "message": "或" }, "licenseAndBillingManagement": { - "message": "许可证和账单管理" + "message": "许可证和计费管理" }, "automaticSync": { "message": "自动同步" @@ -6436,7 +6436,7 @@ "message": "手动上传" }, "manualUploadDesc": { - "message": "如果您不想进行账单同步,可以在这里手动上传您的许可证。" + "message": "如果您不想进行计费同步,可以在这里手动上传您的许可证。" }, "syncLicense": { "message": "同步许可证" @@ -6451,37 +6451,37 @@ "message": "最后一次许可证同步" }, "billingSyncHelp": { - "message": "账单同步帮助" + "message": "计费同步帮助" }, "uploadLicense": { "message": "上传许可证" }, "projectPeopleDescription": { - "message": "授予群组或人对此项目的访问权限。" + "message": "授予群组或人员对此方案的访问权限。" }, "projectPeopleSelectHint": { - "message": "键入或选择人或组" + "message": "输入或选择人员或群组" }, "projectServiceAccountsDescription": { - "message": "授予此项目的服务账户访问权限。" + "message": "授予服务账户对此方案的访问权限。" }, "projectServiceAccountsSelectHint": { "message": "输入或选择服务账户" }, "projectEmptyPeopleAccessPolicies": { - "message": "添加人或群组开始协作" + "message": "添加人员或群组以开始协作" }, "projectEmptyServiceAccountAccessPolicies": { "message": "添加服务账户以授予访问权限" }, "serviceAccountPeopleDescription": { - "message": "授权群组或人访问此服务账户。" + "message": "授予群组或人员对此服务账户的访问权限。" }, "serviceAccountProjectsDescription": { "message": "分配项目到此服务账户。 " }, "serviceAccountEmptyProjectAccesspolicies": { - "message": "添加项目以授予访问" + "message": "添加方案以授予访问权限" }, "canReadWrite": { "message": "可以读取、写入" @@ -6490,34 +6490,34 @@ "message": "群组/用户" }, "lowKdfIterations": { - "message": "低KDF 迭代数" + "message": "较低的 KDF 迭代" }, "lowKdfIterationsDesc": { - "message": "增加您的 KDF 加密设置,以提高您账户的安全。" + "message": "增加您的 KDF 加密设置,以提高您账户的安全性。" }, "changeKdfSettings": { "message": "更改 KDF 设置" }, "changeKdfLoggedOutWarning": { - "message": "Proceeding will log you out of all active sessions. You will need to log back in and complete two-step login setup. We recommend exporting your vault before changing your encryption settings to prevent data loss." + "message": "接下来将会注销您所有的活动会话。您将需要重新登录并完成两步登录设置。我们建议在更改您的加密设置之前导出您的密码库,以防数据丢失。" }, "secretsManagerBeta": { - "message": "Secrets Manager 测试版" + "message": "机密管理器 Beta 版" }, "secretsManagerBetaDesc": { - "message": "在测试版期间,允许用户免费访问 Secrets Manager。" + "message": "在 Beta 计划期间,允许用户免费访问机密管理器。" }, "userAccessSecretsManager": { - "message": "此用户可以访问 Secrets Manager 测试版" + "message": "此用户可以访问机密管理器 Beta 版" }, "important": { - "message": "重要事项:" + "message": "重要:" }, "viewAll": { "message": "查看全部" }, "showingPortionOfTotal": { - "message": "显示 $PORTION$ / $TOTAL$", + "message": "显示 $PORTION$ 中的 $TOTAL$", "placeholders": { "portion": { "content": "$1", @@ -6533,13 +6533,13 @@ "message": "解决下面的错误,然后重试。" }, "description": { - "message": "说明" + "message": "描述" }, "errorReadingImportFile": { - "message": "尝试读取导入文件时出错" + "message": "尝试读取导入的文件时出错" }, "accessedSecret": { - "message": "访问了密钥 $SECRET_ID$。", + "message": "访问了机密 $SECRET_ID$。", "placeholders": { "secret_id": { "content": "$1", @@ -6552,10 +6552,10 @@ "description": "Software Development Kit" }, "createSecret": { - "message": "创建一个密钥" + "message": "创建一个机密" }, "createProject": { - "message": "创建一个项目" + "message": "创建一个方案" }, "createServiceAccount": { "message": "创建服务账户" @@ -6565,16 +6565,16 @@ "description": "Link to a downloadable resource. This will be used as part of a larger phrase. Example: Download the Secrets Manager CLI" }, "smCLI": { - "message": "密钥管理器 CLI" + "message": "机密管理器 CLI" }, "importSecrets": { - "message": "导入密钥" + "message": "导入机密" }, "getStarted": { "message": "开始使用" }, "complete": { - "message": "$COMPLETED$/$TOTAL$ Complete", + "message": "$COMPLETED$/$TOTAL$ 完成", "placeholders": { "COMPLETED": { "content": "$1", @@ -6587,52 +6587,52 @@ } }, "restoreSecret": { - "message": "恢复密钥" + "message": "还原机密" }, "restoreSecrets": { - "message": "恢复密钥" + "message": "还原机密" }, "restoreSecretPrompt": { - "message": "您确定要还原此密钥吗?" + "message": "您确定要还原此机密吗?" }, "restoreSecretsPrompt": { - "message": "您确定要还原这些密钥吗?" + "message": "您确定要还原这些密机密吗?" }, "secretRestoredSuccessToast": { - "message": "已恢复密钥" + "message": "机密已还原" }, "secretsRestoredSuccessToast": { - "message": "已恢复密钥" + "message": "机密已还原" }, "selectionIsRequired": { "message": "必须选择" }, "secretsManagerSubscriptionDesc": { - "message": "在测试程序期间,开启无需收费的密钥管理员的组织访问权限。用户可以被授予成员访问测试版的权限。" + "message": "在 Beta 计划期间,开启机密管理器的组织访问权限是免费的。成员中的用户会被授予对 Beta 版的访问权限。" }, "secretsManagerEnable": { - "message": "启用 Secrets Manager 测试版" + "message": "启用机密管理器 Beta 版" }, "saPeopleWarningTitle": { "message": "访问令牌仍然可用" }, "saPeopleWarningMessage": { - "message": "从服务账户中删除用户并不会删除他们创建的访问令牌。 为了安全方面的最佳做法,建议撤销从服务账户中移除的人创建的访问令牌。" + "message": "从服务账户中移除人员并不会移除他们已创建的访问令牌。基于安全方面的最佳做法,建议撤销从服务账户中被移除的人员创建的访问令牌。" }, "smAccessRemovalWarningProjectTitle": { - "message": "删除此项目的访问权限" + "message": "移除此方案的访问权限" }, "smAccessRemovalWarningProjectMessage": { - "message": "此操作将删除您对项目的访问权限。" + "message": "此操作将移除您对此方案的访问权限。" }, "smAccessRemovalWarningSaTitle": { - "message": "删除此服务账户的访问权限" + "message": "删除对此服务账户的访问权限" }, "smAccessRemovalWarningSaMessage": { - "message": "此操作将删除您对服务账户的访问。" + "message": "此操作将移除您对此服务账户的访问权限。" }, "removeAccess": { - "message": "移除访问" + "message": "移除访问权限" }, "checkForBreaches": { "message": "检查已知的数据泄露是否包含此密码" @@ -6641,13 +6641,13 @@ "message": "已暴露的主密码" }, "exposedMasterPasswordDesc": { - "message": "一起数据泄露中存在该密码。使用独特的密码有助保护您的账户。确定要使用曾经暴露的密码吗?" + "message": "密码在数据泄露中被发现。请使用一个独一无二的的密码以保护您的账户。确定要使用已暴露的密码吗?" }, "weakAndExposedMasterPassword": { "message": "主密码弱且曾经暴露" }, "weakAndBreachedMasterPasswordDesc": { - "message": "密码太弱并出现在数据泄露。使用强悍且独特的密码有助保护您的账户。确定继续使用当前密码吗?" + "message": "识别到弱密码且其出现在数据泄露中。请使用一个强且唯一的密码以保护你的账户。确定要使用这个密码吗?" }, "characterMinimum": { "message": "至少 $LENGTH$ 个字符", @@ -6668,6 +6668,6 @@ } }, "dismiss": { - "message": "关闭" + "message": "取消" } } diff --git a/apps/web/src/locales/zh_TW/messages.json b/apps/web/src/locales/zh_TW/messages.json index c1e8362e879a..8514e857cd80 100644 --- a/apps/web/src/locales/zh_TW/messages.json +++ b/apps/web/src/locales/zh_TW/messages.json @@ -5875,7 +5875,7 @@ } }, "deleteServiceAccountToast": { - "message": "The service account have been deleted" + "message": "Service account deleted" }, "deleteServiceAccountsToast": { "message": "Service accounts deleted" @@ -6036,8 +6036,8 @@ "message": "存取權杖", "description": "Title for the section displaying access tokens." }, - "createAccessToken": { - "message": "建立存取權杖", + "newAccessToken": { + "message": "New access token", "description": "Button label for creating a new access token." }, "expires": { From 7e905d518bf5ad2ebbf1581a8ae549524a387843 Mon Sep 17 00:00:00 2001 From: Andreas Coroiu Date: Fri, 24 Mar 2023 09:39:22 +0100 Subject: [PATCH 07/39] [AC-471] Cloud update subscription page (#4897) * [AC-471] feat: update copy * [AC-471] feat: change text color when expired * [AC-471] feat: remove charge amount --- .../organization-subscription-cloud.component.html | 14 +++++--------- .../organization-subscription-cloud.component.ts | 10 ++++++++++ apps/web/src/locales/en/messages.json | 3 +++ 3 files changed, 18 insertions(+), 9 deletions(-) diff --git a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html index 717ceaf563a8..c92b09c7e312 100644 --- a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html +++ b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.html @@ -55,15 +55,11 @@

"pendingCancellation" | i18n }} -
{{ "nextCharge" | i18n }}
-
- {{ - nextInvoice - ? (nextInvoice.date | date : "mediumDate") + - ", " + - (nextInvoice.amount | currency : "$") - : "-" - }} +
+ {{ "subscriptionExpiration" | i18n }} +
+
+ {{ nextInvoice ? (nextInvoice.date | date : "mediumDate") : "-" }}
diff --git a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts index 1a4fa29201fc..0af283c95af0 100644 --- a/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts +++ b/apps/web/src/app/billing/organizations/organization-subscription-cloud.component.ts @@ -99,6 +99,16 @@ export class OrganizationSubscriptionCloudComponent implements OnInit, OnDestroy return this.sub != null ? this.sub.upcomingInvoice : null; } + get isExpired() { + const nextInvoice = this.nextInvoice; + + if (nextInvoice == null) { + return false; + } + + return new Date(nextInvoice.date).getTime() < Date.now(); + } + get storagePercentage() { return this.sub != null && this.sub.maxStorageGb ? +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) diff --git a/apps/web/src/locales/en/messages.json b/apps/web/src/locales/en/messages.json index b63fa130d852..02ecb4ca2195 100644 --- a/apps/web/src/locales/en/messages.json +++ b/apps/web/src/locales/en/messages.json @@ -2020,6 +2020,9 @@ "cancelSubscription": { "message": "Cancel subscription" }, + "subscriptionExpiration": { + "message": "Subscription expiration" + }, "subscriptionCanceled": { "message": "The subscription has been canceled." }, From a931f5b9bddf2d739e5d46583beece0e5b060fc2 Mon Sep 17 00:00:00 2001 From: Daniel James Smith Date: Fri, 24 Mar 2023 11:24:10 +0100 Subject: [PATCH 08/39] Skip build for browser/desktop on importer changes (#5074) The importers recently got extracted from libs/common. As the import functionality is currently limited to the web and cli, there is no need to build browser and desktop as there won't be any changes. This will free up some runners for other workflows (GH actions) to get faster builds that actually impact browser and desktop. Another benefit is faster feedback on the PR-checks for those two --- .github/workflows/build-browser.yml | 2 ++ .github/workflows/build-desktop.yml | 2 ++ 2 files changed, 4 insertions(+) diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index e54dc936eb4f..18e7f752bd9a 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -10,6 +10,7 @@ on: - 'apps/browser/**' - 'libs/**' - '*' + - '!libs/importer' - '!*.md' - '!*.txt' push: @@ -21,6 +22,7 @@ on: - 'apps/browser/**' - 'libs/**' - '*' + - '!libs/importer' - '!*.md' - '!*.txt' - '.github/workflows/build-browser.yml' diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index f92ae8a71e4f..586e0f6d6e37 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -10,6 +10,7 @@ on: - 'apps/desktop/**' - 'libs/**' - '*' + - '!libs/importer' - '!*.md' - '!*.txt' - '.github/workflows/build-desktop.yml' @@ -22,6 +23,7 @@ on: - 'apps/desktop/**' - 'libs/**' - '*' + - '!libs/importer' - '!*.md' - '!*.txt' - '.github/workflows/build-desktop.yml' From 846b15d6d33c13254ac1c81c539c41e9bb49cf96 Mon Sep 17 00:00:00 2001 From: aj-rosado <109146700+aj-rosado@users.noreply.github.com> Date: Mon, 27 Mar 2023 11:48:46 +0100 Subject: [PATCH 09/39] [PM-1195] Creating a copy of 'this' on ToJson so that it doesn't change the current view. (#5062) --- libs/common/src/models/view/send.view.ts | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/libs/common/src/models/view/send.view.ts b/libs/common/src/models/view/send.view.ts index c5da1d2f683c..18846a4f1f63 100644 --- a/libs/common/src/models/view/send.view.ts +++ b/libs/common/src/models/view/send.view.ts @@ -68,9 +68,12 @@ export class SendView implements View { } toJSON() { - return Utils.merge(this, { - key: Utils.fromBufferToB64(this.key), - }); + return Utils.merge( + { ...this }, + { + key: Utils.fromBufferToB64(this.key), + } + ); } static fromJSON(json: DeepJsonify) { From c241e5e0b9fc4a84ef7abc5fa3097c11da58cac7 Mon Sep 17 00:00:00 2001 From: SmithThe4th Date: Mon, 27 Mar 2023 09:36:57 -0400 Subject: [PATCH 10/39] [PM-1408] Vault Items with null Folder Value not Handled Correctly (#5066) * Added optional chaining to folder view object to handle when the foilder value is null * Set folder to null during cleanup and added check on the view component to check if the folder is nul before rendering the html --- apps/desktop/src/vault/app/vault/view.component.html | 2 +- libs/angular/src/vault/components/view.component.ts | 1 + 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/apps/desktop/src/vault/app/vault/view.component.html b/apps/desktop/src/vault/app/vault/view.component.html index 3c2c11a56277..557e7e4f4fcc 100644 --- a/apps/desktop/src/vault/app/vault/view.component.html +++ b/apps/desktop/src/vault/app/vault/view.component.html @@ -440,7 +440,7 @@

-
+