diff --git a/.eslintrc.json b/.eslintrc.json index 44b4e09adf2..2dab9179011 100644 --- a/.eslintrc.json +++ b/.eslintrc.json @@ -104,10 +104,7 @@ ] } ], - "no-restricted-imports": [ - "error", - { "patterns": ["src/**/*"], "paths": ["@fluffy-spoon/substitute"] } - ] + "no-restricted-imports": ["error", { "patterns": ["src/**/*"] }] } }, { diff --git a/.github/CODEOWNERS b/.github/CODEOWNERS index a70774b5e1d..aaa5b269ffa 100644 --- a/.github/CODEOWNERS +++ b/.github/CODEOWNERS @@ -105,3 +105,9 @@ apps/web/src/locales/en/messages.json ## DevOps team files ## /.github/workflows @bitwarden/dept-devops + +# DevOps for Docker changes. +**/Dockerfile @bitwarden/dept-devops +**/*.Dockerfile @bitwarden/dept-devops +**/.dockerignore @bitwarden/dept-devops +**/entrypoint.sh @bitwarden/dept-devops diff --git a/.github/renovate.json b/.github/renovate.json index 81dea677317..57bcc8d2e4d 100644 --- a/.github/renovate.json +++ b/.github/renovate.json @@ -43,13 +43,5 @@ "matchUpdateTypes": "major" } ], - "ignoreDeps": [ - "@types/koa-bodyparser", - "bootstrap", - "electron-builder", - "electron", - "node-ipc", - "regedit", - "zone.js" - ] + "ignoreDeps": ["@types/koa-bodyparser", "bootstrap", "node-ipc", "regedit", "zone.js"] } diff --git a/.github/workflows/brew-bump-cli.yml b/.github/workflows/brew-bump-cli.yml index 8273ab00e80..6810a4a7832 100644 --- a/.github/workflows/brew-bump-cli.yml +++ b/.github/workflows/brew-bump-cli.yml @@ -23,7 +23,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "brew-bump-workflow-pat" diff --git a/.github/workflows/brew-bump-desktop.yml b/.github/workflows/brew-bump-desktop.yml index 4032f5883a0..598ba6039b4 100644 --- a/.github/workflows/brew-bump-desktop.yml +++ b/.github/workflows/brew-bump-desktop.yml @@ -23,7 +23,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "brew-bump-workflow-pat" diff --git a/.github/workflows/build-browser.yml b/.github/workflows/build-browser.yml index f2441c79536..149c995fef0 100644 --- a/.github/workflows/build-browser.yml +++ b/.github/workflows/build-browser.yml @@ -375,7 +375,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" @@ -437,7 +437,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" diff --git a/.github/workflows/build-cli.yml b/.github/workflows/build-cli.yml index ffffdccb8a7..9f68857be02 100644 --- a/.github/workflows/build-cli.yml +++ b/.github/workflows/build-cli.yml @@ -415,7 +415,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" diff --git a/.github/workflows/build-desktop.yml b/.github/workflows/build-desktop.yml index 8b0482c3671..aba5cb341a2 100644 --- a/.github/workflows/build-desktop.yml +++ b/.github/workflows/build-desktop.yml @@ -287,7 +287,7 @@ jobs: node-gyp install $(node -v) - name: Install AST - uses: bitwarden/gh-actions/install-ast@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/install-ast@master - name: Set up environmentF run: choco install checksum --no-progress @@ -312,7 +312,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "code-signing-vault-url, @@ -1204,7 +1204,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" @@ -1283,7 +1283,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" diff --git a/.github/workflows/build-web.yml b/.github/workflows/build-web.yml index d0360b4a4ed..2e53dbe8768 100644 --- a/.github/workflows/build-web.yml +++ b/.github/workflows/build-web.yml @@ -197,7 +197,7 @@ jobs: - name: Retrieve github PAT secrets id: retrieve-secret-pat - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "github-pat-bitwarden-devops-bot-repo-scope" @@ -273,7 +273,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token" @@ -334,7 +334,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets if: failure() - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "devops-alerts-slack-webhook-url" diff --git a/.github/workflows/crowdin-pull.yml b/.github/workflows/crowdin-pull.yml index 0ff79d68296..2bae7bce597 100644 --- a/.github/workflows/crowdin-pull.yml +++ b/.github/workflows/crowdin-pull.yml @@ -32,13 +32,13 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "crowdin-api-token, github-gpg-private-key, github-gpg-private-key-passphrase" - name: Download translations - uses: bitwarden/gh-actions/crowdin@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/crowdin@master env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} CROWDIN_API_TOKEN: ${{ steps.retrieve-secrets.outputs.crowdin-api-token }} diff --git a/.github/workflows/deploy-eu-prod-web.yml b/.github/workflows/deploy-eu-prod-web.yml index aeb5d2c0197..9242fc0a011 100644 --- a/.github/workflows/deploy-eu-prod-web.yml +++ b/.github/workflows/deploy-eu-prod-web.yml @@ -24,13 +24,13 @@ jobs: - name: Retrieve Storage Account connection string id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: webvault-westeurope-prod secrets: "sa-bitwarden-web-vault-dev-key-temp" - name: Download latest cloud asset - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: apps/web diff --git a/.github/workflows/deploy-eu-qa-web.yml b/.github/workflows/deploy-eu-qa-web.yml index 0b71fbc9981..dfe7198b588 100644 --- a/.github/workflows/deploy-eu-qa-web.yml +++ b/.github/workflows/deploy-eu-qa-web.yml @@ -24,13 +24,13 @@ jobs: - name: Retrieve Storage Account connection string id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: webvaulteu-westeurope-qa secrets: "sa-bitwarden-web-vault-dev-key-temp" - name: Download latest cloud asset - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: apps/web diff --git a/.github/workflows/deploy-non-prod-web.yml b/.github/workflows/deploy-non-prod-web.yml index 8e5b8f5c9f3..4c9f496fc89 100644 --- a/.github/workflows/deploy-non-prod-web.yml +++ b/.github/workflows/deploy-non-prod-web.yml @@ -41,11 +41,55 @@ jobs: echo "environment-branch=cf-pages-$ENV_NAME_LOWER" >> $GITHUB_OUTPUT echo "environment-artifact=web-*-cloud-${{ inputs.environment }}.zip" >> $GITHUB_OUTPUT + artifact-check: + name: Check if Web artifact is present + runs-on: ubuntu-22.04 + needs: setup + env: + _ENVIRONMENT_ARTIFACT: ${{ needs.setup.outputs.environment-artifact }} + steps: + - name: Download latest cloud asset + uses: bitwarden/gh-actions/download-artifacts@master + id: download-artifacts + continue-on-error: true + with: + workflow: build-web.yml + path: apps/web + workflow_conclusion: success + branch: ${{ github.ref_name }} + artifacts: ${{ env._ENVIRONMENT_ARTIFACT }} + + - name: Login to Azure + if: ${{ steps.download-artifacts.outcome == 'failure' }} + uses: Azure/login@92a5484dfaf04ca78a94597f4f19fea633851fa2 # v1.4.7 + with: + creds: ${{ secrets.AZURE_KV_CI_SERVICE_PRINCIPAL }} + + - name: Retrieve secrets for Build trigger + if: ${{ steps.download-artifacts.outcome == 'failure' }} + id: retrieve-secret + uses: bitwarden/gh-actions/get-keyvault-secrets@master + with: + keyvault: "bitwarden-ci" + secrets: "github-pat-bitwarden-devops-bot-repo-scope" + + - name: Build server missing branch + if: ${{ steps.download-artifacts.outcome == 'failure' }} + uses: convictional/trigger-workflow-and-wait@f69fa9eedd3c62a599220f4d5745230e237904be # v1.6.5 + with: + owner: bitwarden + repo: clients + github_token: ${{ steps.retrieve-secret.outputs.github-pat-bitwarden-devops-bot-repo-scope }} + workflow_file_name: build-web.yml + ref: ${{ github.ref_name }} + wait_interval: 100 cfpages-deploy: name: Deploy Web Vault to ${{ inputs.environment }} CloudFlare Pages branch - needs: setup - runs-on: ubuntu-20.04 + needs: + - setup + - artifact-check + runs-on: ubuntu-22.04 env: _ENVIRONMENT: ${{ needs.setup.outputs.environment }} _ENVIRONMENT_URL: ${{ needs.setup.outputs.environment-url }} @@ -67,7 +111,7 @@ jobs: uses: actions/checkout@c85c95e3d7251135ab7dc9ce3241c5835cc595a9 # v3.5.3 - name: Download latest cloud asset - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: apps/web diff --git a/.github/workflows/release-browser.yml b/.github/workflows/release-browser.yml index 32cf8d18546..f690cd6fa42 100644 --- a/.github/workflows/release-browser.yml +++ b/.github/workflows/release-browser.yml @@ -41,7 +41,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/release-version-check@master with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -103,7 +103,7 @@ jobs: - name: Download latest Release build artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-browser.yml workflow_conclusion: success @@ -116,7 +116,7 @@ jobs: - name: Dry Run - Download latest master build artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-browser.yml workflow_conclusion: success diff --git a/.github/workflows/release-cli.yml b/.github/workflows/release-cli.yml index 04a8a04f4f5..64f2c337e2d 100644 --- a/.github/workflows/release-cli.yml +++ b/.github/workflows/release-cli.yml @@ -57,7 +57,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/release-version-check@master with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -78,7 +78,7 @@ jobs: - name: Download all Release artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli @@ -87,7 +87,7 @@ jobs: - name: Dry Run - Download all artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli @@ -150,7 +150,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "snapcraft-store-token" @@ -160,7 +160,7 @@ jobs: - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli @@ -170,7 +170,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli @@ -204,7 +204,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "cli-choco-api-key" @@ -220,7 +220,7 @@ jobs: - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli/dist @@ -230,7 +230,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli/dist @@ -263,14 +263,14 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "npm-api-key" - name: Download artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli/build @@ -280,7 +280,7 @@ jobs: - name: Dry Run - Download artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-cli.yml path: apps/cli/build diff --git a/.github/workflows/release-desktop-beta.yml b/.github/workflows/release-desktop-beta.yml index b2e568632b5..1c58e52a65d 100644 --- a/.github/workflows/release-desktop-beta.yml +++ b/.github/workflows/release-desktop-beta.yml @@ -48,7 +48,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/release-version-check@master with: release-type: 'Initial Release' project-type: ts @@ -241,7 +241,7 @@ jobs: node-gyp install $(node -v) - name: Install AST - uses: bitwarden/gh-actions/install-ast@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/install-ast@master - name: Set up environment run: choco install checksum --no-progress @@ -259,7 +259,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "code-signing-vault-url, @@ -945,7 +945,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, diff --git a/.github/workflows/release-desktop.yml b/.github/workflows/release-desktop.yml index b9ffa80e512..1cf19d7a4e9 100644 --- a/.github/workflows/release-desktop.yml +++ b/.github/workflows/release-desktop.yml @@ -67,7 +67,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/release-version-check@master with: release-type: ${{ inputs.release_type }} project-type: ts @@ -110,7 +110,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, @@ -123,7 +123,7 @@ jobs: - name: Download all artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success @@ -132,7 +132,7 @@ jobs: - name: Dry Run - Download all artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success @@ -185,7 +185,7 @@ jobs: --endpoint-url https://${CF_ACCOUNT}.r2.cloudflarestorage.com - name: Get checksum files - uses: bitwarden/gh-actions/get-checksum@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-checksum@master with: packages_dir: "apps/desktop/artifacts" file_path: "apps/desktop/artifacts/sha256-checksums.txt" @@ -263,7 +263,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "snapcraft-store-token" @@ -277,7 +277,7 @@ jobs: - name: Download Snap artifact if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success @@ -287,7 +287,7 @@ jobs: - name: Dry Run - Download Snap artifact if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success @@ -327,7 +327,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "cli-choco-api-key" @@ -345,7 +345,7 @@ jobs: - name: Download choco artifact if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success @@ -355,7 +355,7 @@ jobs: - name: Dry Run - Download choco artifact if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-desktop.yml workflow_conclusion: success diff --git a/.github/workflows/release-web.yml b/.github/workflows/release-web.yml index cbf83dc9cdf..10f212c0a31 100644 --- a/.github/workflows/release-web.yml +++ b/.github/workflows/release-web.yml @@ -41,7 +41,7 @@ jobs: - name: Check Release Version id: version - uses: bitwarden/gh-actions/release-version-check@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/release-version-check@master with: release-type: ${{ github.event.inputs.release_type }} project-type: ts @@ -130,7 +130,7 @@ jobs: - name: Retrieve bot secrets id: retrieve-bot-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: bitwarden-ci secrets: "github-pat-bitwarden-devops-bot-repo-scope" @@ -144,7 +144,7 @@ jobs: - name: Download latest cloud asset if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: assets @@ -154,7 +154,7 @@ jobs: - name: Dry Run - Download latest cloud asset if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: assets @@ -227,7 +227,7 @@ jobs: - name: Download latest build artifacts if: ${{ github.event.inputs.release_type != 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: apps/web/artifacts @@ -238,7 +238,7 @@ jobs: - name: Dry Run - Download latest build artifacts if: ${{ github.event.inputs.release_type == 'Dry Run' }} - uses: bitwarden/gh-actions/download-artifacts@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/download-artifacts@master with: workflow: build-web.yml path: apps/web/artifacts diff --git a/.github/workflows/staged-rollout-desktop.yml b/.github/workflows/staged-rollout-desktop.yml index a3eacb868fd..837569cd8fe 100644 --- a/.github/workflows/staged-rollout-desktop.yml +++ b/.github/workflows/staged-rollout-desktop.yml @@ -26,7 +26,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "aws-electron-access-id, diff --git a/.github/workflows/version-bump.yml b/.github/workflows/version-bump.yml index 14755097b0e..c2b1d2c9618 100644 --- a/.github/workflows/version-bump.yml +++ b/.github/workflows/version-bump.yml @@ -54,7 +54,7 @@ jobs: - name: Retrieve secrets id: retrieve-secrets - uses: bitwarden/gh-actions/get-keyvault-secrets@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/get-keyvault-secrets@master with: keyvault: "bitwarden-ci" secrets: "github-gpg-private-key, github-gpg-private-key-passphrase" @@ -100,7 +100,7 @@ jobs: - name: Browser - Verify input version if: ${{ inputs.bump_browser == true }} env: - NEW_VERSION: ${{ inputs.version_number }} + NEW_VERSION: ${{ inputs.version_number }} run: | CURRENT_VERSION=$(cat package.json | jq -r '.version') @@ -112,8 +112,8 @@ jobs: # Check if version is newer. printf '%s\n' "${CURRENT_VERSION}" "${NEW_VERSION}" | sort -C -V - if [ $? -eq 0 ]; then - echo "Version check successful." + if [ $? -eq 0 ]; then + echo "Version check successful." fi working-directory: apps/browser @@ -125,14 +125,14 @@ jobs: - name: Bump Browser Version - Manifest if: ${{ inputs.bump_browser == true }} - uses: bitwarden/gh-actions/version-bump@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/version-bump@master with: version: ${{ inputs.version_number }} file_path: "apps/browser/src/manifest.json" - name: Bump Browser Version - Manifest v3 if: ${{ inputs.bump_browser == true }} - uses: bitwarden/gh-actions/version-bump@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/version-bump@master with: version: ${{ inputs.version_number }} file_path: "apps/browser/src/manifest.v3.json" @@ -148,7 +148,7 @@ jobs: - name: CLI - Verify input version if: ${{ inputs.bump_cli == true }} env: - NEW_VERSION: ${{ inputs.version_number }} + NEW_VERSION: ${{ inputs.version_number }} run: | CURRENT_VERSION=$(cat package.json | jq -r '.version') @@ -160,8 +160,8 @@ jobs: # Check if version is newer. printf '%s\n' "${CURRENT_VERSION}" "${NEW_VERSION}" | sort -C -V - if [ $? -eq 0 ]; then - echo "Version check successful." + if [ $? -eq 0 ]; then + echo "Version check successful." fi working-directory: apps/cli @@ -175,7 +175,7 @@ jobs: - name: Desktop - Verify input version if: ${{ inputs.bump_desktop == true }} env: - NEW_VERSION: ${{ inputs.version_number }} + NEW_VERSION: ${{ inputs.version_number }} run: | CURRENT_VERSION=$(cat package.json | jq -r '.version') @@ -187,8 +187,8 @@ jobs: # Check if version is newer. printf '%s\n' "${CURRENT_VERSION}" "${NEW_VERSION}" | sort -C -V - if [ $? -eq 0 ]; then - echo "Version check successful." + if [ $? -eq 0 ]; then + echo "Version check successful." fi working-directory: apps/desktop @@ -209,7 +209,7 @@ jobs: - name: Web - Verify input version if: ${{ inputs.bump_web == true }} env: - NEW_VERSION: ${{ inputs.version_number }} + NEW_VERSION: ${{ inputs.version_number }} run: | CURRENT_VERSION=$(cat package.json | jq -r '.version') @@ -221,8 +221,8 @@ jobs: # Check if version is newer. printf '%s\n' "${CURRENT_VERSION}" "${NEW_VERSION}" | sort -C -V - if [ $? -eq 0 ]; then - echo "Version check successful." + if [ $? -eq 0 ]; then + echo "Version check successful." fi working-directory: apps/web diff --git a/.github/workflows/workflow-linter.yml b/.github/workflows/workflow-linter.yml index 49388c11f82..9fda2eee0a1 100644 --- a/.github/workflows/workflow-linter.yml +++ b/.github/workflows/workflow-linter.yml @@ -8,4 +8,4 @@ on: jobs: call-workflow: - uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@f1125802b1ccae8c601d7c4f61ce39ea254b10c8 + uses: bitwarden/gh-actions/.github/workflows/workflow-linter.yml@master diff --git a/.gitignore b/.gitignore index 11a4d4c80ff..6dea4b43f16 100644 --- a/.gitignore +++ b/.gitignore @@ -42,3 +42,6 @@ junit.xml documentation.json .eslintcache storybook-static + +# Local app configuration +apps/**/config/local.json diff --git a/apps/browser/.gitignore b/apps/browser/.gitignore index 7a689bdb9f0..87b21b97308 100644 --- a/apps/browser/.gitignore +++ b/apps/browser/.gitignore @@ -1,3 +1,5 @@ +config/local.json + # Safari dist-safari !src/safari/safari/app/popup/index.html diff --git a/apps/browser/config/base.json b/apps/browser/config/base.json index 348f00d1f36..8a3ccc14d3c 100644 --- a/apps/browser/config/base.json +++ b/apps/browser/config/base.json @@ -2,6 +2,7 @@ "dev_flags": {}, "flags": { "showPasswordless": true, - "enableCipherKeyEncryption": false + "enableCipherKeyEncryption": false, + "accountSwitching": false } } diff --git a/apps/browser/package.json b/apps/browser/package.json index 4e17fd4288d..42f6f088326 100644 --- a/apps/browser/package.json +++ b/apps/browser/package.json @@ -1,6 +1,6 @@ { "name": "@bitwarden/browser", - "version": "2023.9.2", + "version": "2023.10.0", "scripts": { "build": "webpack", "build:mv3": "cross-env MANIFEST_VERSION=3 webpack", diff --git a/apps/browser/src/_locales/ar/messages.json b/apps/browser/src/_locales/ar/messages.json index c3ba5c4a950..bf9ea103cfb 100644 --- a/apps/browser/src/_locales/ar/messages.json +++ b/apps/browser/src/_locales/ar/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "الهوية" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "سجل كلمة المرور" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "النطاقات المستبعدة" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/az/messages.json b/apps/browser/src/_locales/az/messages.json index 483dc2c14f1..2be5d8d0c2f 100644 --- a/apps/browser/src/_locales/az/messages.json +++ b/apps/browser/src/_locales/az/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Kimlik" }, + "typePasskey": { + "message": "Keçid açarı" + }, "passwordHistory": { "message": "Parol tarixçəsi" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "İstisna edilən domenlər" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Bu sahəyə düzəliş etmək üçün \"Ana parolu təkrar soruş\"u söndürün", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Keçid açarı kopyalanmır" + }, + "passkeyNotCopiedAlert": { + "message": "Keçid açarı, klonlanmış elementə kopyalanmayacaq. Bu elementi klonlamağa davam etmək istəyirsiniz?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Başladan saytın tələb etdiyi doğrulama. Bu özəllik, hələlik ana parolu olmayan hesablara tətbiq olunmur." + }, + "logInWithPasskey": { + "message": "Keçid açarı ilə giriş edilsin?" + }, + "passkeyAlreadyExists": { + "message": "Bu tətbiq üçün bir keçid açarı artıq mövcuddur." + }, + "noPasskeysFoundForThisApplication": { + "message": "Bu tətbiq üçün heç bir keçid açarı tapılmadı." + }, + "noMatchingPasskeyLogin": { + "message": "Bu sayt üçün uyğunlaşan bir giriş məlumatınız yoxdur." + }, + "confirm": { + "message": "Təsdiqlə" + }, + "savePasskey": { + "message": "Keçid açarını saxla" + }, + "savePasskeyNewLogin": { + "message": "Keçid açarını yeni bir giriş olaraq saxla" + }, + "choosePasskey": { + "message": "Bu keçid açarını saxlayacaq bir giriş seçin" + }, + "passkeyItem": { + "message": "Keçid açarı elementi" + }, + "overwritePasskey": { + "message": "Keçid açarının üzərinə yazılsın?" + }, + "overwritePasskeyAlert": { + "message": "Bu elementdə artıq bir keçid açarı var. Hazırkı keçid açarının üzərinə yazmaq istədiyinizə əminsiniz?" + }, + "featureNotSupported": { + "message": "Özəllik hələ dəstəklənmir" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/be/messages.json b/apps/browser/src/_locales/be/messages.json index d0c1bac2bb7..677087b8bb1 100644 --- a/apps/browser/src/_locales/be/messages.json +++ b/apps/browser/src/_locales/be/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Пасведчанне" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Гісторыя пароляў" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Палітыка арганізацыі ўплывае на вашы параметры ўласнасці." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Выключаныя дамены" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/bg/messages.json b/apps/browser/src/_locales/bg/messages.json index c96fadbd422..a2720126677 100644 --- a/apps/browser/src/_locales/bg/messages.json +++ b/apps/browser/src/_locales/bg/messages.json @@ -83,7 +83,7 @@ "message": "Копиране на потребителското име" }, "copyNumber": { - "message": "Копиране на номера" + "message": "Копиране на но̀мера" }, "copySecurityCode": { "message": "Копиране на кода за сигурност" @@ -257,7 +257,7 @@ "message": "Избор" }, "generatePassword": { - "message": "Генериране на парола" + "message": "Нова парола" }, "regeneratePassword": { "message": "Регенериране на паролата" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Самоличност" }, + "typePasskey": { + "message": "Секретен ключ" + }, "passwordHistory": { "message": "Хронология на паролата" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Политика от някоя организация влияе на вариантите за собственост." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Политика на организацията забранява да внасяте елементи в личния си трезор." + }, "excludedDomains": { "message": "Изключени домейни" }, @@ -2183,13 +2189,13 @@ "message": "Exposed Master Password" }, "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": "Паролата е намерена в пробив на данни. Използвайте уникална парола, за да защитите вашия акаунт. Наистина ли искате да използвате слаба парола?" }, "weakAndExposedMasterPassword": { "message": "Weak and Exposed Master Password" }, "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": "Разпозната е слаба парола, която присъства в известен случай на изтекли данни. Използвайте сложна и уникална парола, за да защитите данните си. Наистина ли искате да използвате тази парола?" }, "checkForBreaches": { "message": "Проверяване в известните случаи на изтекли данни за тази парола" @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Изключете повторното въвеждане на главната парола, за да редактирате това поле", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Внасяне на данни", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Грешка при внасянето" + }, + "importErrorDesc": { + "message": "Има проблем с данните, които внасяте. Поправете грешките посочени по-долу и пробвайте отново." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Оправете грешките по-долу и опитайте отново." + }, + "description": { + "message": "Описание" + }, + "importSuccess": { + "message": "Данните са внесени успешно" + }, + "importSuccessNumberOfItems": { + "message": "Общо внесени елементи: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Общо" + }, + "importWarning": { + "message": "Внасяте данни към организацията „$ORGANIZATION$“. Данните могат да бъдат споделени с членовете ѝ. Сигурни ли сте, че искате да продължите?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Данните са в неправилен формат. Проверете файла за внасяне и пробвайте отново." + }, + "importNothingError": { + "message": "Нищо не бе внесено." + }, + "importEncKeyError": { + "message": "Грешка при дешифрирането на изнесения файл. Ключът за шифриране не отговаря на този, който е използван за изнасянето на данните." + }, + "importDestination": { + "message": "Място на внасяне" + }, + "learnAboutImportOptions": { + "message": "Научете повече относно възможностите за внасяне" + }, + "selectImportFolder": { + "message": "Изберете папка" + }, + "selectImportCollection": { + "message": "Изберете колекция" + }, + "importTargetHint": { + "message": "Изберете тази опция, ако искате съдържанието на внесения файл да бъде преместено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файлът съдържа невъзложени елементи." + }, + "selectFormat": { + "message": "Избор на форма̀та на файла за внасяне" + }, + "selectImportFile": { + "message": "Изберете файла за внасяне" + }, + "chooseFile": { + "message": "Изберете файл" + }, + "noFileChosen": { + "message": "Не е избран файл" + }, + "orCopyPasteFileContents": { + "message": "или поставете съдържанието му" + }, + "instructionsFor": { + "message": "Инструкции за $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Потвърждаване на внасянето на трезора" + }, + "confirmVaultImportDesc": { + "message": "Този файл е защитен с парола. Трябва да въведете паролата, за да могат данните да бъдат внесени." + }, + "confirmFilePassword": { + "message": "Потвърждаване на паролата на файла" + }, + "passkeyNotCopied": { + "message": "Секретният ключ няма да бъде копиран" + }, + "passkeyNotCopiedAlert": { + "message": "Секретният ключ няма да бъде копиран в клонирания елемент. Искате ли да продължите с клонирането на елемента?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Вписване със секретен ключ?" + }, + "passkeyAlreadyExists": { + "message": "За това приложение вече съществува секретен ключ." + }, + "noPasskeysFoundForThisApplication": { + "message": "Няма намерени секретни ключове за това приложение." + }, + "noMatchingPasskeyLogin": { + "message": "Нямате елемент за вписване, подходящ за този уеб сайт." + }, + "confirm": { + "message": "Потвърждаване" + }, + "savePasskey": { + "message": "Запазване на секретния ключ" + }, + "savePasskeyNewLogin": { + "message": "Запазване на секретния ключ като нов елемент за вписване" + }, + "choosePasskey": { + "message": "Изберете елемент, в който да запазите този секретен ключ" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Да се замени ли секретният ключ?" + }, + "overwritePasskeyAlert": { + "message": "Този елемент вече съдържа секретен ключ. Наистина ли искате да замените текущия секретен ключ?" + }, + "featureNotSupported": { + "message": "Тази функционалност все още не се поддържа" + }, + "yourPasskeyIsLocked": { + "message": "За да се ползва секретният ключ, е необходимо удостоверяване. Потвърдете самоличността си, за да продължите." + }, + "useBrowserName": { + "message": "Използване на браузъра" } } diff --git a/apps/browser/src/_locales/bn/messages.json b/apps/browser/src/_locales/bn/messages.json index f8c5fb8c85b..2af3d6bc463 100644 --- a/apps/browser/src/_locales/bn/messages.json +++ b/apps/browser/src/_locales/bn/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "পরিচয়" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "পাসওয়ার্ড ইতিহাস" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "একটি প্রতিষ্ঠানের নীতি আপনার মালিকানা বিকল্পগুলিকে প্রভাবিত করছে।" }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/bs/messages.json b/apps/browser/src/_locales/bs/messages.json index d5d1bbb16a6..c4f3faa4833 100644 --- a/apps/browser/src/_locales/bs/messages.json +++ b/apps/browser/src/_locales/bs/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/ca/messages.json b/apps/browser/src/_locales/ca/messages.json index af85e586c80..b8afe3003e7 100644 --- a/apps/browser/src/_locales/ca/messages.json +++ b/apps/browser/src/_locales/ca/messages.json @@ -92,13 +92,13 @@ "message": "Emplenament automàtic" }, "autoFillLogin": { - "message": "Auto-fill login" + "message": "Emplena automàticament l'inici de sessió" }, "autoFillCard": { - "message": "Auto-fill card" + "message": "Emplena automàticament la targeta" }, "autoFillIdentity": { - "message": "Auto-fill identity" + "message": "Emplena automàticament l'identitat" }, "generatePasswordCopied": { "message": "Genera contrasenya (copiada)" @@ -110,19 +110,19 @@ "message": "No hi ha inicis de sessió coincidents." }, "noCards": { - "message": "No cards" + "message": "Sense targetes" }, "noIdentities": { - "message": "No identities" + "message": "Sense identitats" }, "addLoginMenu": { - "message": "Add login" + "message": "Afig inici de sessió" }, "addCardMenu": { - "message": "Add card" + "message": "Afig una targeta" }, "addIdentityMenu": { - "message": "Add identity" + "message": "Afig identitat" }, "unlockVaultMenu": { "message": "1. Desbloquegeu la caixa forta." @@ -796,7 +796,7 @@ "message": "Característica no disponible" }, "encryptionKeyMigrationRequired": { - "message": "Encryption key migration required. Please login through the web vault to update your encryption key." + "message": "Cal migrar la clau de xifratge. Inicieu la sessió a la caixa forta web per actualitzar la clau de xifratge." }, "premiumMembership": { "message": "Subscripció Premium" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitat" }, + "typePasskey": { + "message": "Clau de pas" + }, "passwordHistory": { "message": "Historial de les contrasenyes" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una política d’organització afecta les vostres opcions de propietat." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una política d'organització ha bloquejat la importació d'elements a la vostra caixa forta individual." + }, "excludedDomains": { "message": "Dominis exclosos" }, @@ -2432,18 +2438,177 @@ "description": "Toggling an expand/collapse state." }, "aliasDomain": { - "message": "Alias domain" + "message": "Alies de domini" }, "passwordRepromptDisabledAutofillOnPageLoad": { - "message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.", + "message": "Els elements amb una nova sol·licitud de contrasenya mestra no es poden omplir automàticament en carregar la pàgina. L'emplenament automàtic en carregar de la pàgina està desactivat.", "description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load." }, "autofillOnPageLoadSetToDefault": { - "message": "Auto-fill on page load set to use default setting.", + "message": "S'ha configurat l'emplenament automàtic en carregar la pàgina per que utilitze la configuració predeterminada.", "description": "Toast message for informing the user that auto-fill on page load has been set to the default setting." }, "turnOffMasterPasswordPromptToEditField": { - "message": "Turn off master password re-prompt to edit this field", + "message": "Desactiveu la sol·licitud de nova contrasenya mestra per editar aquest camp", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importa dades", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Error d'importació" + }, + "importErrorDesc": { + "message": "Hi ha hagut un problema amb les dades que heu intentat importar. Resoleu els errors que es mostren a continuació al fitxer font i torneu-ho a provar." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resoleu els errors següents i torneu-ho a provar." + }, + "description": { + "message": "Descripció" + }, + "importSuccess": { + "message": "Les dades s'han importat correctament" + }, + "importSuccessNumberOfItems": { + "message": "S'han importat un total de $AMOUNT$ elements.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Esteu important dades a $ORGANIZATION$. Les vostres dades es poden compartir amb membres d'aquesta organització. Voleu continuar?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Les dades no estan formatades correctament. Comproveu el fitxer d'importació i torneu-ho a provar." + }, + "importNothingError": { + "message": "No s'ha importat res." + }, + "importEncKeyError": { + "message": "Error en desxifrar el fitxer exportat. La vostra clau de xifratge no coincideix amb la clau de xifratge utilitzada per exportar les dades." + }, + "importDestination": { + "message": "Destinació de la importació" + }, + "learnAboutImportOptions": { + "message": "Obteniu informació sobre les opcions d'importació" + }, + "selectImportFolder": { + "message": "Selecciona una carpeta" + }, + "selectImportCollection": { + "message": "Selecciona una col·lecció" + }, + "importTargetHint": { + "message": "Seleccioneu aquesta opció si voleu que el contingut del fitxer importat es desplace a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "El fitxer conté elements no assignats." + }, + "selectFormat": { + "message": "Seleccioneu el format del fitxer d'importació" + }, + "selectImportFile": { + "message": "Seleccioneu el fitxer d'importació" + }, + "chooseFile": { + "message": "Trieu fitxer" + }, + "noFileChosen": { + "message": "No s'ha triat cap fitxer" + }, + "orCopyPasteFileContents": { + "message": "o copieu/enganxeu el contingut dels fitxers d'importació" + }, + "instructionsFor": { + "message": "Instruccions de $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirma la importació de la Caixa forta" + }, + "confirmVaultImportDesc": { + "message": "Aquest fitxer està protegit amb contrasenya. Introduïu-la per importar dades." + }, + "confirmFilePassword": { + "message": "Confirma la contrasenya del fitxer" + }, + "passkeyNotCopied": { + "message": "La clau de pas no es copiarà" + }, + "passkeyNotCopiedAlert": { + "message": "La clau de pas no es copiarà a l'element clonat. Voleu continuar clonant aquest element?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verificació requerida pel lloc iniciador. Aquesta funció encara no s'ha implementat per als comptes sense contrasenya mestra." + }, + "logInWithPasskey": { + "message": "Inici de sessió amb clau de pas?" + }, + "passkeyAlreadyExists": { + "message": "Ja hi ha una clau de pas per a aquesta aplicació." + }, + "noPasskeysFoundForThisApplication": { + "message": "No s'han trobat claus de pas per a aquesta aplicació." + }, + "noMatchingPasskeyLogin": { + "message": "No teniu cap inici de sessió que coincidisca amb el d'aquest lloc." + }, + "confirm": { + "message": "Confirma-ho" + }, + "savePasskey": { + "message": "Guarda la clau de pas" + }, + "savePasskeyNewLogin": { + "message": "Guarda la clau de pas com a nou inici de sessió" + }, + "choosePasskey": { + "message": "Trieu un inici de sessió per guardar aquesta clau de pas" + }, + "passkeyItem": { + "message": "Element de clau de pas" + }, + "overwritePasskey": { + "message": "Sobreescriure la clau de pas?" + }, + "overwritePasskeyAlert": { + "message": "Aquest element ja conté una clau de pas. Esteu segur que voleu sobreescriure la actual?" + }, + "featureNotSupported": { + "message": "La característica encara no és compatible" + }, + "yourPasskeyIsLocked": { + "message": "Es requereix autenticació per utilitzar la clau de pas. Verifiqueu la vostra identitat per continuar." + }, + "useBrowserName": { + "message": "Utilitza navegador" } } diff --git a/apps/browser/src/_locales/cs/messages.json b/apps/browser/src/_locales/cs/messages.json index e9b3bf997cd..81ae25ab2da 100644 --- a/apps/browser/src/_locales/cs/messages.json +++ b/apps/browser/src/_locales/cs/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identita" }, + "typePasskey": { + "message": "Přístupový klíč" + }, "passwordHistory": { "message": "Historie hesel" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Zásady organizace ovlivňují možnosti vlastnictví." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zásady organizace zablokovaly importování položek do Vašeho osobního trezoru." + }, "excludedDomains": { "message": "Vyloučené domény" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Pro úpravu tohoto pole vypněte požadavek na hlavní heslo", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importovat data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Chyba importu" + }, + "importErrorDesc": { + "message": "Vyskytl se problém s daty, které jste se pokusili importovat. Vyřešte níže uvedené chyby ve zdrojovém souboru a zkuste to znovu." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Vyřešte chyby níže a zkuste to znovu." + }, + "description": { + "message": "Popis" + }, + "importSuccess": { + "message": "Data byla úspěšně importována" + }, + "importSuccessNumberOfItems": { + "message": "Bylo importováno celkem $AMOUNT$ položek.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Celkem" + }, + "importWarning": { + "message": "Importujete data do organizace $ORGANIZATION$. Vaše data mohou být sdílena s členy této organizace. Chcete pokračovat?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data nemají správný formát. Zkontrolujte importovaný soubor a zkuste to znovu." + }, + "importNothingError": { + "message": "Nebylo nic importováno." + }, + "importEncKeyError": { + "message": "Chyba při dešifrování exportovaného souboru. Váš šifrovací klíč se neshoduje s klíčem použitým během exportu dat." + }, + "importDestination": { + "message": "Cíl importu" + }, + "learnAboutImportOptions": { + "message": "Více o volbách importu" + }, + "selectImportFolder": { + "message": "Zvolte složku" + }, + "selectImportCollection": { + "message": "Zvolte kolekci" + }, + "importTargetHint": { + "message": "Pokud chcete obsah importovaného souboru přesunout do složky $DESTINATION$, vyberte tuto volbu", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Soubor obsahuje nepřiřazené položky." + }, + "selectFormat": { + "message": "Vyberte formát importovaného souboru" + }, + "selectImportFile": { + "message": "Vyberte soubor pro import" + }, + "chooseFile": { + "message": "Vybrat soubor" + }, + "noFileChosen": { + "message": "Není vybrán žádný soubor" + }, + "orCopyPasteFileContents": { + "message": "nebo zkopírujte a vložte obsah souboru" + }, + "instructionsFor": { + "message": "Instrukce pro $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potvrdit import trezoru" + }, + "confirmVaultImportDesc": { + "message": "Tento soubor je chráněn heslem. Zadejte heslo souboru pro import dat." + }, + "confirmFilePassword": { + "message": "Potvrzení hesla souboru" + }, + "passkeyNotCopied": { + "message": "Přístupový klíč nebude zkopírován" + }, + "passkeyNotCopiedAlert": { + "message": "Přístupový klíč nebude zkopírován do duplikované položky. Chete pokračovat v duplikování této položky?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Ověření vyžadované iniciátorem webu. Tato funkce ještě není implementována pro účty bez hlavního hesla." + }, + "logInWithPasskey": { + "message": "Přihlásit se pomocí přístupového klíče?" + }, + "passkeyAlreadyExists": { + "message": "Přístupový klíč pro tuto aplikaci již existuje." + }, + "noPasskeysFoundForThisApplication": { + "message": "Pro tuto aplikaci nebyly nalezeny žádné přístupové klíče." + }, + "noMatchingPasskeyLogin": { + "message": "Pro tuto stránku nemáte žádné přihlašovací údaje." + }, + "confirm": { + "message": "Potvrdit" + }, + "savePasskey": { + "message": "Uložit přístupový klíč" + }, + "savePasskeyNewLogin": { + "message": "Uložit přístupový klíč jako nové přihlášení" + }, + "choosePasskey": { + "message": "Vyberte přihlášení pro uložení tohoto přístupového klíče" + }, + "passkeyItem": { + "message": "Položka přístupového klíče" + }, + "overwritePasskey": { + "message": "Přepsat přístupový klíč?" + }, + "overwritePasskeyAlert": { + "message": "Tato položka již obsahuje přístupový klíč. Jste si jisti, že chcete přepsat aktuální přístupový klíč?" + }, + "featureNotSupported": { + "message": "Funkce nyní není podporována" + }, + "yourPasskeyIsLocked": { + "message": "Pro použití přístupového klíče je vyžadováno ověření. Chcete-li pokračovat, ověřte svou identitu." + }, + "useBrowserName": { + "message": "Použít prohlížeč" } } diff --git a/apps/browser/src/_locales/cy/messages.json b/apps/browser/src/_locales/cy/messages.json index ff3ccc684f7..10e79db3401 100644 --- a/apps/browser/src/_locales/cy/messages.json +++ b/apps/browser/src/_locales/cy/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Hunaniaeth" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Parthau wedi'u heithrio" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/da/messages.json b/apps/browser/src/_locales/da/messages.json index 5dd437827f3..bbb7f9e1936 100644 --- a/apps/browser/src/_locales/da/messages.json +++ b/apps/browser/src/_locales/da/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitet" }, + "typePasskey": { + "message": "Adgangsnøgle" + }, "passwordHistory": { "message": "Adgangskodehistorik" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "En organisationspolitik påvirker dine ejerskabsmuligheder." }, + "personalOwnershipPolicyInEffectImports": { + "message": "En organisationspolitik hindrer import af emner til den individuelle boks." + }, "excludedDomains": { "message": "Ekskluderede domæner" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Slå anmodning om hovedadgangskode igen fra for at redigere dette felt", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importér data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Importfejl" + }, + "importErrorDesc": { + "message": "Der var et problem med de data, som blev forsøgt importeret. Ret nedenstående fejl i kildefilen, og forsøg igen." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Ret fejlene nedenfor og forsøg igen." + }, + "description": { + "message": "Beskriveslse" + }, + "importSuccess": { + "message": "Data er hermed importeret" + }, + "importSuccessNumberOfItems": { + "message": "I alt $AMOUNT$ emner blev importeret.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "I alt" + }, + "importWarning": { + "message": "Data, som kan blive delt med organisationsmedlemmerne, er ved at blive importeret til $ORGANIZATION$. Fortsæt?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data er ikke korrekt formateret. Tjek importfilen og forsøg igen." + }, + "importNothingError": { + "message": "Intet blev importeret." + }, + "importEncKeyError": { + "message": "Fejl under dekryptering af eksporteret fil. Krypteringsnøglen matcher ikke den til dataeksporten anvendte krypteringsnøgle." + }, + "importDestination": { + "message": "Importdestination" + }, + "learnAboutImportOptions": { + "message": "Læs om importmuligheder" + }, + "selectImportFolder": { + "message": "Vælg en mappe" + }, + "selectImportCollection": { + "message": "Vælg en samling" + }, + "importTargetHint": { + "message": "Vælg denne indstilling, hvis importeret filindhold skal flyttet til en $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Fil indeholder ikke-tildelte emner." + }, + "selectFormat": { + "message": "Vælg formatet for importfilen" + }, + "selectImportFile": { + "message": "Vælg importfil" + }, + "chooseFile": { + "message": "Vælg fil" + }, + "noFileChosen": { + "message": "Ingen fil valgt" + }, + "orCopyPasteFileContents": { + "message": "eller kopiér/indsæt importfilens indhold" + }, + "instructionsFor": { + "message": "$NAME$-vejledning", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Bekræft Boks-import" + }, + "confirmVaultImportDesc": { + "message": "Denne fil er adgangskodebeskyttet. Angiv filadgangskoden for at importere data." + }, + "confirmFilePassword": { + "message": "Bekræft filadgangskode" + }, + "passkeyNotCopied": { + "message": "Adgangsnøglen kopieres ikke" + }, + "passkeyNotCopiedAlert": { + "message": "Adgangsnøglen kopieres ikke til det klonede emne. Fortsæt kloningen af emnet alligevel?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Bekræftelse krævet af startwebstedet. Denne funktion er endnu ikke implementeret for konti uden hovedadgangskode." + }, + "logInWithPasskey": { + "message": "Log ind med adgangsnøgle?" + }, + "passkeyAlreadyExists": { + "message": "En adgangsnøgle findes allerede til denne applikation." + }, + "noPasskeysFoundForThisApplication": { + "message": "Ingen adgangsnøgler fundet til denne applikation." + }, + "noMatchingPasskeyLogin": { + "message": "Der er intet matchende login til dette websted." + }, + "confirm": { + "message": "Bekræft" + }, + "savePasskey": { + "message": "Gem adgangsnøgle" + }, + "savePasskeyNewLogin": { + "message": "Gem adgangsnøgle som nyt login" + }, + "choosePasskey": { + "message": "Vælg et login at gemme denne adgangsnøgle til" + }, + "passkeyItem": { + "message": "Adgangsnøgleemne" + }, + "overwritePasskey": { + "message": "Overskriv adgangsnøgle?" + }, + "overwritePasskeyAlert": { + "message": "Emnet indeholder allerede en adgangsnøgle. Sikker på, at den aktuelle adgangsnøgle skal overskrives?" + }, + "featureNotSupported": { + "message": "Funktionen understøttes ikke endnu" + }, + "yourPasskeyIsLocked": { + "message": "Godkendelse kræves for brug af adgangsnøgle. Bekræft din identitet for at fortsætte." + }, + "useBrowserName": { + "message": "Benyt webbrowser" } } diff --git a/apps/browser/src/_locales/de/messages.json b/apps/browser/src/_locales/de/messages.json index 3edd462918f..c7267c1b7f0 100644 --- a/apps/browser/src/_locales/de/messages.json +++ b/apps/browser/src/_locales/de/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identität" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Passwortverlauf" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Eine Organisationsrichtlinie beeinflusst deine Eigentümer-Optionen." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Eine Organisationsrichtlinie hat das Importieren von Einträgen in deinen persönlichen Tresor deaktiviert." + }, "excludedDomains": { "message": "Ausgeschlossene Domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Deaktiviere die erneute Abfrage des Master-Passworts, um dieses Feld zu bearbeiten", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Daten importieren", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Importfehler" + }, + "importErrorDesc": { + "message": "Es gab ein Problem mit den Daten, die du importieren wolltest. Bitte behebe die unten aufgeführten Fehler in deiner Quelldatei und versuche es erneut." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Behebe die unten aufgeführten Fehler und versuche es erneut." + }, + "description": { + "message": "Beschreibung" + }, + "importSuccess": { + "message": "Daten erfolgreich importiert" + }, + "importSuccessNumberOfItems": { + "message": "Insgesamt wurden $AMOUNT$ Einträge importiert.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Gesamt" + }, + "importWarning": { + "message": "Du importierst Daten in $ORGANIZATION$. Deine Daten könnten mit Mitgliedern dieser Organisation geteilt werden. Möchtest du fortfahren?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Die Daten sind nicht richtig formatiert. Kontrollieren Sie bitte Ihre Import-Datei und versuchen Sie es erneut." + }, + "importNothingError": { + "message": "Es wurde nichts importiert." + }, + "importEncKeyError": { + "message": "Fehler beim Entschlüsseln der exportierten Datei. Dein Verschlüsselungsschlüssel stimmt nicht mit dem beim Export verwendeten Verschlüsselungsschlüssel überein." + }, + "importDestination": { + "message": "Import-Ziel" + }, + "learnAboutImportOptions": { + "message": "Erfahre mehr über deine Importoptionen" + }, + "selectImportFolder": { + "message": "Ordner auswählen" + }, + "selectImportCollection": { + "message": "Sammlung auswählen" + }, + "importTargetHint": { + "message": "Wähle diese Option, wenn der importierte Dateiinhalt in eine(n) $DESTINATION$ verschoben werden soll", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Die Datei enthält nicht zugewiesene Einträge." + }, + "selectFormat": { + "message": "Wählen Sie das Format Ihrer Import-Datei" + }, + "selectImportFile": { + "message": "Wählen Sie die Import-Datei" + }, + "chooseFile": { + "message": "Datei auswählen" + }, + "noFileChosen": { + "message": "Keine Datei ausgewählt" + }, + "orCopyPasteFileContents": { + "message": "oder fügen Sie den Inhalt Ihrer Datei hier ein" + }, + "instructionsFor": { + "message": "Anleitung für $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Tresor-Import bestätigen" + }, + "confirmVaultImportDesc": { + "message": "Diese Datei ist passwortgeschützt. Bitte gib das Dateipasswort ein, um Daten zu importieren." + }, + "confirmFilePassword": { + "message": "Dateipasswort bestätigen" + }, + "passkeyNotCopied": { + "message": "Passkey wird nicht kopiert" + }, + "passkeyNotCopiedAlert": { + "message": "Der Passkey wird nicht in den duplizierten Eintrag kopiert. Möchtest du mit dem Duplizieren dieses Eintrags fortfahren?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Überprüfung durch die initiierende Website erforderlich. Diese Funktion ist noch nicht für Konten ohne Master-Passwort implementiert." + }, + "logInWithPasskey": { + "message": "Mit Passkey anmelden?" + }, + "passkeyAlreadyExists": { + "message": "Für diese Anwendung existiert bereits ein Passkey." + }, + "noPasskeysFoundForThisApplication": { + "message": "Keine Passkeys für diese Anwendung gefunden." + }, + "noMatchingPasskeyLogin": { + "message": "Du hast keinen passenden Zugangsdaten für diese Website." + }, + "confirm": { + "message": "Bestätigen" + }, + "savePasskey": { + "message": "Passkey speichern" + }, + "savePasskeyNewLogin": { + "message": "Passkey als neue Zugangsdaten speichern" + }, + "choosePasskey": { + "message": "Wähle Zugangsdaten aus, in die dieser Passkey gespeichert werden sollen" + }, + "passkeyItem": { + "message": "Passkey-Eintrag" + }, + "overwritePasskey": { + "message": "Passkey überschreiben?" + }, + "overwritePasskeyAlert": { + "message": "Dieser Eintrag enthält bereits einen Passkey. Bist du sicher, dass du den aktuellen Passkey überschreiben möchtest?" + }, + "featureNotSupported": { + "message": "Funktion wird noch nicht unterstützt" + }, + "yourPasskeyIsLocked": { + "message": "Authentifizierung erforderlich, um Passkeys zu verwenden. Verifiziere deine Identität, um fortzufahren." + }, + "useBrowserName": { + "message": "Browser verwenden" } } diff --git a/apps/browser/src/_locales/el/messages.json b/apps/browser/src/_locales/el/messages.json index 2692a89b7db..4de376db692 100644 --- a/apps/browser/src/_locales/el/messages.json +++ b/apps/browser/src/_locales/el/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Ταυτότητα" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Ιστορικό Κωδικού" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Μια πολιτική του οργανισμού, επηρεάζει τις επιλογές ιδιοκτησίας σας." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Εξαιρούμενοι Τομείς" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/en/messages.json b/apps/browser/src/_locales/en/messages.json index 22330901579..529ead2d6ca 100644 --- a/apps/browser/src/_locales/en/messages.json +++ b/apps/browser/src/_locales/en/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,231 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "invalidFilePassword": { + "message": "Invalid file password, please use the password you entered when you created the export file." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" + }, + "multifactorAuthenticationCancelled": { + "message": "Multifactor authentication cancelled" + }, + "noLastPassDataFound": { + "message": "No LastPass data found" + }, + "incorrectUsernameOrPassword": { + "message": "Incorrect username or password" + }, + "multifactorAuthenticationFailed": { + "message": "Multifactor authentication failed" + }, + "includeSharedFolders": { + "message": "Include shared folders" + }, + "lastPassEmail": { + "message": "LastPass Email" + }, + "importingYourAccount": { + "message": "Importing your account..." + }, + "lastPassMFARequired": { + "message": "LastPass multifactor authentication required" + }, + "lastPassMFADesc": { + "message": "Enter your one-time passcode from your authentication app" + }, + "lastPassOOBDesc": { + "message": "Approve the login request in your authentication app or enter a one-time passcode." + }, + "passcode": { + "message": "Passcode" + }, + "lastPassMasterPassword": { + "message": "LastPass master password" + }, + "lastPassAuthRequired": { + "message": "LastPass authentication required" + }, + "awaitingSSO": { + "message": "Awaiting SSO authentication" + }, + "awaitingSSODesc": { + "message": "Please continue to log in using your company credentials." + }, + "seeDetailedInstructions": { + "message": "See detailed instructions on our help site at", + "description": "This is followed a by a hyperlink to the help website." + }, + "importDirectlyFromLastPass": { + "message": "Import directly from LastPass" + }, + "importFromCSV": { + "message": "Import from CSV" + }, + "lastPassTryAgainCheckEmail": { + "message": "Try again or look for an email from LastPass to verify it's you." + }, + "collection": { + "message": "Collection" + }, + "lastPassYubikeyDesc": { + "message": "Insert the YubiKey associated with your LastPass account into your computer's USB port, then touch its button." } } diff --git a/apps/browser/src/_locales/en_GB/messages.json b/apps/browser/src/_locales/en_GB/messages.json index 4e1057956fa..83f6d1abe0d 100644 --- a/apps/browser/src/_locales/en_GB/messages.json +++ b/apps/browser/src/_locales/en_GB/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organisation policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organisation policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organisation. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used to export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/en_IN/messages.json b/apps/browser/src/_locales/en_IN/messages.json index 32dd196f2ae..336761851bf 100644 --- a/apps/browser/src/_locales/en_IN/messages.json +++ b/apps/browser/src/_locales/en_IN/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded Domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/es/messages.json b/apps/browser/src/_locales/es/messages.json index b81a05c9a4b..a7dd4aaeeaa 100644 --- a/apps/browser/src/_locales/es/messages.json +++ b/apps/browser/src/_locales/es/messages.json @@ -17,7 +17,7 @@ "message": "Crear cuenta" }, "login": { - "message": "Identificarse" + "message": "Iniciar sesión" }, "enterpriseSingleSignOn": { "message": "Inicio de sesión único empresarial" @@ -92,13 +92,13 @@ "message": "Autorellenar" }, "autoFillLogin": { - "message": "Auto-fill login" + "message": "Autocompletar inicio de sesión" }, "autoFillCard": { - "message": "Auto-fill card" + "message": "Autocompletar tarjeta" }, "autoFillIdentity": { - "message": "Auto-fill identity" + "message": "Autocompletar identidad" }, "generatePasswordCopied": { "message": "Generar contraseña (copiada)" @@ -110,19 +110,19 @@ "message": "Sin entradas coincidentes." }, "noCards": { - "message": "No cards" + "message": "No hay tarjetas" }, "noIdentities": { - "message": "No identities" + "message": "No hay identidades" }, "addLoginMenu": { - "message": "Add login" + "message": "Agregar inicio de sesión" }, "addCardMenu": { - "message": "Add card" + "message": "Agregar tarjeta" }, "addIdentityMenu": { - "message": "Add identity" + "message": "Agregar identidad" }, "unlockVaultMenu": { "message": "Desbloquea la caja fuerte" @@ -363,7 +363,7 @@ "message": "Otros" }, "unlockMethodNeededToChangeTimeoutActionDesc": { - "message": "Set up an unlock method to change your vault timeout action." + "message": "Configura un método de desbloqueo para cambiar tu acción de cierre de la bóveda." }, "rateExtension": { "message": "Valora la extensión" @@ -658,7 +658,7 @@ "message": "Actualizar" }, "notificationUnlockDesc": { - "message": "Unlock your Bitwarden vault to complete the auto-fill request." + "message": "Desbloquea tu bóveda Bitwarden para completar la solicitud de autollenado." }, "notificationUnlock": { "message": "Desbloquear" @@ -820,7 +820,7 @@ "message": "1 GB de espacio cifrado en disco para adjuntos." }, "premiumSignUpTwoStepOptions": { - "message": "Proprietary two-step login options such as YubiKey and Duo." + "message": "Opciones de inicio de sesión con autenticación de dos pasos propietarios como YubiKey y Duo." }, "ppremiumSignUpReports": { "message": "Higiene de contraseña, salud de la cuenta e informes de violaciones de datos para mantener su caja fuerte segura." @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identidad" }, + "typePasskey": { + "message": "Clave de acceso" + }, "passwordHistory": { "message": "Historial de contraseñas" }, @@ -1630,10 +1633,10 @@ "message": "La biometría del navegador no es compatible con este dispositivo." }, "biometricsFailedTitle": { - "message": "Biometrics failed" + "message": "Fallo de biométrica" }, "biometricsFailedDesc": { - "message": "Biometrics cannot be completed, consider using a master password or logging out. If this persists, please contact Bitwarden support." + "message": "No se pueden completar la biométrica, considere usar una contraseña maestra o cerrar la sesión. Si esto persiste, póngase en contacto con el soporte de Bitwarden." }, "nativeMessaginPermissionErrorTitle": { "message": "Permiso no proporcionado" @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una política de organización está afectando a sus opciones de propiedad." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una política organizacional ha bloqueado la importación de elementos a su caja fuerte personal." + }, "excludedDomains": { "message": "Dominios excluidos" }, @@ -2016,7 +2022,7 @@ "message": "Exportando caja fuerte personal" }, "exportingIndividualVaultDescription": { - "message": "Only the individual vault items associated with $EMAIL$ will be exported. Organization vault items will not be included. Only vault item information will be exported and will not include associated attachments.", + "message": "Solo se exportarán los elementos individuales de la caja fuerte asociados con $EMAIL$. Los elementos de la bóveda de la organización no se incluirán. Solo se exportará la información de los elementos individuales y no incluirá adjuntos asociados.", "placeholders": { "email": { "content": "$1", @@ -2117,7 +2123,7 @@ "message": "Versión del servidor" }, "selfHostedServer": { - "message": "self-hosted" + "message": "autoalojado" }, "thirdParty": { "message": "Aplicaciones de terceros" @@ -2177,7 +2183,7 @@ "message": "Se ha enviado una notificación a tu dispositivo." }, "loginInitiated": { - "message": "Login initiated" + "message": "Inicio de sesión en proceso" }, "exposedMasterPassword": { "message": "Contraseña maestra comprometida" @@ -2258,34 +2264,34 @@ } }, "loggingInOn": { - "message": "Logging in on" + "message": "Iniciando sesión en" }, "opensInANewWindow": { "message": "Abre en una nueva ventana" }, "deviceApprovalRequired": { - "message": "Device approval required. Select an approval option below:" + "message": "Se requiere aprobación del dispositivo. Seleccione una opción de aprobación a continuación:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "Recordar este dispositivo" }, "uncheckIfPublicDevice": { - "message": "Uncheck if using a public device" + "message": "Desmarcar si se utiliza un dispositivo público" }, "approveFromYourOtherDevice": { - "message": "Approve from your other device" + "message": "Apruebe desde otro dispositivo" }, "requestAdminApproval": { - "message": "Request admin approval" + "message": "Solicitar aprobación del administrador" }, "approveWithMasterPassword": { - "message": "Approve with master password" + "message": "Aprobar con contraseña maestra" }, "ssoIdentifierRequired": { - "message": "Organization SSO identifier is required." + "message": "Se requiere un identificador único de inicio de sesión de la organización." }, "eu": { - "message": "EU", + "message": "Unión Europea", "description": "European Union" }, "usDomain": { @@ -2304,40 +2310,40 @@ "message": "Display" }, "accountSuccessfullyCreated": { - "message": "Account successfully created!" + "message": "¡Cuenta creada con éxito!" }, "adminApprovalRequested": { - "message": "Admin approval requested" + "message": "Aprobación del administrador solicitada" }, "adminApprovalRequestSentToAdmins": { - "message": "Your request has been sent to your admin." + "message": "Su solicitud ha sido enviada a su administrador." }, "youWillBeNotifiedOnceApproved": { - "message": "You will be notified once approved." + "message": "Se le notificará una vez aprobado." }, "troubleLoggingIn": { - "message": "Trouble logging in?" + "message": "¿Problemas para iniciar sesión?" }, "loginApproved": { - "message": "Login approved" + "message": "Inicio de sesión aprobado" }, "userEmailMissing": { - "message": "User email missing" + "message": "Falta el correo electrónico del usuario" }, "deviceTrusted": { - "message": "Device trusted" + "message": "Dispositivo de confianza" }, "inputRequired": { - "message": "Input is required." + "message": "Entrada requerida." }, "required": { "message": "required" }, "search": { - "message": "Search" + "message": "Buscar" }, "inputMinLength": { - "message": "Input must be at least $COUNT$ characters long.", + "message": "La entrada debe tener al menos $COUNT$ caracteres.", "placeholders": { "count": { "content": "$1", @@ -2346,7 +2352,7 @@ } }, "inputMaxLength": { - "message": "Input must not exceed $COUNT$ characters in length.", + "message": "La entrada no debe exceder los $COUNT$ caracteres de longitud.", "placeholders": { "count": { "content": "$1", @@ -2355,7 +2361,7 @@ } }, "inputForbiddenCharacters": { - "message": "The following characters are not allowed: $CHARACTERS$", + "message": "Los siguientes caracteres no están permitidos: $CHARACTERS$", "placeholders": { "characters": { "content": "$1", @@ -2382,17 +2388,17 @@ } }, "multipleInputEmails": { - "message": "1 or more emails are invalid" + "message": "Una o más direcciones de correo electrónico no son válidas" }, "inputTrimValidator": { - "message": "Input must not contain only whitespace.", + "message": "La entrada no debe contener únicamente espacios en blanco.", "description": "Notification to inform the user that a form's input can't contain only whitespace." }, "inputEmail": { - "message": "Input is not an email address." + "message": "La entrada no es una dirección de correo electrónico." }, "fieldsNeedAttention": { - "message": "$COUNT$ field(s) above need your attention.", + "message": "$COUNT$ campo(s) anteriores necesitan su atención.", "placeholders": { "count": { "content": "$1", @@ -2401,19 +2407,19 @@ } }, "selectPlaceholder": { - "message": "-- Select --" + "message": "-- Seleccione --" }, "multiSelectPlaceholder": { - "message": "-- Type to filter --" + "message": "-- Escriba para filtrar --" }, "multiSelectLoading": { - "message": "Retrieving options..." + "message": "Recuperando opciones..." }, "multiSelectNotFound": { - "message": "No items found" + "message": "No hay elementos" }, "multiSelectClearAll": { - "message": "Clear all" + "message": "Borrar todo" }, "plusNMore": { "message": "+ $QUANTITY$ more", @@ -2425,25 +2431,184 @@ } }, "submenu": { - "message": "Submenu" + "message": "Submenú" }, "toggleCollapse": { - "message": "Toggle collapse", + "message": "Colapsar/Expandir", "description": "Toggling an expand/collapse state." }, "aliasDomain": { - "message": "Alias domain" + "message": "Seudónimo del dominio" }, "passwordRepromptDisabledAutofillOnPageLoad": { - "message": "Items with master password re-prompt cannot be auto-filled on page load. Auto-fill on page load turned off.", + "message": "Los elementos que requieren la contraseña maestra no se pueden rellenar automáticamente al cargar la página. Se desactivó el autorrellenado de la página.", "description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load." }, "autofillOnPageLoadSetToDefault": { - "message": "Auto-fill on page load set to use default setting.", + "message": "El autorrellenado de la página está usando la configuración predeterminada.", "description": "Toast message for informing the user that auto-fill on page load has been set to the default setting." }, "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importar datos", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Error al importar" + }, + "importErrorDesc": { + "message": "Hubo un problema con los datos que intentaste importar. Por favor, resuelve los errores listados a continuación en tu archivo de origen e inténtalo de nuevo." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Corrige los siguientes errores e inténtalo de nuevo." + }, + "description": { + "message": "Descripción" + }, + "importSuccess": { + "message": "Datos importados correctamente" + }, + "importSuccessNumberOfItems": { + "message": "Un total de $AMOUNT$ elementos fueron importados.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Estás importando datos a $ORGANIZATION$. Tus datos pueden ser compartidos con miembros de esta organización. ¿Quieres continuar?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Los datos no están formateados correctamente. Por favor, comprueba tu archivo de importación e inténtalo de nuevo." + }, + "importNothingError": { + "message": "No se ha importado nada." + }, + "importEncKeyError": { + "message": "Error al descifrar el archivo exportado. Su clave de cifrado no coincide con la clave de cifrado utilizada para exportar los datos." + }, + "importDestination": { + "message": "Importar destino" + }, + "learnAboutImportOptions": { + "message": "Aprende sobre tus opciones de importación" + }, + "selectImportFolder": { + "message": "Seleccione una carpeta" + }, + "selectImportCollection": { + "message": "Selecciona una colección" + }, + "importTargetHint": { + "message": "Selecciona esta opción si deseas que el contenido del archivo importado se mueva a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "El archivo contiene elementos no asignados." + }, + "selectFormat": { + "message": "Selecciona el formato del archivo a importar" + }, + "selectImportFile": { + "message": "Seleccionar el archivo a importar" + }, + "chooseFile": { + "message": "Seleccionar archivo" + }, + "noFileChosen": { + "message": "No se ha seleccionado ningún archivo" + }, + "orCopyPasteFileContents": { + "message": "o copia/pega el contenido del archivo a importar" + }, + "instructionsFor": { + "message": "Instrucciones para $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirmar la importación de la caja fuerte" + }, + "confirmVaultImportDesc": { + "message": "Este archivo está protegido por contraseña. Introduzca la contraseña del archivo para importar datos." + }, + "confirmFilePassword": { + "message": "Confirmar contraseña del archivo" + }, + "passkeyNotCopied": { + "message": "La clave de acceso no se copiará" + }, + "passkeyNotCopiedAlert": { + "message": "La clave de acceso no se copiará al elemento clonado. ¿Desea continuar clonando este elemento?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verificación requerida por el sitio inicial. Esta característica aún no está implementada para cuentas sin contraseña maestra." + }, + "logInWithPasskey": { + "message": "¿Iniciar sesión con contraseña?" + }, + "passkeyAlreadyExists": { + "message": "Ya existe una clave de acceso para esta aplicación." + }, + "noPasskeysFoundForThisApplication": { + "message": "No se encontraron contraseñas para esta aplicación." + }, + "noMatchingPasskeyLogin": { + "message": "No tiene un inicio de sesión que coincida para este sitio." + }, + "confirm": { + "message": "Confirme" + }, + "savePasskey": { + "message": "Guardar clave" + }, + "savePasskeyNewLogin": { + "message": "Guardar contraseña como nuevo inicio de sesión" + }, + "choosePasskey": { + "message": "Elija un inicio de sesión para guardar esta clave de acceso" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "¿Sobrescribir contraseña?" + }, + "overwritePasskeyAlert": { + "message": "Este elemento ya contiene una clave de acceso. ¿Está seguro de que desea sobrescribir la contraseña actual?" + }, + "featureNotSupported": { + "message": "Función aún no implementada" + }, + "yourPasskeyIsLocked": { + "message": "Autenticación requerida para usar la clave de acceso. Verifique su identidad para continuar." + }, + "useBrowserName": { + "message": "Use un navegador web" } } diff --git a/apps/browser/src/_locales/et/messages.json b/apps/browser/src/_locales/et/messages.json index 4fe20767c0e..dea664c500e 100644 --- a/apps/browser/src/_locales/et/messages.json +++ b/apps/browser/src/_locales/et/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identiteet" }, + "typePasskey": { + "message": "Pääsukood" + }, "passwordHistory": { "message": "Paroolide ajalugu" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Organisatsiooni poliitika on seadnud omaniku valikutele piirangu." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Väljajäetud domeenid" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Pääsukoodi ei kopeerita" + }, + "passkeyNotCopiedAlert": { + "message": "Pääsukoodi ei kopeerita kloonitud kirjele. Oled kindel, et soovid jätkata?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/eu/messages.json b/apps/browser/src/_locales/eu/messages.json index 291a687f8b4..d152be1eb52 100644 --- a/apps/browser/src/_locales/eu/messages.json +++ b/apps/browser/src/_locales/eu/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitatea" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Pasahitz historia" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Erakunde politika batek, jabetza aukerei eragiten die." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Kanporatutako domeinuak" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/fa/messages.json b/apps/browser/src/_locales/fa/messages.json index bcfab0cdbc8..e0925526a31 100644 --- a/apps/browser/src/_locales/fa/messages.json +++ b/apps/browser/src/_locales/fa/messages.json @@ -11,7 +11,7 @@ "description": "Extension description" }, "loginOrCreateNewAccount": { - "message": "وارد شوید یا یک حساب کاربری بسازید تا به گاوصندوق امنتان دسترسی یابید." + "message": "وارد شوید یا یک حساب کاربری بسازید تا به گاوصندوق امن‌تان دسترسی یابید." }, "createAccount": { "message": "ایجاد حساب کاربری" @@ -726,7 +726,7 @@ "message": "درباره سازمان‌ها اطلاعات کسب کنید" }, "learnOrgConfirmation": { - "message": "Bitwarden به شما اجازه می‌دهد با استفاده از سازماندهی، موارد گاوصندوق خود را با دیگران به اشتراک بگذارید. آیا مایل به بازدید از وب سایت bitwarden.com برای کسب اطلاعات بیشتر هستید؟" + "message": "Bitwarden به شما اجازه می‌دهد با استفاده از سازمان، موارد گاوصندوق خود را با دیگران به اشتراک بگذارید. آیا مایل به بازدید از وب سایت bitwarden.com برای کسب اطلاعات بیشتر هستید؟" }, "moveToOrganization": { "message": "انتقال به سازمان" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "هویت" }, + "typePasskey": { + "message": "کلید عبور" + }, "passwordHistory": { "message": "تاریخچه کلمه عبور" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "سیاست سازمانی بر تنظیمات مالکیت شما تأثیر می‌گذارد." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "دامنه های مستثنی" }, @@ -2150,7 +2156,7 @@ "message": "شما نیستید؟" }, "newAroundHere": { - "message": "اینجا جدیده؟" + "message": "اینجا تازه واردی؟" }, "rememberEmail": { "message": "ایمیل را به خاطر بسپار" @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "برای ویرایش این فیلد، درخواست مجدد کلمه عبور اصلی را خاموش کنید", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "کلید عبور کپی نمی‌شود" + }, + "passkeyNotCopiedAlert": { + "message": "کلید عبور در مورد شبیه سازی شده کپی نمی‌شود. آیا می‌خواهید به شبیه سازی این مورد ادامه دهید؟" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "تأیید توسط سایت آغازگر الزامی است. این ویژگی هنوز برای حساب‌های بدون کلمه عبور اصلی اجرا نشده است." + }, + "logInWithPasskey": { + "message": "با کلید عبور وارد می‌شوید؟" + }, + "passkeyAlreadyExists": { + "message": "یک کلید عبور از قبل برای این برنامه وجود دارد." + }, + "noPasskeysFoundForThisApplication": { + "message": "هیچ کلمه عبوری برای این برنامه یافت نشد." + }, + "noMatchingPasskeyLogin": { + "message": "شما هیچ ورود مشابهی برای این سایت ندارید." + }, + "confirm": { + "message": "تأیید" + }, + "savePasskey": { + "message": "ذخیره کلید عبور" + }, + "savePasskeyNewLogin": { + "message": "کلید عبور را به عنوان ورود جدید ذخیره کن" + }, + "choosePasskey": { + "message": "یک ورود برای ذخیره این کلید عبور انتخاب کنید" + }, + "passkeyItem": { + "message": "مورد کلید عبور" + }, + "overwritePasskey": { + "message": "بازنویسی کلید عبور؟" + }, + "overwritePasskeyAlert": { + "message": "این مورد از قبل دارای یک کلید عبور است. آیا مطمئنید که می‌خواهید کلمه عبور فعلی را بازنویسی کنید؟" + }, + "featureNotSupported": { + "message": "ویژگی هنوز پشتیبانی نمی‌شود" + }, + "yourPasskeyIsLocked": { + "message": "برای استفاده از کلید عبور، احراز هویت لازم است. برای ادامه، هویت خود را تأیید کنید." + }, + "useBrowserName": { + "message": "استفاده از مرورگر وب" } } diff --git a/apps/browser/src/_locales/fi/messages.json b/apps/browser/src/_locales/fi/messages.json index daaa9a89258..aa36865b8c5 100644 --- a/apps/browser/src/_locales/fi/messages.json +++ b/apps/browser/src/_locales/fi/messages.json @@ -357,7 +357,7 @@ "message": "Näytä tai piilota" }, "manage": { - "message": "Hallinnoi" + "message": "Hallitse" }, "other": { "message": "Muut" @@ -658,7 +658,7 @@ "message": "Päivitä" }, "notificationUnlockDesc": { - "message": "Viimeistele automaattitäytön pyyntö avaamalla Bitwarden-holvisi lukitus." + "message": "Viimeistele automaattisen täytön pyyntö avaamalla Bitwarden-holvisi lukitus." }, "notificationUnlock": { "message": "Avaa" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Henkilöllisyys" }, + "typePasskey": { + "message": "Suojausavain" + }, "passwordHistory": { "message": "Salasanahistoria" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Organisaatiokäytäntö vaikuttaa omistajuusvalintoihisi." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Organisaatiokäytäntö estää kohteiden tuonnin yksityiseen holviisi." + }, "excludedDomains": { "message": "Ohitettavat verkkotunnukset" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Poista pääsalasanan uudelleenkysely käytöstä muokataksesi kenttää", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Tuo tietoja", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Tuontivirhe" + }, + "importErrorDesc": { + "message": "Tiedoissa, joita yritit tuoda, havaittiin ongelma. Korjaa alla listatut virheet lähdetiedostosta ja yritä uudelleen." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Korjaa seuraavat virheet ja yritä uudelleen." + }, + "description": { + "message": "Kuvaus" + }, + "importSuccess": { + "message": "Tietojen tuonti onnistui" + }, + "importSuccessNumberOfItems": { + "message": "Kaikkiaan $AMOUNT$ kohdetta tuotiin.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Yhteensä" + }, + "importWarning": { + "message": "Olet tuomassa tietoja organisaatioon $ORGANIZATION$. Tietojasi saatetaan jakaa organisaation jäsenten kesken. Haluatko jatkaa?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Tietoja ei ole muotoiltu oikein. Tarkista tuotava tiedosto ja yritä uudelleen." + }, + "importNothingError": { + "message": "Mitään ei tuotu." + }, + "importEncKeyError": { + "message": "Virhe purettaessa viedyn tiedoston salausta. Salausavaimesi ei vastaa viennissä käytettyä salausavainta." + }, + "importDestination": { + "message": "Tuontikohde" + }, + "learnAboutImportOptions": { + "message": "Lue lisää tuontivaihtoehdoista" + }, + "selectImportFolder": { + "message": "Valitse kansio" + }, + "selectImportCollection": { + "message": "Valitse kokoelma" + }, + "importTargetHint": { + "message": "Valitse tämä, jos haluat tuoda tiedoston sisällön kohteeseen \"$DESTINATION$\".", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Tiedosto sisältää määrittämättömiä kohteita." + }, + "selectFormat": { + "message": "Valitse tuotavan tiedoston muoto" + }, + "selectImportFile": { + "message": "Valitse tuotava tiedosto" + }, + "chooseFile": { + "message": "Valitse tiedosto" + }, + "noFileChosen": { + "message": "Tiedostoa ei ole valittu" + }, + "orCopyPasteFileContents": { + "message": "tai kopioi ja liitä tuotavan tiedoston sisältö" + }, + "instructionsFor": { + "message": "$NAME$ -ohjeet", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Vahvista holvin tuonti" + }, + "confirmVaultImportDesc": { + "message": "Tiedosto on salasanasuojattu. Jatka tuontia syöttämällä tiedoston salasana." + }, + "confirmFilePassword": { + "message": "Vahvista tiedoston salasana" + }, + "passkeyNotCopied": { + "message": "Suojausavainta ei kopioida" + }, + "passkeyNotCopiedAlert": { + "message": "Suojausavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Käynnistävä sivusto edellyttää todennusta. Ominaisuutta ei ole vielä toteutettu tileille, joilla ei ole pääsalasanaa." + }, + "logInWithPasskey": { + "message": "Kirjaudutko suojausavaimella?" + }, + "passkeyAlreadyExists": { + "message": "Tälle sovellukselle on jo tallennettu suojausavain." + }, + "noPasskeysFoundForThisApplication": { + "message": "Tälle sovellukselle ei löytynyt suojausavaimia." + }, + "noMatchingPasskeyLogin": { + "message": "Holvissasi ei ole tälle sivustolle sopivaa kirjautumistietoa." + }, + "confirm": { + "message": "Vahvista" + }, + "savePasskey": { + "message": "Tallenna suojausavain" + }, + "savePasskeyNewLogin": { + "message": "Tallenna suojausavain uuteen kirjautumistietoon" + }, + "choosePasskey": { + "message": "Valitse kirjautumistieto, johon suojausavain tallennetaan" + }, + "passkeyItem": { + "message": "Suojausavaimen kohde" + }, + "overwritePasskey": { + "message": "Korvataanko suojausavain?" + }, + "overwritePasskeyAlert": { + "message": "Kohde sisältää jo suojausavaimen. Haluatko varmasti korvata nykyisen salasanan?" + }, + "featureNotSupported": { + "message": "Ominaisuutta ei vielä tueta" + }, + "yourPasskeyIsLocked": { + "message": "Salausavaimen käyttö edellyttää todennusta. Jatka vahvistamalla henkilöllisyytesi." + }, + "useBrowserName": { + "message": "Käytä verkkoselainta" } } diff --git a/apps/browser/src/_locales/fil/messages.json b/apps/browser/src/_locales/fil/messages.json index 464cf888899..1f4d747c293 100644 --- a/apps/browser/src/_locales/fil/messages.json +++ b/apps/browser/src/_locales/fil/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Pagkakakilanlan" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Kasaysayan ng Password" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Isang organisasyon policy ang nakakaapekto sa iyong mga pagpipilian sa ownership." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Inilayo na Domain" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/fr/messages.json b/apps/browser/src/_locales/fr/messages.json index b0827b39006..b9fe8dced14 100644 --- a/apps/browser/src/_locales/fr/messages.json +++ b/apps/browser/src/_locales/fr/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identité" }, + "typePasskey": { + "message": "Clé d'accès" + }, "passwordHistory": { "message": "Historique des mots de passe" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Une politique d'organisation affecte vos options de propriété." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Domaines exclus" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Désactivez la resaisie du mot de passe maître pour éditer ce champ", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "La clé d'accès ne sera pas copiée" + }, + "passkeyNotCopiedAlert": { + "message": "La clé d'accès ne sera pas présente sur l'entrée clonée. Continuer quand même ?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Le site requiert une vérification qui n'est pas supportée pour les comptes sans mot de passe maître." + }, + "logInWithPasskey": { + "message": "Se connecter avec une clé d'accès ?" + }, + "passkeyAlreadyExists": { + "message": "Une clé d'accès existe déjà pour cette application." + }, + "noPasskeysFoundForThisApplication": { + "message": "Aucune clé d'accès trouvée pour cette application." + }, + "noMatchingPasskeyLogin": { + "message": "Vous n'avez aucun élément correspondant à ce site." + }, + "confirm": { + "message": "Confirmer" + }, + "savePasskey": { + "message": "Enregistrer la clé d'accès" + }, + "savePasskeyNewLogin": { + "message": "Enregistrer comme nouvel élément" + }, + "choosePasskey": { + "message": "Choisissez l'élément à associer à la clé d'accès" + }, + "passkeyItem": { + "message": "Élément avec clé d'accès" + }, + "overwritePasskey": { + "message": "Écraser la clé d'accès existante ?" + }, + "overwritePasskeyAlert": { + "message": "Cet élément contient déjà une clé d'accès. Voulez-vous vraiment l'écraser ?" + }, + "featureNotSupported": { + "message": "Fonctionnalité non supportée" + }, + "yourPasskeyIsLocked": { + "message": "Authentification requise pour utiliser cette clé d'accès. Veuillez vérifier votre identité pour continuer." + }, + "useBrowserName": { + "message": "Utiliser le navigateur" } } diff --git a/apps/browser/src/_locales/gl/messages.json b/apps/browser/src/_locales/gl/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/gl/messages.json +++ b/apps/browser/src/_locales/gl/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/he/messages.json b/apps/browser/src/_locales/he/messages.json index 19985cd5ec8..cde987b3632 100644 --- a/apps/browser/src/_locales/he/messages.json +++ b/apps/browser/src/_locales/he/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "זהות" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "היסטוריית סיסמאות" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "מדיניות ארגונית משפיעה על אפשרויות הבעלות שלך." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "ייבוא נתונים", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "שגיאת ייבוא" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "תיאור" + }, + "importSuccess": { + "message": "הנתונים יובאו בהצלחה" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "סך הכול" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "יעד ייבוא" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/hi/messages.json b/apps/browser/src/_locales/hi/messages.json index 4b686192902..8ce024f3e40 100644 --- a/apps/browser/src/_locales/hi/messages.json +++ b/apps/browser/src/_locales/hi/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "पहचान" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "पासवर्ड इतिहास" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "एक संगठन नीति आपके स्वामित्व विकल्पों को प्रभावित कर रही है।" }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "बहिष्कृत डोमेन" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/hr/messages.json b/apps/browser/src/_locales/hr/messages.json index b334d22332f..5fcb75c47b8 100644 --- a/apps/browser/src/_locales/hr/messages.json +++ b/apps/browser/src/_locales/hr/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitet" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Povijest" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Pravila organizacije utječu na tvoje mogućnosti vlasništva. " }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Izuzete domene" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Isključi traženje glavne lozinke za promjenu ovog polja", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/hu/messages.json b/apps/browser/src/_locales/hu/messages.json index abf5a12e5e5..9a8e4cdc227 100644 --- a/apps/browser/src/_locales/hu/messages.json +++ b/apps/browser/src/_locales/hu/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Személyazonosság" }, + "typePasskey": { + "message": "Hozzáférési kulcs" + }, "passwordHistory": { "message": "Jelszó előzmények" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "A szervezeti házirend befolyásolja a tulajdonosi opciókat." }, + "personalOwnershipPolicyInEffectImports": { + "message": "A szervezeti politika blokkolta az elemek importálását az egyedi széfbe." + }, "excludedDomains": { "message": "Kizárt domainek" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Kapcsoljuk ki a mesterjelszó újbóli bekérését a mező szerkesztéséhez.", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Adatok importálása", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Importálási hiba" + }, + "importErrorDesc": { + "message": "Probléma merült fel az importálni próbált adatokkal. Oldjuk fel a forrásfájlban alább felsorolt hibákat és próbáljuk újra." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Oldjuk fel a hibákat lentebb és próbáljuk újra." + }, + "description": { + "message": "Leírás" + }, + "importSuccess": { + "message": "Az adatok sikeresen importálásra kerültek." + }, + "importSuccessNumberOfItems": { + "message": "Összesen $AMOUNT$ elem lett importálva.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Összesen" + }, + "importWarning": { + "message": "Adatokat importálunk $ORGANIZATION$ fájlba. Az adatok megosztásra kerülhetnek a szervezet tagjaival. Folytatni akarjuk?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Az adatok nincsenek megfelelően formázva. Ellenőrizzük az importálás fájlt és próbáljuk újra." + }, + "importNothingError": { + "message": "Semmi nem lett importálva." + }, + "importEncKeyError": { + "message": "Hiba történt az exportált fájl visszafejtése során. A titkosítási kulcs nem egyezik meg az adatok exportálásához használt titkosítási kulccsal." + }, + "importDestination": { + "message": "Importálás leírás" + }, + "learnAboutImportOptions": { + "message": "Információ az importálási opciókról" + }, + "selectImportFolder": { + "message": "Mappa kiválasztása" + }, + "selectImportCollection": { + "message": "Gyűjtemény kiválasztása" + }, + "importTargetHint": { + "message": "Válasszuk ezt a lehetőséget, ha azt akarjuk, hogy az importált fájl tartalma $DESTINATION$ helyre kerüljön", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "A fájl hozzá nem rendelt elemeket tartalmaz." + }, + "selectFormat": { + "message": "Válasszuk ki az importáló fájl formátumát" + }, + "selectImportFile": { + "message": "Válasszuk ki az import fájlt" + }, + "chooseFile": { + "message": "Fájl kiválasztása" + }, + "noFileChosen": { + "message": "Nincs kiválasztott fájl." + }, + "orCopyPasteFileContents": { + "message": "vagy vágólapon vigyük be fájl tartalmat" + }, + "instructionsFor": { + "message": "$NAME$ utasítások", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Széf importálás megerősítése" + }, + "confirmVaultImportDesc": { + "message": "Ez a fájl jelszóval védett. Adjuk meg a fájl jelszót az adatok importálásához." + }, + "confirmFilePassword": { + "message": "Fájl jelszó megerősítés" + }, + "passkeyNotCopied": { + "message": "A hozzáférési kulcs nem kerül másolásra." + }, + "passkeyNotCopiedAlert": { + "message": "A hozzáférési kulcs nem kerül másolásra a klónozott elembe. Folytatjuk ennek az elemnek a klónozását?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "A kezdeményező hely által megkövetelt ellenőrzés. Ez a szolgáltatás még nincs megvalósítva mesterjelszó nélküli fiókok esetén." + }, + "logInWithPasskey": { + "message": "Bejelentkezés hozzáférési kulccsal?" + }, + "passkeyAlreadyExists": { + "message": "Az alkalmazáshoz már létezik hozzáférési kulcs." + }, + "noPasskeysFoundForThisApplication": { + "message": "Az alkalmazáshoz nem található hozzáférési kulcs." + }, + "noMatchingPasskeyLogin": { + "message": "Nincs megfelelő bejelentkezés ehhez a webhelyhez." + }, + "confirm": { + "message": "Megerősítés" + }, + "savePasskey": { + "message": "Hozzáférési kulcs mentése" + }, + "savePasskeyNewLogin": { + "message": "Hozzáférési kulcs mentése új bejelentkezésként" + }, + "choosePasskey": { + "message": "Bejelentkezés választás a hozzáférési kulcs mentéséhez" + }, + "passkeyItem": { + "message": "Hozzáférési kulcs elem" + }, + "overwritePasskey": { + "message": "Bejelentkezési kulcs felülírása?" + }, + "overwritePasskeyAlert": { + "message": "Ez az elem már tartalmaz egy hozzáférési kulcsot. Biztosan felülírásra kerüljön az aktuális hozzáférési kulcs?" + }, + "featureNotSupported": { + "message": "Nem támogatott funkció" + }, + "yourPasskeyIsLocked": { + "message": "A hozzáférési kulcs használatához hitelesítés szükséges. A személyazonosság ellenőrzése szükséges a folytatáshoz." + }, + "useBrowserName": { + "message": "Böngésző használata" } } diff --git a/apps/browser/src/_locales/id/messages.json b/apps/browser/src/_locales/id/messages.json index 7b19a6838c0..7bcb9ed1287 100644 --- a/apps/browser/src/_locales/id/messages.json +++ b/apps/browser/src/_locales/id/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitas" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Riwayat Kata Sandi" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Kebijakan organisasi memengaruhi opsi kepemilikan Anda." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Domain yang Dikecualikan" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/it/messages.json b/apps/browser/src/_locales/it/messages.json index 9bca2da6062..d99e6e8f206 100644 --- a/apps/browser/src/_locales/it/messages.json +++ b/apps/browser/src/_locales/it/messages.json @@ -708,13 +708,13 @@ "message": "Conferma esportazione della cassaforte" }, "exportWarningDesc": { - "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non criptato. Non salvare o inviare il file esportato attraverso canali non protetti (come le email). Eliminalo immediatamente dopo l'utilizzo." + "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non crittografato. Non salvare o inviare il file esportato attraverso canali non protetti (come le email). Eliminalo immediatamente dopo l'utilizzo." }, "encExportKeyWarningDesc": { - "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 potrai più decifrare il file esportato e dovrai eseguire una nuova esportazione." + "message": "Questa esportazione crittografa i tuoi dati usando la chiave di crittografia del tuo account. Se cambi la chiave di crittografia del tuo account, non potrai più decifrare il file esportato e dovrai eseguire una nuova esportazione." }, "encExportAccountWarningDesc": { - "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." + "message": "Le chiavi di crittografia dell'account sono uniche per ogni account Bitwarden, quindi non puoi importare un file di esportazione crittato in un account diverso." }, "exportMasterPassword": { "message": "Inserisci la tua password principale per esportare i dati della tua cassaforte." @@ -796,7 +796,7 @@ "message": "Funzionalità non disponibile" }, "encryptionKeyMigrationRequired": { - "message": "Migrazione della chiave di criptografia obbligatoria. Accedi tramite la cassaforte web per aggiornare la tua chiave di criptografia." + "message": "Migrazione della chiave di crittografia obbligatoria. Accedi tramite la cassaforte web per aggiornare la tua chiave di crittografia." }, "premiumMembership": { "message": "Abbonamento Premium" @@ -817,7 +817,7 @@ "message": "Passa a Premium e ottieni:" }, "ppremiumSignUpStorage": { - "message": "1 GB di spazio di archiviazione criptato per gli allegati." + "message": "1 GB di spazio di archiviazione crittografato per gli allegati." }, "premiumSignUpTwoStepOptions": { "message": "Opzioni di verifica in due passaggi proprietarie come YubiKey e Duo." @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identità" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Cronologia delle password" }, @@ -1375,7 +1378,7 @@ "description": "ex. Date this password was updated" }, "neverLockWarning": { - "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." + "message": "Sei sicuro di voler usare l'opzione \"Mai\"? Impostare le opzioni di blocco su \"Mai\" salverà la chiave di crittografia della cassaforte sul tuo dispositivo. Se usi questa opzione, assicurati di mantenere il tuo dispositivo adeguatamente protetto." }, "noOrganizationsList": { "message": "Non appartieni a nessuna organizzazione. Le organizzazioni ti consentono di condividere elementi con altri in modo sicuro." @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una politica dell'organizzazione sta influenzando le tue opzioni di proprietà." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una politica dell'organizzazione ti impedisce di importare elementi nella tua cassaforte individuale." + }, "excludedDomains": { "message": "Domini esclusi" }, @@ -2435,15 +2441,174 @@ "message": "Dominio alias" }, "passwordRepromptDisabledAutofillOnPageLoad": { - "message": "Gli elementi che richiedono di inserire la password principale di nuovo non possono essere riempiti automaticamente al caricamento della pagina.", + "message": "Gli elementi che richiedono di inserire di nuovo la password principale non possono essere riempiti automaticamente al caricamento della pagina.", "description": "Toast message for describing that master password re-prompt cannot be auto-filled on page load." }, "autofillOnPageLoadSetToDefault": { - "message": "Il riempimento automatico al caricamento della pagina impostata per usare l'impostazione predefinita.", + "message": "Riempimento automatico al caricamento della pagina impostato con l'impostazione predefinita.", "description": "Toast message for informing the user that auto-fill on page load has been set to the default setting." }, "turnOffMasterPasswordPromptToEditField": { "message": "Disattiva l'inserimento della password principale di nuovo per modificare questo campo", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importa dati", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Errore di importazione" + }, + "importErrorDesc": { + "message": "Si è verificato un problema con i dati che hai provato a importare. Risolvi questi errori nel file e riprova." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Correggi gli errori qui sotto e riprova." + }, + "description": { + "message": "Descrizione" + }, + "importSuccess": { + "message": "Dati importati" + }, + "importSuccessNumberOfItems": { + "message": "$AMOUNT$ elementi sono stati importati.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Totale" + }, + "importWarning": { + "message": "Stai importando dati in $ORGANIZATION$. I tuoi dati potrebbero essere condivisi con i membri di questa organizzazione. Vuoi procedere?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "I dati non sono formattati correttamente. Controlla il file di importazione e riprova." + }, + "importNothingError": { + "message": "Non è stato importato niente." + }, + "importEncKeyError": { + "message": "Errore durante la decrittografia del file esportato. La chiave di crittografia non corrisponde alla chiave di crittografia usata per esportare i dati." + }, + "importDestination": { + "message": "Destinazione dell'importazione" + }, + "learnAboutImportOptions": { + "message": "Ulteriori informazioni sulle tue opzioni di importazione" + }, + "selectImportFolder": { + "message": "Seleziona una cartella" + }, + "selectImportCollection": { + "message": "Seleziona una raccolta" + }, + "importTargetHint": { + "message": "Seleziona questa opzione se vuoi che i contenuti del file di importazione siano spostati in una $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Il file contiene elementi non assegnati." + }, + "selectFormat": { + "message": "Seleziona il formato del file da importare" + }, + "selectImportFile": { + "message": "Seleziona il file da importare" + }, + "chooseFile": { + "message": "Seleziona file" + }, + "noFileChosen": { + "message": "Nessun file selezionato" + }, + "orCopyPasteFileContents": { + "message": "oppure copia e incolla il contenuto del file da importare" + }, + "instructionsFor": { + "message": "Istruzioni per $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Conferma importazione della cassaforte" + }, + "confirmVaultImportDesc": { + "message": "Questo file è protetto da password. Inserisci la password del file per importare i dati." + }, + "confirmFilePassword": { + "message": "Conferma password del file" + }, + "passkeyNotCopied": { + "message": "La passkey non sarà copiata" + }, + "passkeyNotCopiedAlert": { + "message": "La passkey non sarà copiata nell'elemento clonato. Vuoi continuare a clonare questo elemento?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verifica richiesta dal sito web. Questa funzionalità non è ancora implementata per gli account senza password principale." + }, + "logInWithPasskey": { + "message": "Accedi con passkey?" + }, + "passkeyAlreadyExists": { + "message": "Esiste già una passkey per questa applicazione." + }, + "noPasskeysFoundForThisApplication": { + "message": "Nessuna passkey trovata per questa applicazione." + }, + "noMatchingPasskeyLogin": { + "message": "Non hai un elemento corrispondente per questo sito." + }, + "confirm": { + "message": "Conferma" + }, + "savePasskey": { + "message": "Salva passkey" + }, + "savePasskeyNewLogin": { + "message": "Salva la passkey come nuovo elemento" + }, + "choosePasskey": { + "message": "Scegli un elemento in cui salvare questa passkey" + }, + "passkeyItem": { + "message": "Passkey" + }, + "overwritePasskey": { + "message": "Sovrascrivi passkey?" + }, + "overwritePasskeyAlert": { + "message": "Questo elemento contiene già una passkey. Sei sicuro di voler sovrascrivere la passkey corrente?" + }, + "featureNotSupported": { + "message": "Funzionalità non ancora supportata" + }, + "yourPasskeyIsLocked": { + "message": "Autenticazione obbligatoria per usare una passkey. Verifica la tua identità per continuare." + }, + "useBrowserName": { + "message": "Usa browser" } } diff --git a/apps/browser/src/_locales/ja/messages.json b/apps/browser/src/_locales/ja/messages.json index d2528a45489..747431f415f 100644 --- a/apps/browser/src/_locales/ja/messages.json +++ b/apps/browser/src/_locales/ja/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "ID" }, + "typePasskey": { + "message": "パスキー" + }, "passwordHistory": { "message": "パスワードの履歴" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "組織のポリシーが所有者のオプションに影響を与えています。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "組織のポリシーにより、個々の保管庫へのアイテムのインポートがブロックされました。" + }, "excludedDomains": { "message": "除外するドメイン" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "このフィールドを編集するには、マスターパスワードの再入力をオフにしてください", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "データのインポート", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "インポート エラー" + }, + "importErrorDesc": { + "message": "インポートしようとしたデータに問題がありました。以下のエラーをソースファイルで解決し、もう一度やり直してください。" + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "以下のエラーを解決してやり直してください。" + }, + "description": { + "message": "説明" + }, + "importSuccess": { + "message": "データをインポートしました" + }, + "importSuccessNumberOfItems": { + "message": "合計 $AMOUNT$ 件のアイテムをインポートしました。", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "合計" + }, + "importWarning": { + "message": "$ORGANIZATION$にデータをインポートしています。データはこの組織のメンバーと共有される可能性があります。続行しますか?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "データが正しい形式ではありません。インポートするファイルを確認してやり直してください。" + }, + "importNothingError": { + "message": "何もインポートされませんでした。" + }, + "importEncKeyError": { + "message": "エクスポートされたファイルの復号でエラーが発生しました。暗号化キーが、データをエクスポートするために使用された暗号化キーと一致しません。" + }, + "importDestination": { + "message": "インポート先" + }, + "learnAboutImportOptions": { + "message": "インポートオプションの詳細" + }, + "selectImportFolder": { + "message": "フォルダーを選択" + }, + "selectImportCollection": { + "message": "コレクションを選択" + }, + "importTargetHint": { + "message": "インポートしたファイルコンテンツを $DESTINATION$ に移動したい場合は、このオプションを選択してください。", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "割り当てられていないアイテムがファイルに含まれています。" + }, + "selectFormat": { + "message": "インポートするファイルの形式を選択" + }, + "selectImportFile": { + "message": "インポートするファイルを選択" + }, + "chooseFile": { + "message": "ファイルを選択" + }, + "noFileChosen": { + "message": "ファイルが選択されていません" + }, + "orCopyPasteFileContents": { + "message": "またはインポートするファイルの中身をコピーして貼り付け" + }, + "instructionsFor": { + "message": "$NAME$ 向けの説明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "保管庫のインポートの確認" + }, + "confirmVaultImportDesc": { + "message": "このファイルはパスワードで保護されています。インポートするファイルのパスワードを入力してください。" + }, + "confirmFilePassword": { + "message": "ファイルパスワードの確認" + }, + "passkeyNotCopied": { + "message": "パスキーはコピーされません" + }, + "passkeyNotCopiedAlert": { + "message": "パスキーは複製されたアイテムにコピーされません。このアイテムを複製しますか?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "開始サイトでの認証が必要です。この機能はマスターパスワードのないアカウントではまだ対応していません。" + }, + "logInWithPasskey": { + "message": "パスキーでログインしますか?" + }, + "passkeyAlreadyExists": { + "message": "このアプリにはすでにパスキーが存在します。" + }, + "noPasskeysFoundForThisApplication": { + "message": "このアプリにはパスキーがありません。" + }, + "noMatchingPasskeyLogin": { + "message": "このサイトに一致するログイン情報がありません。" + }, + "confirm": { + "message": "確認" + }, + "savePasskey": { + "message": "パスキーを保存" + }, + "savePasskeyNewLogin": { + "message": "パスキーを新しいログイン情報として保存" + }, + "choosePasskey": { + "message": "このパスキーを保存するログイン情報を選択してください" + }, + "passkeyItem": { + "message": "パスキーアイテム" + }, + "overwritePasskey": { + "message": "パスキーを上書きしますか?" + }, + "overwritePasskeyAlert": { + "message": "このアイテムにはすでにパスキーが含まれています。現在のパスキーを上書きしてもよろしいですか?" + }, + "featureNotSupported": { + "message": "機能は未対応です" + }, + "yourPasskeyIsLocked": { + "message": "パスキーを使用するには認証が必要です。続行するには本人確認を行ってください。" + }, + "useBrowserName": { + "message": "ブラウザーを使用" } } diff --git a/apps/browser/src/_locales/ka/messages.json b/apps/browser/src/_locales/ka/messages.json index 2d2b5cb8a5e..a2ff8bb6985 100644 --- a/apps/browser/src/_locales/ka/messages.json +++ b/apps/browser/src/_locales/ka/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/km/messages.json b/apps/browser/src/_locales/km/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/km/messages.json +++ b/apps/browser/src/_locales/km/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/kn/messages.json b/apps/browser/src/_locales/kn/messages.json index 95c9350aff8..53f8da830ff 100644 --- a/apps/browser/src/_locales/kn/messages.json +++ b/apps/browser/src/_locales/kn/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "ಗುರುತಿಸುವಿಕೆ" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "ಪಾಸ್ವರ್ಡ್ ಇತಿಹಾಸ" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "ಸಂಸ್ಥೆಯ ನೀತಿಯು ನಿಮ್ಮ ಮಾಲೀಕತ್ವದ ಆಯ್ಕೆಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತಿದೆ." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "ಹೊರತುಪಡಿಸಿದ ಡೊಮೇನ್ಗಳು" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/ko/messages.json b/apps/browser/src/_locales/ko/messages.json index e7aba95f493..291ebe6576c 100644 --- a/apps/browser/src/_locales/ko/messages.json +++ b/apps/browser/src/_locales/ko/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "신원" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "비밀번호 변경 기록" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "조직의 정책이 소유권 설정에 영향을 미치고 있습니다." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "제외된 도메인" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/lt/messages.json b/apps/browser/src/_locales/lt/messages.json index 885b3cbec8f..bf093b83b3a 100644 --- a/apps/browser/src/_locales/lt/messages.json +++ b/apps/browser/src/_locales/lt/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Tapatybė" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Slaptažodžio istorija" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/lv/messages.json b/apps/browser/src/_locales/lv/messages.json index 2abb0ac4de6..eb7f52cfefd 100644 --- a/apps/browser/src/_locales/lv/messages.json +++ b/apps/browser/src/_locales/lv/messages.json @@ -372,7 +372,7 @@ "message": "Lūgums apsvērt palīdzēt mums ar labu atsauksmi." }, "browserNotSupportClipboard": { - "message": "Tīmekļa pārlūks neatbalsta vienkāršu starpliktuves kopēšanu. Tā vietā tas pašrocīgi jāievieto starpliktuvē." + "message": "Pārlūks neatbalsta vienkāršo ievietošanu starpliktuvē. Tā vietā tas jāievieto starpliktuvē pašrocīgi." }, "verifyIdentity": { "message": "Apstiprināt identitāti" @@ -549,7 +549,7 @@ "message": "Uzsākšanas pamācība" }, "gettingStartedTutorialVideo": { - "message": "Noskaties mūsu uzsākšanas pamācību, lai uzzinātu, kā iegūt vislielāko labumu no pārlūka paplašinājuma." + "message": "Noskaties mūsu uzsākšanas pamācību, lai uzzinātu, kā iegūt vislielāko labumu no pārlūka paplašinājuma!" }, "syncingComplete": { "message": "Sinhronizācija pabeigta" @@ -636,7 +636,7 @@ "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "clearClipboardDesc": { - "message": "Automātiski noņemt kopētās vērtības no starpliktuves.", + "message": "Automātiski noņemt starpliktuvē ievietotās vērtības.", "description": "Clipboard is the operating system thing where you copy/paste data to on your device." }, "notificationAddDesc": { @@ -862,7 +862,7 @@ "message": "Automātiski ievietot TOTP starpliktuvē" }, "disableAutoTotpCopyDesc": { - "message": "Ja pieteikšanās vienumam ir pievienota autentificētāja atslēga, TOTP apstiprinājuma kods tiks automātiski pārkopēts uz starpliktuvi, kad vien tiks automātiski aizpildīta pieteikšanās veidne." + "message": "Ja pieteikšanās vienumam ir pievienota autentificētāja atslēga, TOTP apstiprinājuma kods tiks automātiski ievietots starpliktuvē, kad vien tiks automātiski aizpildīta pieteikšanās veidne." }, "enableAutoBiometricsPrompt": { "message": "Palaižot vaicāt biometriju" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitāte" }, + "typePasskey": { + "message": "Piekļuves atslēga" + }, "passwordHistory": { "message": "Paroļu vēsture" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Apvienības nosacījumi ietekmē Tavas īpašumtiesību iespējas." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Apvienības nosacījums neļauj ievietot ārējos vienumus savā personīgajā glabātavā." + }, "excludedDomains": { "message": "Izņēmuma domēni" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Jāizslēdz galvenās paroles pārvaicāšana, lai labotu šo lauku", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Ievietot datus", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Ievietošanas kļūda" + }, + "importErrorDesc": { + "message": "Ir nepilnības ievietojamajos datos. Lūgums novērst zemāk uzskaitītās kļūdas avota datnē un mēģināt vēlreiz." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Jāatrisina zemāk norādītās kļūdas un jāmēģina vēlreiz." + }, + "description": { + "message": "Apraksts" + }, + "importSuccess": { + "message": "Dati veiksmīgi ievietoti" + }, + "importSuccessNumberOfItems": { + "message": "Kopumā tika ievietoti $AMOUNT$ vienumi.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Kopā" + }, + "importWarning": { + "message": "Tiek ievietoti dati apvienībā $ORGANIZATION$. Tie var tikt kopīgoti ar citiem apvienības dalībniekiem. Vai turpināt?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dati nav pareizi formatēti. Lūgums pārbaudīt ievietošanas datni un mēģināt vēlreiz." + }, + "importNothingError": { + "message": "Nekas netika ievietots." + }, + "importEncKeyError": { + "message": "Kļūda izguves datnes atšifrēšanā. Izmantotā atslēga neatbilst tai, kas tika izmantota satura izgūšanai." + }, + "importDestination": { + "message": "Ievietošanas galamērķis" + }, + "learnAboutImportOptions": { + "message": "Uzzināt par ievietošanas iespējām" + }, + "selectImportFolder": { + "message": "Atlasīt mapi" + }, + "selectImportCollection": { + "message": "Atlasīt krājumu" + }, + "importTargetHint": { + "message": "Šī iespēja jāatlasa, ja ir vēlēšanās ievietotās datnes saturu pārvietot uz $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Datne satur nepiešķirtus vienumus." + }, + "selectFormat": { + "message": "Atlasīt ievietošanas datnes veidolu" + }, + "selectImportFile": { + "message": "Atlasīt ievietošanas datni" + }, + "chooseFile": { + "message": "Izvēlēties datni" + }, + "noFileChosen": { + "message": "Nav izvēlēta neviena datne" + }, + "orCopyPasteFileContents": { + "message": "vai ievietot starpliktuvē un ielīmēt ievietošanas datnes saturu" + }, + "instructionsFor": { + "message": "Norādījumi $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Apstiprināt glabātavas satura ievietošanu" + }, + "confirmVaultImportDesc": { + "message": "Šī datne ir aizsargāta ar paroli. Lūgums ievadīt datnes paroli, lai ievietotu datus." + }, + "confirmFilePassword": { + "message": "Apstiprināt datnes paroli" + }, + "passkeyNotCopied": { + "message": "Piekļuves atslēga netiks ievietota starpliktuvē" + }, + "passkeyNotCopiedAlert": { + "message": "Piekļuves atslēga netiks ievietota klonētajā vienumā. Vai turpināt šī vienuma klonēšanu?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Vietne, kurā tika uzsākta darbība, pieprasa pārbaudi. Šī iespēja vēl nav īstenota kontiem, kuriem nav galvenās paroles." + }, + "logInWithPasskey": { + "message": "Pieteikties ar piekļuves atslēgu?" + }, + "passkeyAlreadyExists": { + "message": "Šai lietotnei jau pastāv piekļuves atslēga." + }, + "noPasskeysFoundForThisApplication": { + "message": "Šai lietotnei netika atrastas piekļuves atslēgas." + }, + "noMatchingPasskeyLogin": { + "message": "Nav šai vietnei atbilstoša pieteikšanās vienuma." + }, + "confirm": { + "message": "Apstiprināt" + }, + "savePasskey": { + "message": "Saglabāt piekļuves atslēgu" + }, + "savePasskeyNewLogin": { + "message": "Saglabāt piekļuves atslēgu kā jaunu pieteikšanās vienumu" + }, + "choosePasskey": { + "message": "Izvēlēties pieteikšanās vienumu, kurā saglabāt šo piekļuves atslēgu" + }, + "passkeyItem": { + "message": "Piekļuves atslēgas vienums" + }, + "overwritePasskey": { + "message": "Pārrakstīt piekļuves atslēgu?" + }, + "overwritePasskeyAlert": { + "message": "Šis vienums jau satur piekļuves atslēgu. Vai tiešām pārrakstīt pašreizējo piekļuves atslēgu?" + }, + "featureNotSupported": { + "message": "Iespēja vēl netiek nodrošināta" + }, + "yourPasskeyIsLocked": { + "message": "Nepieciešama apstiprinājums, lai izmantotu piekļuves atslēgu. Jāapliecina sava identitāte, lai turpinātu." + }, + "useBrowserName": { + "message": "Izmantot pārlūku" } } diff --git a/apps/browser/src/_locales/ml/messages.json b/apps/browser/src/_locales/ml/messages.json index 258ad3fd966..a6bac72dc40 100644 --- a/apps/browser/src/_locales/ml/messages.json +++ b/apps/browser/src/_locales/ml/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "ഐഡന്റിറ്റി" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "പാസ്സ്‌വേഡ് നാൾവഴി" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/mr/messages.json b/apps/browser/src/_locales/mr/messages.json index 131c062d544..d4b7f294342 100644 --- a/apps/browser/src/_locales/mr/messages.json +++ b/apps/browser/src/_locales/mr/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/my/messages.json b/apps/browser/src/_locales/my/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/my/messages.json +++ b/apps/browser/src/_locales/my/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/nb/messages.json b/apps/browser/src/_locales/nb/messages.json index 43a19478bb0..84007751f7b 100644 --- a/apps/browser/src/_locales/nb/messages.json +++ b/apps/browser/src/_locales/nb/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitet" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Passordhistorikk" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "En virksomhetsregel påvirker dine eierskapsinnstillinger." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Ekskluderte domener" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/ne/messages.json b/apps/browser/src/_locales/ne/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/ne/messages.json +++ b/apps/browser/src/_locales/ne/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/nl/messages.json b/apps/browser/src/_locales/nl/messages.json index 630510f6723..b240ae5d1d4 100644 --- a/apps/browser/src/_locales/nl/messages.json +++ b/apps/browser/src/_locales/nl/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identiteit" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Geschiedenis" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Een organisatiebeleid heeft invloed op je eigendomsopties." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Organisatiebeleid heeft het importeren van items in je persoonlijke kluis geblokkeerd." + }, "excludedDomains": { "message": "Uitgesloten domeinen" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Data importeren", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Fout bij importeren" + }, + "importErrorDesc": { + "message": "Er was een probleem met de data die je probeerde te importeren. Los de onderstaande fouten op in het bronbestand en probeer het opnieuw." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Los onderstaande fouten op en probeer het opnieuw." + }, + "description": { + "message": "Omschrijving" + }, + "importSuccess": { + "message": "Data succesvol geïmporteerd" + }, + "importSuccessNumberOfItems": { + "message": "Een totaal van $AMOUNT$ items zijn geïmporteerd.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Totaal" + }, + "importWarning": { + "message": "Je importeert gegevens naar $ORGANIZATION$. Je gegevens kunnen gedeeld worden met de leden van deze organisatie. Wil je doorgaan?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "De gegevens zijn niet correct opgemaakt. Controleer je importbestand en probeer het opnieuw." + }, + "importNothingError": { + "message": "Er is niets geïmporteerd." + }, + "importEncKeyError": { + "message": "Fout bij het decoderen van het geëxporteerde bestand. Je encryptiesleutel komt niet overeen met de gebruikte sleutel waarmee de gegevens zijn geëxporteerd." + }, + "importDestination": { + "message": "Importbestemming" + }, + "learnAboutImportOptions": { + "message": "Leer meer over je importopties" + }, + "selectImportFolder": { + "message": "Map selecteren" + }, + "selectImportCollection": { + "message": "Collectie selecteren" + }, + "importTargetHint": { + "message": "Kies deze optie als je de geïmporteerde bestandsinhoud wilt verplaatsen naar een $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Bestand bevat niet-toegewezen items." + }, + "selectFormat": { + "message": "Formaat van het importbestand kiezen" + }, + "selectImportFile": { + "message": "Importbestand kiezen" + }, + "chooseFile": { + "message": "Bestand kiezen" + }, + "noFileChosen": { + "message": "Geen bestand gekozen" + }, + "orCopyPasteFileContents": { + "message": "of kopieer en plak de inhoud van het importbestand" + }, + "instructionsFor": { + "message": "Instructies voor $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Kluisimport bevestigen" + }, + "confirmVaultImportDesc": { + "message": "Dit bestand is beveiligd met een wachtwoord. Voer het bestandswachtwoord in om gegevens te importeren." + }, + "confirmFilePassword": { + "message": "Bestandswachtwoord bevestigen" + }, + "passkeyNotCopied": { + "message": "Passkey wordt niet gekopieerd" + }, + "passkeyNotCopiedAlert": { + "message": "De passkey wordt niet gekopieerd naar het gekloonde item. Wil je doorgaan met het klonen van dit item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "De initiërende site vereist verificatie. Deze functie is nog niet geïmplementeerd voor accounts zonder hoofdwachtwoord." + }, + "logInWithPasskey": { + "message": "Inloggen met passkey?" + }, + "passkeyAlreadyExists": { + "message": "Er bestaat al een passkey voor deze applicatie." + }, + "noPasskeysFoundForThisApplication": { + "message": "Geen passkeys gevonden voor deze applicatie." + }, + "noMatchingPasskeyLogin": { + "message": "Je hebt geen overeenkomende login voor deze site." + }, + "confirm": { + "message": "Bevestigen" + }, + "savePasskey": { + "message": "Passkey opslaan" + }, + "savePasskeyNewLogin": { + "message": "Passkey als nieuwe login opslaan" + }, + "choosePasskey": { + "message": "Kies een login om deze passkey bij op te slaan" + }, + "passkeyItem": { + "message": "Passkey-Item" + }, + "overwritePasskey": { + "message": "Passkey overschrijven?" + }, + "overwritePasskeyAlert": { + "message": "Dit item bevat al een passkey. Weet je zeker dat je de huidige passkey wilt overschrijven?" + }, + "featureNotSupported": { + "message": "Functie nog niet ondersteund" + }, + "yourPasskeyIsLocked": { + "message": "Authenticatie vereist om passkey te gebruiken. Verifieer je identiteit om door te gaan." + }, + "useBrowserName": { + "message": "Browser gebruiken" } } diff --git a/apps/browser/src/_locales/nn/messages.json b/apps/browser/src/_locales/nn/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/nn/messages.json +++ b/apps/browser/src/_locales/nn/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/or/messages.json b/apps/browser/src/_locales/or/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/or/messages.json +++ b/apps/browser/src/_locales/or/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/pl/messages.json b/apps/browser/src/_locales/pl/messages.json index 5b16c13ef14..15b57656d73 100644 --- a/apps/browser/src/_locales/pl/messages.json +++ b/apps/browser/src/_locales/pl/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Tożsamość" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Historia hasła" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Zasada organizacji ma wpływ na opcję własności elementów." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Polityka organizacji zablokowała importowanie elementów do Twojego sejfu." + }, "excludedDomains": { "message": "Wykluczone domeny" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Wyłącz prośbę o podanie hasła głównego, aby edytować to pole", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importuj dane", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Błąd importu" + }, + "importErrorDesc": { + "message": "Wystąpił problem z danymi, które chcesz zaimportować. Rozwiąż poniższe problemy w Twoim pliku i spróbuj ponownie." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Rozwiąż poniższe błędy i spróbuj ponownie." + }, + "description": { + "message": "Opis" + }, + "importSuccess": { + "message": "Importowanie danych zakończone sukcesem" + }, + "importSuccessNumberOfItems": { + "message": "Zaimportowano elementów: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Łącznie" + }, + "importWarning": { + "message": "Importujesz dane do organizacji $ORGANIZATION$. Dane mogą zostać udostępnione członkom organizacji. Czy chcesz kontynuować?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dane nie są poprawnie sformatowane. Sprawdź importowany plik i spróbuj ponownie." + }, + "importNothingError": { + "message": "Nic nie zostało zaimportowane." + }, + "importEncKeyError": { + "message": "Wystąpił błąd podczas odszyfrowywania pliku. Klucz szyfrowania nie pasuje do klucza użytego podczas eksportowania danych." + }, + "importDestination": { + "message": "Miejsce docelowe importu" + }, + "learnAboutImportOptions": { + "message": "Dowiedz się więcej o opcjach importu" + }, + "selectImportFolder": { + "message": "Wybierz folder" + }, + "selectImportCollection": { + "message": "Wybierz kolekcję" + }, + "importTargetHint": { + "message": "Wybierz tę opcję, jeśli chcesz, aby zawartość zaimportowanego pliku została przeniesiona do $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Plik zawiera nieprzypisane elementy." + }, + "selectFormat": { + "message": "Wybierz format importowanego pliku" + }, + "selectImportFile": { + "message": "Wybierz plik do zaimportowania" + }, + "chooseFile": { + "message": "Wybierz plik" + }, + "noFileChosen": { + "message": "Nie wybrano pliku" + }, + "orCopyPasteFileContents": { + "message": "lub skopiuj/wklej treść pliku" + }, + "instructionsFor": { + "message": "Instrukcja dla $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potwierdź importowanie sejfu" + }, + "confirmVaultImportDesc": { + "message": "Plik jest chroniony hasłem. Wprowadź hasło pliku, aby zaimportować dane." + }, + "confirmFilePassword": { + "message": "Potwierdź hasło pliku" + }, + "passkeyNotCopied": { + "message": "Passkey nie zostanie skopiowany" + }, + "passkeyNotCopiedAlert": { + "message": "Passkey nie zostanie skopiowane do sklonowanego elementu. Czy chcesz kontynuować klonowanie tego elementu?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Weryfikacja jest wymagana przez stronę inicjującą. Ta funkcja nie jest jeszcze zaimplementowana dla kont bez hasła głównego." + }, + "logInWithPasskey": { + "message": "Zaloguj się za pomocą passkey?" + }, + "passkeyAlreadyExists": { + "message": "Passkey już istnieje dla tej aplikacji." + }, + "noPasskeysFoundForThisApplication": { + "message": "Nie znaleziono passkey'a dla tej aplikacji." + }, + "noMatchingPasskeyLogin": { + "message": "Nie masz pasujących danych logowania do tej witryny." + }, + "confirm": { + "message": "Potwierdź" + }, + "savePasskey": { + "message": "Zapisz passkey" + }, + "savePasskeyNewLogin": { + "message": "Zapisz passkey jako nowe dane logowania" + }, + "choosePasskey": { + "message": "Wybierz dane logowania do których przypisać passkey" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Zastąpić passkey?" + }, + "overwritePasskeyAlert": { + "message": "Ten element zawiera już passkey. Czy na pewno chcesz nadpisać bieżący passkey?" + }, + "featureNotSupported": { + "message": "Funkcja nie jest jeszcze obsługiwana" + }, + "yourPasskeyIsLocked": { + "message": "Wymagane uwierzytelnienie aby używać passkey. Sprawdź swoją tożsamość, aby kontynuować." + }, + "useBrowserName": { + "message": "Użyj przeglądarki" } } diff --git a/apps/browser/src/_locales/pt_BR/messages.json b/apps/browser/src/_locales/pt_BR/messages.json index 7578ae170ca..22e89684854 100644 --- a/apps/browser/src/_locales/pt_BR/messages.json +++ b/apps/browser/src/_locales/pt_BR/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identidade" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Histórico de Senha" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Uma política de organização está afetando suas opções de propriedade." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Domínios Excluídos" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/pt_PT/messages.json b/apps/browser/src/_locales/pt_PT/messages.json index 1495b64e453..b409a1e1e2d 100644 --- a/apps/browser/src/_locales/pt_PT/messages.json +++ b/apps/browser/src/_locales/pt_PT/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identidade" }, + "typePasskey": { + "message": "Chave de acesso" + }, "passwordHistory": { "message": "Histórico de palavras-passe" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Uma política da organização está a afetar as suas opções de propriedade." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Uma política da organização bloqueou a importação de itens para o seu cofre individual." + }, "excludedDomains": { "message": "Domínios excluídos" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Desativar o pedido para reintroduzir a palavra-passe mestra para editar este campo", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importar dados", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Erro de importação" + }, + "importErrorDesc": { + "message": "Ocorreu um problema com os dados que tentou importar. Por favor, resolva os erros indicados abaixo no seu ficheiro de origem e tente novamente." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolva os erros abaixo e tente novamente." + }, + "description": { + "message": "Descrição" + }, + "importSuccess": { + "message": "Dados importados com sucesso" + }, + "importSuccessNumberOfItems": { + "message": "Foi importado um total de $AMOUNT$ itens.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Está a importar dados para a $ORGANIZATION$. Os seus dados podem ser partilhados com membros desta organização. Deseja prosseguir?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Os dados não estão formatados corretamente. Por favor, verifique o seu ficheiro de importação e tente novamente." + }, + "importNothingError": { + "message": "Nada foi importado." + }, + "importEncKeyError": { + "message": "Erro ao desencriptar o ficheiro exportado. A sua chave de encriptação não corresponde à chave de encriptação utilizada para exportar os dados." + }, + "importDestination": { + "message": "Destino da importação" + }, + "learnAboutImportOptions": { + "message": "Saiba mais sobre as suas opções de importação" + }, + "selectImportFolder": { + "message": "Selecionar uma pasta" + }, + "selectImportCollection": { + "message": "Selecionar uma coleção" + }, + "importTargetHint": { + "message": "Selecione esta opção se pretender que o conteúdo do ficheiro importado seja transferido para $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "O ficheiro contém itens não atribuídos." + }, + "selectFormat": { + "message": "Selecione o formato do ficheiro a importar" + }, + "selectImportFile": { + "message": "Selecione o ficheiro a importar" + }, + "chooseFile": { + "message": "Escolher ficheiro" + }, + "noFileChosen": { + "message": "Nenhum ficheiro escolhido" + }, + "orCopyPasteFileContents": { + "message": "ou faça copiar/colar o conteúdo do ficheiro de importação" + }, + "instructionsFor": { + "message": "Instruções para $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirmar a importação do cofre" + }, + "confirmVaultImportDesc": { + "message": "Este ficheiro está protegido por palavra-passe. Introduza a palavra-passe do ficheiro para importar os dados." + }, + "confirmFilePassword": { + "message": "Confirmar a palavra-passe do ficheiro" + }, + "passkeyNotCopied": { + "message": "A chave de acesso não será copiada" + }, + "passkeyNotCopiedAlert": { + "message": "A chave de acesso não será copiada para o item duplicado. Pretende ainda assim duplicar este item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verificação exigida pelo site inicial. Esta funcionalidade ainda não está implementada para contas sem palavra-passe mestra." + }, + "logInWithPasskey": { + "message": "Iniciar sessão com a chave de acesso?" + }, + "passkeyAlreadyExists": { + "message": "Já existe uma chave de acesso para esta aplicação." + }, + "noPasskeysFoundForThisApplication": { + "message": "Não foram encontradas chaves de acesso para esta aplicação." + }, + "noMatchingPasskeyLogin": { + "message": "Não tem uma credencial correspondente para este site." + }, + "confirm": { + "message": "Confirmar" + }, + "savePasskey": { + "message": "Guardar a chave de acesso" + }, + "savePasskeyNewLogin": { + "message": "Guardar a chave de acesso como uma nova credencial" + }, + "choosePasskey": { + "message": "Escolha uma credencial para guardar esta chave de acesso" + }, + "passkeyItem": { + "message": "Item da chave de acesso" + }, + "overwritePasskey": { + "message": "Substituir chave de acesso?" + }, + "overwritePasskeyAlert": { + "message": "Este item já contém uma chave de acesso. Tem a certeza de que pretende substituir a chave de acesso atual?" + }, + "featureNotSupported": { + "message": "Funcionalidade ainda não suportada" + }, + "yourPasskeyIsLocked": { + "message": "É necessária a autenticação para utilizar a chave de acesso. Verifique a sua identidade para continuar." + }, + "useBrowserName": { + "message": "Utilizar o navegador" } } diff --git a/apps/browser/src/_locales/ro/messages.json b/apps/browser/src/_locales/ro/messages.json index 085951a93f1..b6ec78b92d3 100644 --- a/apps/browser/src/_locales/ro/messages.json +++ b/apps/browser/src/_locales/ro/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitate" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Istoric parole" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "O politică de organizație vă afectează opțiunile de proprietate." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Domenii excluse" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Dezactivați reintroducerea parolei principale pentru a edita acest câmp", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/ru/messages.json b/apps/browser/src/_locales/ru/messages.json index 40ecd382bd5..b0e81fa1914 100644 --- a/apps/browser/src/_locales/ru/messages.json +++ b/apps/browser/src/_locales/ru/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Личная информация" }, + "typePasskey": { + "message": "Ключ доступа" + }, "passwordHistory": { "message": "История паролей" }, @@ -1378,7 +1381,7 @@ "message": "Вы действительно хотите отключить блокировку хранилища? В этом случае ключ шифрования вашего хранилища будет сохранен на вашем устройстве. Отключая блокировку, вы должны убедиться, что ваше устройство надежно защищено." }, "noOrganizationsList": { - "message": "Вы не являетесь членом какой-либо организации. Организации позволяют безопасно обмениваться элементами с другими пользователями." + "message": "Вы не являетесь участником какой-либо организации. Организации позволяют безопасно обмениваться элементами с другими пользователями." }, "noCollectionsInList": { "message": "Нет коллекций для отображения." @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Политика организации влияет на ваши варианты владения." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Импорт элементов в ваше личное хранилище отключен политикой организации." + }, "excludedDomains": { "message": "Исключенные домены" }, @@ -1983,7 +1989,7 @@ "message": "Уникальный идентификатор не найден." }, "convertOrganizationEncryptionDesc": { - "message": "$ORGANIZATION$ использует SSO с собственным сервером ключей. Для авторизации членам этой организации больше не требуется мастер-пароль.", + "message": "$ORGANIZATION$ использует SSO с собственным сервером ключей. Для авторизации пользователям этой организации больше не требуется мастер-пароль.", "placeholders": { "organization": { "content": "$1", @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Для редактирования этого поля отключите повторный запрос мастер-пароля", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Импорт данных", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Ошибка импорта" + }, + "importErrorDesc": { + "message": "Возникла проблема с данными, которые вы пытались импортировать. Исправьте в исходном файле перечисленные ниже ошибки и попробуйте еще раз." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Устраните указанные ниже ошибки и повторите попытку." + }, + "description": { + "message": "Описание" + }, + "importSuccess": { + "message": "Данные успешно импортированы" + }, + "importSuccessNumberOfItems": { + "message": "Всего импортировано элементов: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Всего" + }, + "importWarning": { + "message": "Вы импортируете данные в $ORGANIZATION$. Пользователи этой организации могут получить к ним доступ. Продолжить?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Формат данных некорректен. Проверьте импортируемый файл и повторите попытку." + }, + "importNothingError": { + "message": "Ничего не было импортировано." + }, + "importEncKeyError": { + "message": "Ошибка при расшифровке экспортированного файла. Ваш ключ шифрования не совпадает с ключом шифрования, использованным при экспорте данных." + }, + "importDestination": { + "message": "Цель импорта" + }, + "learnAboutImportOptions": { + "message": "Узнайте о возможностях импорта" + }, + "selectImportFolder": { + "message": "Выберите папку" + }, + "selectImportCollection": { + "message": "Выберите коллекцию" + }, + "importTargetHint": { + "message": "Выберите эту опцию, если хотите, чтобы содержимое импортированного файла было перемещено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файл содержит неназначенные элементы." + }, + "selectFormat": { + "message": "Выберите формат импортируемого файла" + }, + "selectImportFile": { + "message": "Выберите импортируемый файл" + }, + "chooseFile": { + "message": "Выбрать файл" + }, + "noFileChosen": { + "message": "Файл не выбран" + }, + "orCopyPasteFileContents": { + "message": "или скопируйте и вставьте содержимое импортируемого файла" + }, + "instructionsFor": { + "message": "Инструкции для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Подтвердите импорт хранилища" + }, + "confirmVaultImportDesc": { + "message": "Этот файл защищен паролем. Введите пароль для импорта данных." + }, + "confirmFilePassword": { + "message": "Подтвердите пароль к файлу" + }, + "passkeyNotCopied": { + "message": "Ключ доступа не будет скопирован" + }, + "passkeyNotCopiedAlert": { + "message": "Ключ доступа не будет скопирован в клонированный элемент. Продолжить клонирование этого элемента?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Необходима верификация со стороны инициирующего сайта. Для аккаунтов без мастер-пароля эта возможность пока не реализована." + }, + "logInWithPasskey": { + "message": "Войти с ключом доступа?" + }, + "passkeyAlreadyExists": { + "message": "Для данного приложения уже существует ключ доступа." + }, + "noPasskeysFoundForThisApplication": { + "message": "Для данного приложения ключей доступа не найдено." + }, + "noMatchingPasskeyLogin": { + "message": "У вас нет подходящего логина для этого сайта." + }, + "confirm": { + "message": "Подтвердить" + }, + "savePasskey": { + "message": "Сохранить ключ доступа" + }, + "savePasskeyNewLogin": { + "message": "Сохранить ключ доступа как новый логин" + }, + "choosePasskey": { + "message": "Выберите логин, для которого будет сохранен данный ключ доступа" + }, + "passkeyItem": { + "message": "Ключ доступа элемента" + }, + "overwritePasskey": { + "message": "Перезаписать ключ доступа?" + }, + "overwritePasskeyAlert": { + "message": "Этот элемент уже содержит ключ доступа. Вы уверены, что хотите перезаписать текущий ключ?" + }, + "featureNotSupported": { + "message": "Функция пока не поддерживается" + }, + "yourPasskeyIsLocked": { + "message": "Для использования ключа доступа необходима аутентификация. Для продолжения работы подтвердите свою личность." + }, + "useBrowserName": { + "message": "Использовать браузер" } } diff --git a/apps/browser/src/_locales/si/messages.json b/apps/browser/src/_locales/si/messages.json index 8ea364cb6d1..a8d880b2a04 100644 --- a/apps/browser/src/_locales/si/messages.json +++ b/apps/browser/src/_locales/si/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "අනන්යතාවය" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "මුරපද ඉතිහාසය" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "සංවිධාන ප්රතිපත්තියක් ඔබේ හිමිකාරිත්ව විකල්පයන් කෙරෙහි බලපායි." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "බැහැර වසම්" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/sk/messages.json b/apps/browser/src/_locales/sk/messages.json index d04f2ccf05a..6403ceae1b0 100644 --- a/apps/browser/src/_locales/sk/messages.json +++ b/apps/browser/src/_locales/sk/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identita" }, + "typePasskey": { + "message": "Prístupový kľúč" + }, "passwordHistory": { "message": "História hesla" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Politika organizácie ovplyvňuje vaše možnosti vlastníctva." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zásady organizácie zablokovali importovanie položiek do vášho osobného trezoru." + }, "excludedDomains": { "message": "Vylúčené domény" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Vypnite výzvu na opätovné zadanie hlavného hesla na úpravu tohto poľa", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import údajov", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Chyba importu" + }, + "importErrorDesc": { + "message": "Vyskytol sa problém s údajmi, ktoré ste sa pokúsili importovať. Vyriešte chyby uvedené nižšie v zdrojovom súbore a skúste to znova." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Vyriešte problémy nižšie a skúste to znova." + }, + "description": { + "message": "Popis" + }, + "importSuccess": { + "message": "Importovanie prebehlo úspešne" + }, + "importSuccessNumberOfItems": { + "message": "Dokopy bolo importovaných $AMOUNT$ položiek.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Celkom" + }, + "importWarning": { + "message": "Importujete údaje do $ORGANIZATION$. Vaše údaje môžu byť zdieľané s členmi tejto organizácie. Chcete pokračovať?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dáta nie sú správne formátované. Prosím, overte importovaný súbor a skúste to znova." + }, + "importNothingError": { + "message": "Nič sa neimportovalo." + }, + "importEncKeyError": { + "message": "Chyba pri dešifrovaní exportovaného súboru. Váš šifrovací kľúč sa nezhoduje so šifrovacím kľúčom použitým pri exporte údajov." + }, + "importDestination": { + "message": "Cieľ importu" + }, + "learnAboutImportOptions": { + "message": "Zistiť viac o možnostiach importu" + }, + "selectImportFolder": { + "message": "Vyberte priečinok" + }, + "selectImportCollection": { + "message": "Vyberte zbierku" + }, + "importTargetHint": { + "message": "Zvoľte túto možnosť, ak chcete obsah importovaného súboru presunúť do $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Súbor obsahuje nepriradené položky." + }, + "selectFormat": { + "message": "Vyberte formát súboru importu" + }, + "selectImportFile": { + "message": "Vybrať súbor na import" + }, + "chooseFile": { + "message": "Vybrať súbor" + }, + "noFileChosen": { + "message": "Nebol vybratý žiadny súbor" + }, + "orCopyPasteFileContents": { + "message": "alebo kopírujte/vložte obsah súboru" + }, + "instructionsFor": { + "message": "$NAME$ pokyny", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potvrdiť import trezoru" + }, + "confirmVaultImportDesc": { + "message": "Tento súbor je chránený heslom. Ak chcete importovať údaje, zadajte heslo súboru." + }, + "confirmFilePassword": { + "message": "Potvrdiť heslo súboru" + }, + "passkeyNotCopied": { + "message": "Prístupový kód sa neskopíruje" + }, + "passkeyNotCopiedAlert": { + "message": "Prístupový kľúč sa do klonovanej položky neskopíruje. Chcete pokračovať v klonovaní tejto položky?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Overenie požadované iniciujúcim webom. Táto funkcia zatiaľ nie je implementovaná pre účty bez hlavného hesla." + }, + "logInWithPasskey": { + "message": "Prihlásiť sa s prístupovým kľúčom?" + }, + "passkeyAlreadyExists": { + "message": "Pre túto aplikáciu už existuje prístupový kľúč." + }, + "noPasskeysFoundForThisApplication": { + "message": "Pre túto aplikáciu neboli nájdené žiadne prístupové kľúče." + }, + "noMatchingPasskeyLogin": { + "message": "Pre túto stránku nemáte zodpovedajúce prihlasovacie údaje." + }, + "confirm": { + "message": "Potvrdiť" + }, + "savePasskey": { + "message": "Uložiť prístupový kľúč" + }, + "savePasskeyNewLogin": { + "message": "Uložiť prístupový kľúč ako nové prihlasovacie údaje" + }, + "choosePasskey": { + "message": "Vyberte prihlasovacie údaje, do ktorých chcete uložiť prístupový kľúč" + }, + "passkeyItem": { + "message": "Položka prístupového kľúča" + }, + "overwritePasskey": { + "message": "Prepísať prístupový kľúč?" + }, + "overwritePasskeyAlert": { + "message": "Táto položka už obsahuje prístupový kľúč. Naozaj chcete prepísať aktuálny prístupový kľúč?" + }, + "featureNotSupported": { + "message": "Funkcia ešte nie je podporovaná" + }, + "yourPasskeyIsLocked": { + "message": "Na použitie prístupového kľúča sa vyžaduje overenie. Ak chcete pokračovať, overte svoju totožnosť." + }, + "useBrowserName": { + "message": "Použiť webový prehliadač" } } diff --git a/apps/browser/src/_locales/sl/messages.json b/apps/browser/src/_locales/sl/messages.json index 5f859e9e5f3..28abc91b1c8 100644 --- a/apps/browser/src/_locales/sl/messages.json +++ b/apps/browser/src/_locales/sl/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identiteta" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Zgodovina gesel" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Izključene domene" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/sr/messages.json b/apps/browser/src/_locales/sr/messages.json index d55a5bfe197..d4322cd2546 100644 --- a/apps/browser/src/_locales/sr/messages.json +++ b/apps/browser/src/_locales/sr/messages.json @@ -92,13 +92,13 @@ "message": "Аутоматско допуњавање" }, "autoFillLogin": { - "message": "Auto-fill login" + "message": "Ауто-пуњење пријаве" }, "autoFillCard": { - "message": "Auto-fill card" + "message": "Ауто-пуњење картице" }, "autoFillIdentity": { - "message": "Auto-fill identity" + "message": "Ауто-пуњење идентитета" }, "generatePasswordCopied": { "message": "Генериши Лозинку (копирано)" @@ -110,19 +110,19 @@ "message": "Нема одговарајућих пријављивања." }, "noCards": { - "message": "No cards" + "message": "Нема карте" }, "noIdentities": { - "message": "No identities" + "message": "Нема идентитета" }, "addLoginMenu": { - "message": "Add login" + "message": "Нема пријаве" }, "addCardMenu": { - "message": "Add card" + "message": "Додати картицу" }, "addIdentityMenu": { - "message": "Add identity" + "message": "Додати идентитет" }, "unlockVaultMenu": { "message": "Откључај свој сеф" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Идентитет" }, + "typePasskey": { + "message": "Приступачни кључ" + }, "passwordHistory": { "message": "Историја Лозинке" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "смернице организације утичу на ваше могућности власништва." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Изузети домени" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Искључите поновни упит главне лозинке да бисте уредили ово поље", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Приступачни кључ неће бити копиран" + }, + "passkeyNotCopiedAlert": { + "message": "Приступачни кључ неће бити копиран на клонирану ставку. Да ли желите да наставите са клонирањем ставке?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Верификацију захтева сајт који покреће. Ова функција још увек није имплементирана за налоге без главне лозинке." + }, + "logInWithPasskey": { + "message": "Пријавите се са приступачним кључем?" + }, + "passkeyAlreadyExists": { + "message": "За ову апликацију већ постоји приступачни кључ." + }, + "noPasskeysFoundForThisApplication": { + "message": "Нису пронађени приступни кључеви за ову апликацију." + }, + "noMatchingPasskeyLogin": { + "message": "Немате одговарајућу пријаву за овај сајт." + }, + "confirm": { + "message": "Потврди" + }, + "savePasskey": { + "message": "Сачувати приступни кључ" + }, + "savePasskeyNewLogin": { + "message": "Сачувати приступни кључ као нову пријаву" + }, + "choosePasskey": { + "message": "Изаберите пријаву да бисте сачували овај приступни кључ" + }, + "passkeyItem": { + "message": "Ставка приступачног кључа" + }, + "overwritePasskey": { + "message": "Заменити приступни кључ?" + }, + "overwritePasskeyAlert": { + "message": "Ова ставка већ садржи приступни кључ. Да ли сте сигурни да желите да замените тренутни приступни кључ?" + }, + "featureNotSupported": { + "message": "Функција још није подржана" + }, + "yourPasskeyIsLocked": { + "message": "За коришћење приступног кључа је потребна аутентификација. Потврдите свој идентитет да бисте наставили." + }, + "useBrowserName": { + "message": "Користите претраживач" } } diff --git a/apps/browser/src/_locales/sv/messages.json b/apps/browser/src/_locales/sv/messages.json index ca0b8de6580..6e438ff9945 100644 --- a/apps/browser/src/_locales/sv/messages.json +++ b/apps/browser/src/_locales/sv/messages.json @@ -92,10 +92,10 @@ "message": "Fyll i automatiskt" }, "autoFillLogin": { - "message": "Auto-fill login" + "message": "Autofyll inloggning" }, "autoFillCard": { - "message": "Auto-fill card" + "message": "Autofyll kort" }, "autoFillIdentity": { "message": "Auto-fill identity" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identitet" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Lösenordshistorik" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "En organisationspolicy påverkar dina ägarskapsalternativ." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Exkluderade domäner" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Importera data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "Det uppstod ett problem med den data du försökte importera. Åtgärda de fel som anges nedan i din källfil och försök igen." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Åtgärda felen nedan och försök igen." + }, + "description": { + "message": "Beskrivning" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Ingenting har importerats." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Välj en mapp" + }, + "selectImportCollection": { + "message": "Välj en samling" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Välj fil" + }, + "noFileChosen": { + "message": "Ingen fil vald" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Bekräfta" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Använd webbläsare" } } diff --git a/apps/browser/src/_locales/te/messages.json b/apps/browser/src/_locales/te/messages.json index 22330901579..24e1bc3ce30 100644 --- a/apps/browser/src/_locales/te/messages.json +++ b/apps/browser/src/_locales/te/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Identity" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Password history" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/th/messages.json b/apps/browser/src/_locales/th/messages.json index 20702a1de4a..eb5e21dca7e 100644 --- a/apps/browser/src/_locales/th/messages.json +++ b/apps/browser/src/_locales/th/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "ข้อมูลระบุตัวตน" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "ประวัติของรหัสผ่าน" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Excluded domains" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/tr/messages.json b/apps/browser/src/_locales/tr/messages.json index e9763386aa6..3c7a47bc108 100644 --- a/apps/browser/src/_locales/tr/messages.json +++ b/apps/browser/src/_locales/tr/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Kimlik" }, + "typePasskey": { + "message": "Geçiş anahtarı" + }, "passwordHistory": { "message": "Parola geçmişi" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Bir kuruluş ilkesi sahiplik seçeneklerinizi etkiliyor." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Bir kuruluş ilkesi, kayıtları kişisel kasanıza içe aktarmayı engelledi." + }, "excludedDomains": { "message": "Hariç tutulan alan adları" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Bu alanı düzenlemek için ana parolayı yeniden istemeyi kapatın", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Verileri içe aktar", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "İçe aktarma hatası" + }, + "importErrorDesc": { + "message": "İçe aktarmaya çalıştığınız verilerle ilgili bir problem var. Lütfen kaynak dosyanızdaki aşağıda belirtilen hataları çözüp tekrar deneyin." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Aşağıdaki hataları düzeltip yeniden deneyin." + }, + "description": { + "message": "Açıklama" + }, + "importSuccess": { + "message": "Veriler başarıyla içe aktarıldı" + }, + "importSuccessNumberOfItems": { + "message": "Toplam $AMOUNT$ kayıt içe aktarıldı.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Toplam" + }, + "importWarning": { + "message": "$ORGANIZATION$ kuruluşuna veri aktarıyorsunuz. Verileriniz bu kuruluşun üyeleriyle paylaşılabilir. Devam etmek istiyor musunuz?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Veriler doğru biçimlendirilmemiş. Lütfen içe aktarma dosyanızı kontrol edin ve tekrar deneyin." + }, + "importNothingError": { + "message": "Hiçbir şey içe aktarılmadı." + }, + "importEncKeyError": { + "message": "Dışa aktarılmış dosya çözülemedi. Şifreleme anahtarınız, veriler dışa aktarılırken kullanılanla uyuşmuyor." + }, + "importDestination": { + "message": "İçe aktarma hedefi" + }, + "learnAboutImportOptions": { + "message": "İçe aktarma seçeneklerinizi öğrenin" + }, + "selectImportFolder": { + "message": "Bir klasör seçin" + }, + "selectImportCollection": { + "message": "Bir koleksiyon seçin" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Dosya atanmamış öğeler içeriyor." + }, + "selectFormat": { + "message": "İçe aktarma dosyasının biçimini seçin" + }, + "selectImportFile": { + "message": "İçe aktarma dosyasını seçin" + }, + "chooseFile": { + "message": "Dosya seçin" + }, + "noFileChosen": { + "message": "Dosya seçilmedi" + }, + "orCopyPasteFileContents": { + "message": "veya içe aktarma dosyasının içeriğini kopyalayıp yapıştırın" + }, + "instructionsFor": { + "message": "$NAME$ Talimatları", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Kasayı içe aktarmayı onaylayın" + }, + "confirmVaultImportDesc": { + "message": "Bu dosya parola korumalıdır. Verileri içe aktarmak için lütfen dosya parolasını girin." + }, + "confirmFilePassword": { + "message": "Dosya parolasını onaylayın" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Geçiş Anahtarı ile giriş yap?" + }, + "passkeyAlreadyExists": { + "message": "Bu uygulama için bir Geçiş Anahtarı zaten bulunmakta." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/uk/messages.json b/apps/browser/src/_locales/uk/messages.json index 666870146d4..686dcec0c0b 100644 --- a/apps/browser/src/_locales/uk/messages.json +++ b/apps/browser/src/_locales/uk/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Особисті дані" }, + "typePasskey": { + "message": "Ключ доступу" + }, "passwordHistory": { "message": "Історія паролів" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Політика організації впливає на ваші параметри власності." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Політика організації заблокувала імпортування елементів до вашого особистого сховища." + }, "excludedDomains": { "message": "Виключені домени" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Вимкніть повторний запит головного пароля, щоб редагувати це поле", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Імпортувати дані", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Помилка імпорту" + }, + "importErrorDesc": { + "message": "Під час спроби імпортування ваших даних виникла проблема. Будь ласка, виправте вказані нижче помилки у вихідному файлі та спробуйте знову." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Розв'яжіть зазначені помилки та повторіть спробу." + }, + "description": { + "message": "Опис" + }, + "importSuccess": { + "message": "Дані успішно імпортовано" + }, + "importSuccessNumberOfItems": { + "message": "Всього імпортовано $AMOUNT$ елементів.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Всього" + }, + "importWarning": { + "message": "Ви імпортуєте дані до $ORGANIZATION$. Ваші дані можуть бути доступні учасникам цієї організації. Хочете продовжити?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Дані мають некоректне форматування. Перевірте файл імпорту і спробуйте знову." + }, + "importNothingError": { + "message": "Нічого не імпортовано." + }, + "importEncKeyError": { + "message": "Помилка розшифрування експортованого файлу. Ваш ключ шифрування відрізняється від ключа, використаного для експортування даних." + }, + "importDestination": { + "message": "Призначення імпорту" + }, + "learnAboutImportOptions": { + "message": "Дізнайтеся про параметри імпорту" + }, + "selectImportFolder": { + "message": "Вибрати теку" + }, + "selectImportCollection": { + "message": "Вибрати збірку" + }, + "importTargetHint": { + "message": "Оберіть цю опцію, якщо ви хочете, щоб вміст імпортованого файлу було збережено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файл містить непризначені елементи." + }, + "selectFormat": { + "message": "Оберіть формат імпортованого файлу" + }, + "selectImportFile": { + "message": "Оберіть файл для імпорту" + }, + "chooseFile": { + "message": "Вибрати файл" + }, + "noFileChosen": { + "message": "Файл не вибрано" + }, + "orCopyPasteFileContents": { + "message": "або скопіюйте і вставте вміст файлу для імпорту" + }, + "instructionsFor": { + "message": "Інструкції для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Підтвердити імпорт сховища" + }, + "confirmVaultImportDesc": { + "message": "Цей файл захищений паролем. Будь ласка, введіть пароль для імпортування даних." + }, + "confirmFilePassword": { + "message": "Підтвердьте пароль файлу" + }, + "passkeyNotCopied": { + "message": "Ключ доступу не буде скопійовано" + }, + "passkeyNotCopiedAlert": { + "message": "Ключ доступу не буде скопійовано до клонованого запису. Хочете продовжити клонування цього запису?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Сайт ініціює обов'язкову верифікацію. Ця функція ще не реалізована для облікових записів без головного пароля." + }, + "logInWithPasskey": { + "message": "Увійти з ключем доступу?" + }, + "passkeyAlreadyExists": { + "message": "Ключ доступу для цієї програми вже існує." + }, + "noPasskeysFoundForThisApplication": { + "message": "Для цієї програми не знайдено ключів доступу." + }, + "noMatchingPasskeyLogin": { + "message": "У вас немає відповідних записів для цього сайту." + }, + "confirm": { + "message": "Підтвердити" + }, + "savePasskey": { + "message": "Зберегти ключ доступу" + }, + "savePasskeyNewLogin": { + "message": "Зберегти ключ доступу як новий запис" + }, + "choosePasskey": { + "message": "Виберіть запис для збереження цього ключа доступу" + }, + "passkeyItem": { + "message": "Ключ доступу" + }, + "overwritePasskey": { + "message": "Перезаписати ключ доступу?" + }, + "overwritePasskeyAlert": { + "message": "Цей елемент вже містить ключ доступу. Ви впевнені, що хочете перезаписати поточний ключ доступу?" + }, + "featureNotSupported": { + "message": "Функція ще не підтримується" + }, + "yourPasskeyIsLocked": { + "message": "Для використання ключа доступу потрібна автентифікація. Пройдіть перевірку, щоб продовжити." + }, + "useBrowserName": { + "message": "Скористатися браузером" } } diff --git a/apps/browser/src/_locales/vi/messages.json b/apps/browser/src/_locales/vi/messages.json index caedbb8b917..ee64633dff8 100644 --- a/apps/browser/src/_locales/vi/messages.json +++ b/apps/browser/src/_locales/vi/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "Danh tính" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "Lịch sử mật khẩu" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "Chính sách của tổ chức đang ảnh hưởng đến các tùy chọn quyền sở hữu của bạn." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "Tên miền đã loại trừ" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "Turn off master password re-prompt to edit this field", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/_locales/zh_CN/messages.json b/apps/browser/src/_locales/zh_CN/messages.json index 5331208af82..ebd9503c74d 100644 --- a/apps/browser/src/_locales/zh_CN/messages.json +++ b/apps/browser/src/_locales/zh_CN/messages.json @@ -717,7 +717,7 @@ "message": "每个 Bitwarden 用户账户的账户加密密钥都是唯一的,因此您无法将加密的导出导入到另一个账户。" }, "exportMasterPassword": { - "message": "输入主密码来导出你的密码库。" + "message": "输入您的主密码以导出你的密码库数据。" }, "shared": { "message": "已共享" @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "身份" }, + "typePasskey": { + "message": "通行密钥" + }, "passwordHistory": { "message": "密码历史记录" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "一个组织策略正影响您的所有权选项。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "组织策略已阻止将项目导入您的个人密码库。" + }, "excludedDomains": { "message": "排除域名" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "关闭主密码重新提示以编辑此字段", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "导入数据", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "导入出错" + }, + "importErrorDesc": { + "message": "您尝试导入的数据有问题。请解决如下列出的源文件中的错误,然后重试。" + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "解决下面的错误,然后重试。" + }, + "description": { + "message": "描述" + }, + "importSuccess": { + "message": "数据导入成功" + }, + "importSuccessNumberOfItems": { + "message": "一共导入了 $AMOUNT$ 个项目。", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "总计" + }, + "importWarning": { + "message": "您正在将数据导入到 $ORGANIZATION$。您的数据可能会与此组织中的成员共享。要继续吗?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "数据格式不正确。请检查您的导入文件然后重试。" + }, + "importNothingError": { + "message": "没有导入任何内容。" + }, + "importEncKeyError": { + "message": "解密导出的文件时出错。您的加密密钥与导出数据时使用的加密密钥不匹配。" + }, + "importDestination": { + "message": "导入目的地" + }, + "learnAboutImportOptions": { + "message": "了解您的导入选项" + }, + "selectImportFolder": { + "message": "选择一个文件夹" + }, + "selectImportCollection": { + "message": "选择一个集合" + }, + "importTargetHint": { + "message": "如果您希望将导入的文件内容移动到 $DESTINATION$,请选择此选项", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "文件包含未分配项目。" + }, + "selectFormat": { + "message": "选择导入文件的格式" + }, + "selectImportFile": { + "message": "选择要导入的文件" + }, + "chooseFile": { + "message": "选择文件" + }, + "noFileChosen": { + "message": "未选择文件" + }, + "orCopyPasteFileContents": { + "message": "或复制/粘贴要导入的文件内容" + }, + "instructionsFor": { + "message": "$NAME$ 说明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "确认密码库导入" + }, + "confirmVaultImportDesc": { + "message": "此文件受密码保护。请输入文件密码以导入数据。" + }, + "confirmFilePassword": { + "message": "确认文件密码" + }, + "passkeyNotCopied": { + "message": "通行密钥不会被复制" + }, + "passkeyNotCopiedAlert": { + "message": "通行密钥将不会被复制到克隆的项目。要继续克隆这个项目吗?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "启动站点需要验证。对于没有主密码的账户,此功能尚未实现。" + }, + "logInWithPasskey": { + "message": "使用通行密钥登录吗?" + }, + "passkeyAlreadyExists": { + "message": "此应用程序已存在一个通行密钥。" + }, + "noPasskeysFoundForThisApplication": { + "message": "没有找到此应用程序的通行密钥。" + }, + "noMatchingPasskeyLogin": { + "message": "不存在匹配此站点的登录项目。" + }, + "confirm": { + "message": "确认" + }, + "savePasskey": { + "message": "保存通行密钥" + }, + "savePasskeyNewLogin": { + "message": "作为新的登录项目保存通行密钥" + }, + "choosePasskey": { + "message": "选择一个用于保存此通行密钥的登录项目" + }, + "passkeyItem": { + "message": "通行密钥项目" + }, + "overwritePasskey": { + "message": "覆盖通行密钥吗?" + }, + "overwritePasskeyAlert": { + "message": "此项目已包含一个通行密钥。您确定要覆盖当前的通行密钥吗?" + }, + "featureNotSupported": { + "message": "功能尚不被支持" + }, + "yourPasskeyIsLocked": { + "message": "使用通行密钥需要身份验证。请验证身份以继续。" + }, + "useBrowserName": { + "message": "使用浏览器" } } diff --git a/apps/browser/src/_locales/zh_TW/messages.json b/apps/browser/src/_locales/zh_TW/messages.json index b3368beb188..9019ba65f38 100644 --- a/apps/browser/src/_locales/zh_TW/messages.json +++ b/apps/browser/src/_locales/zh_TW/messages.json @@ -1253,6 +1253,9 @@ "typeIdentity": { "message": "身分" }, + "typePasskey": { + "message": "Passkey" + }, "passwordHistory": { "message": "密碼歷史記錄" }, @@ -1653,6 +1656,9 @@ "personalOwnershipPolicyInEffect": { "message": "組織原則正在影響您的擁有權選項。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "excludedDomains": { "message": "排除網域" }, @@ -2445,5 +2451,164 @@ "turnOffMasterPasswordPromptToEditField": { "message": "關閉主密碼重新提示以編輯此欄位", "description": "Message appearing below the autofill on load message when master password reprompt is set for a vault item." + }, + "importData": { + "message": "Import data", + "description": "Used for the header of the import dialog, the import button and within the file-password-prompt" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, + "passkeyFeatureIsNotImplementedForAccountsWithoutMasterPassword": { + "message": "Verification required by the initiating site. This feature is not yet implemented for accounts without master password." + }, + "logInWithPasskey": { + "message": "Log in with passkey?" + }, + "passkeyAlreadyExists": { + "message": "A passkey already exists for this application." + }, + "noPasskeysFoundForThisApplication": { + "message": "No passkeys found for this application." + }, + "noMatchingPasskeyLogin": { + "message": "You do not have a matching login for this site." + }, + "confirm": { + "message": "Confirm" + }, + "savePasskey": { + "message": "Save passkey" + }, + "savePasskeyNewLogin": { + "message": "Save passkey as new login" + }, + "choosePasskey": { + "message": "Choose a login to save this passkey to" + }, + "passkeyItem": { + "message": "Passkey Item" + }, + "overwritePasskey": { + "message": "Overwrite passkey?" + }, + "overwritePasskeyAlert": { + "message": "This item already contains a passkey. Are you sure you want to overwrite the current passkey?" + }, + "featureNotSupported": { + "message": "Feature not yet supported" + }, + "yourPasskeyIsLocked": { + "message": "Authentication required to use passkey. Verify your identity to continue." + }, + "useBrowserName": { + "message": "Use browser" } } diff --git a/apps/browser/src/auth/background/service-factories/account-service.factory.ts b/apps/browser/src/auth/background/service-factories/account-service.factory.ts new file mode 100644 index 00000000000..759ff8efdd5 --- /dev/null +++ b/apps/browser/src/auth/background/service-factories/account-service.factory.ts @@ -0,0 +1,38 @@ +import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; +import { AccountServiceImplementation } from "@bitwarden/common/auth/services/account.service"; + +import { + FactoryOptions, + CachedServices, + factory, +} from "../../../platform/background/service-factories/factory-options"; +import { + LogServiceInitOptions, + logServiceFactory, +} from "../../../platform/background/service-factories/log-service.factory"; +import { + MessagingServiceInitOptions, + messagingServiceFactory, +} from "../../../platform/background/service-factories/messaging-service.factory"; + +type AccountServiceFactoryOptions = FactoryOptions; + +export type AccountServiceInitOptions = AccountServiceFactoryOptions & + MessagingServiceInitOptions & + LogServiceInitOptions; + +export function accountServiceFactory( + cache: { accountService?: AccountService } & CachedServices, + opts: AccountServiceInitOptions +): Promise { + return factory( + cache, + "accountService", + opts, + async () => + new AccountServiceImplementation( + await messagingServiceFactory(cache, opts), + await logServiceFactory(cache, opts) + ) + ); +} diff --git a/apps/browser/src/auth/guards/fido2-auth.guard.ts b/apps/browser/src/auth/guards/fido2-auth.guard.ts new file mode 100644 index 00000000000..7ff0060663d --- /dev/null +++ b/apps/browser/src/auth/guards/fido2-auth.guard.ts @@ -0,0 +1,34 @@ +import { inject } from "@angular/core"; +import { + ActivatedRouteSnapshot, + CanActivateFn, + Router, + RouterStateSnapshot, +} from "@angular/router"; + +import { AuthService } from "@bitwarden/common/auth/abstractions/auth.service"; +import { AuthenticationStatus } from "@bitwarden/common/auth/enums/authentication-status"; + +import { BrowserRouterService } from "../../platform/popup/services/browser-router.service"; + +/** + * This guard verifies the user's authetication status. + * If "Locked", it saves the intended route in memory and redirects to the lock screen. Otherwise, the intended route is allowed. + */ +export const fido2AuthGuard: CanActivateFn = async ( + route: ActivatedRouteSnapshot, + state: RouterStateSnapshot +) => { + const routerService = inject(BrowserRouterService); + const authService = inject(AuthService); + const router = inject(Router); + + const authStatus = await authService.getAuthStatus(); + + if (authStatus === AuthenticationStatus.Locked) { + routerService.setPreviousUrl(state.url); + return router.createUrlTree(["/lock"], { queryParams: route.queryParams }); + } + + return true; +}; diff --git a/apps/browser/src/popup/components/set-pin.component.html b/apps/browser/src/auth/popup/components/set-pin.component.html similarity index 100% rename from apps/browser/src/popup/components/set-pin.component.html rename to apps/browser/src/auth/popup/components/set-pin.component.html diff --git a/apps/desktop/src/app/components/set-pin.component.ts b/apps/browser/src/auth/popup/components/set-pin.component.ts similarity index 82% rename from apps/desktop/src/app/components/set-pin.component.ts rename to apps/browser/src/auth/popup/components/set-pin.component.ts index 47b8fd72128..41ce33eabde 100644 --- a/apps/desktop/src/app/components/set-pin.component.ts +++ b/apps/browser/src/auth/popup/components/set-pin.component.ts @@ -1,6 +1,6 @@ import { Component } from "@angular/core"; -import { SetPinComponent as BaseSetPinComponent } from "@bitwarden/angular/components/set-pin.component"; +import { SetPinComponent as BaseSetPinComponent } from "@bitwarden/angular/auth/components/set-pin.component"; @Component({ templateUrl: "set-pin.component.html", diff --git a/apps/browser/src/auth/popup/environment.component.ts b/apps/browser/src/auth/popup/environment.component.ts index c70b5f597c1..a5cbfe7c34b 100644 --- a/apps/browser/src/auth/popup/environment.component.ts +++ b/apps/browser/src/auth/popup/environment.component.ts @@ -1,7 +1,7 @@ import { Component, OnInit } from "@angular/core"; import { Router } from "@angular/router"; -import { EnvironmentComponent as BaseEnvironmentComponent } from "@bitwarden/angular/components/environment.component"; +import { EnvironmentComponent as BaseEnvironmentComponent } from "@bitwarden/angular/auth/components/environment.component"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/platform-utils.service"; diff --git a/apps/browser/src/auth/popup/home.component.html b/apps/browser/src/auth/popup/home.component.html index 6b42033c4bc..42fe3106ffb 100644 --- a/apps/browser/src/auth/popup/home.component.html +++ b/apps/browser/src/auth/popup/home.component.html @@ -1,3 +1,4 @@ +
- +
-
-
-
-
- - -
-
- - -
-
- + +
+
+
+
+ + +
+
+ + +
+
+ +
+
- -
-
- -

- -

- - {{ biometricError }} -

- {{ "awaitDesktop" | i18n }} -

+

+ +

+ + {{ biometricError }} +

+ {{ "awaitDesktop" | i18n }} +

+ + +
diff --git a/apps/browser/src/auth/popup/lock.component.ts b/apps/browser/src/auth/popup/lock.component.ts index f5f8a29eb69..4a0c752a5d2 100644 --- a/apps/browser/src/auth/popup/lock.component.ts +++ b/apps/browser/src/auth/popup/lock.component.ts @@ -22,6 +22,8 @@ import { PasswordStrengthServiceAbstraction } from "@bitwarden/common/tools/pass import { DialogService } from "@bitwarden/components"; import { BiometricErrors, BiometricErrorTypes } from "../../models/biometricErrors"; +import { BrowserRouterService } from "../../platform/popup/services/browser-router.service"; +import { fido2PopoutSessionData$ } from "../../vault/fido2/browser-fido2-user-interface.service"; @Component({ selector: "app-lock", @@ -32,6 +34,7 @@ export class LockComponent extends BaseLockComponent { biometricError: string; pendingBiometric = false; + fido2PopoutSessionData$ = fido2PopoutSessionData$(); constructor( router: Router, @@ -52,7 +55,8 @@ export class LockComponent extends BaseLockComponent { private authService: AuthService, dialogService: DialogService, deviceTrustCryptoService: DeviceTrustCryptoServiceAbstraction, - userVerificationService: UserVerificationService + userVerificationService: UserVerificationService, + private routerService: BrowserRouterService ) { super( router, @@ -76,6 +80,15 @@ export class LockComponent extends BaseLockComponent { ); this.successRoute = "/tabs/current"; this.isInitialLockScreen = (window as any).previousPopupUrl == null; + + super.onSuccessfulSubmit = async () => { + const previousUrl = this.routerService.getPreviousUrl(); + if (previousUrl) { + this.router.navigateByUrl(previousUrl); + } else { + this.router.navigate([this.successRoute]); + } + }; } async ngOnInit() { diff --git a/apps/browser/src/auth/popup/login-with-device.component.html b/apps/browser/src/auth/popup/login-via-auth-request.component.html similarity index 95% rename from apps/browser/src/auth/popup/login-with-device.component.html rename to apps/browser/src/auth/popup/login-via-auth-request.component.html index 127f7ec96fe..2abff7bdb9c 100644 --- a/apps/browser/src/auth/popup/login-with-device.component.html +++ b/apps/browser/src/auth/popup/login-via-auth-request.component.html @@ -25,7 +25,7 @@

- {{ "resendNotification" | i18n }} + {{ "resendNotification" | i18n }}
+ + +
+
+
+ {{ "typePasskey" | i18n }} + {{ "dateCreated" | i18n }} + {{ cipher.login.fido2Credentials[0].creationDate | date : "short" }} +
+
+
+
-
{{ "verificationCodeTotp" | i18n }} diff --git a/apps/browser/src/vault/popup/components/vault/view.component.ts b/apps/browser/src/vault/popup/components/vault/view.component.ts index 6c9f3967d56..b29814ed559 100644 --- a/apps/browser/src/vault/popup/components/vault/view.component.ts +++ b/apps/browser/src/vault/popup/components/vault/view.component.ts @@ -1,7 +1,7 @@ import { Location } from "@angular/common"; import { ChangeDetectorRef, Component, NgZone } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; -import { Subject, takeUntil } from "rxjs"; +import { Subject, firstValueFrom, takeUntil } from "rxjs"; import { first } from "rxjs/operators"; import { ViewComponent as BaseViewComponent } from "@bitwarden/angular/vault/components/view.component"; @@ -29,6 +29,10 @@ import { PasswordRepromptService } from "@bitwarden/vault"; import { AutofillService } from "../../../../autofill/services/abstractions/autofill.service"; import { BrowserApi } from "../../../../platform/browser/browser-api"; import { PopupUtilsService } from "../../../../popup/services/popup-utils.service"; +import { + BrowserFido2UserInterfaceSession, + fido2PopoutSessionData$, +} from "../../../fido2/browser-fido2-user-interface.service"; const BroadcasterSubscriptionId = "ChildViewComponent"; @@ -57,6 +61,7 @@ export class ViewComponent extends BaseViewComponent { loadPageDetailsTimeout: number; inPopout = false; cipherType = CipherType; + private fido2PopoutSessionData$ = fido2PopoutSessionData$(); private destroy$ = new Subject(); @@ -301,7 +306,14 @@ export class ViewComponent extends BaseViewComponent { return false; } - close() { + async close() { + // Would be refactored after rework is done on the windows popout service + const sessionData = await firstValueFrom(this.fido2PopoutSessionData$); + if (this.inPopout && sessionData.isFido2Session) { + BrowserFido2UserInterfaceSession.abortPopout(sessionData.sessionId); + return; + } + if (this.inPopout && this.senderTabId) { BrowserApi.focusTab(this.senderTabId); window.close(); @@ -331,11 +343,21 @@ export class ViewComponent extends BaseViewComponent { } private async doAutofill() { + const originalTabURL = this.tab.url?.length && new URL(this.tab.url); + if (!(await this.promptPassword())) { return false; } - if (this.pageDetails == null || this.pageDetails.length === 0) { + const currentTabURL = this.tab.url?.length && new URL(this.tab.url); + + const originalTabHostPath = + originalTabURL && `${originalTabURL.origin}${originalTabURL.pathname}`; + const currentTabHostPath = currentTabURL && `${currentTabURL.origin}${currentTabURL.pathname}`; + + const tabUrlChanged = originalTabHostPath !== currentTabHostPath; + + if (this.pageDetails == null || this.pageDetails.length === 0 || tabUrlChanged) { this.platformUtilsService.showToast("error", null, this.i18nService.t("autofillError")); return false; } diff --git a/apps/browser/store/locales/it/copy.resx b/apps/browser/store/locales/it/copy.resx index ae402184019..fe46a3e93d7 100644 --- a/apps/browser/store/locales/it/copy.resx +++ b/apps/browser/store/locales/it/copy.resx @@ -132,14 +132,14 @@ Gestisci, archivia, proteggi, e condividi password illimitate su dispositivi ill Genera password forti, uniche, e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. -Bitwarden Send trasmette rapidamente informazioni criptate - via file e testo in chiaro - direttamente a chiunque. +Bitwarden Send trasmette rapidamente informazioni crittate - via file e testo in chiaro - direttamente a chiunque. Bitwarden offre piani Teams ed Enterprise per le aziende così puoi condividere le password in modo sicuro con i tuoi colleghi. Perché Scegliere Bitwarden: -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. +Crittografia Di Livello Mondiale +Le password sono protette con crittografia 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 forti, uniche e casuali in base ai requisiti di sicurezza per ogni sito web che frequenti. @@ -170,6 +170,6 @@ Proteggi e condividi i dati sensibili all'interno della tua cassaforte di Bitwar Genera automaticamente password complesse, casuali e sicure - Le tue informazioni sono salvate in modo sicuro grazie all'algoritmo di criptografia AES-256 + Le tue informazioni sono salvate in modo sicuro grazie all'algoritmo di crittografia AES-256 diff --git a/apps/browser/tsconfig.json b/apps/browser/tsconfig.json index 357be6c5281..3ad2be7c02c 100644 --- a/apps/browser/tsconfig.json +++ b/apps/browser/tsconfig.json @@ -15,7 +15,8 @@ "@bitwarden/common/*": ["../../libs/common/src/*"], "@bitwarden/components": ["../../libs/components/src"], "@bitwarden/exporter/*": ["../../libs/exporter/src/*"], - "@bitwarden/importer": ["../../libs/importer/src"], + "@bitwarden/importer/core": ["../../libs/importer/src"], + "@bitwarden/importer/ui": ["../../libs/importer/src/components"], "@bitwarden/vault": ["../../libs/vault/src"] }, "useDefineForClassFields": false diff --git a/apps/browser/webpack.config.js b/apps/browser/webpack.config.js index 834647231f3..10f9b5b2b61 100644 --- a/apps/browser/webpack.config.js +++ b/apps/browser/webpack.config.js @@ -160,6 +160,8 @@ const mainConfig = { "content/notificationBar": "./src/autofill/content/notification-bar.ts", "content/contextMenuHandler": "./src/autofill/content/context-menu-handler.ts", "content/message_handler": "./src/autofill/content/message_handler.ts", + "content/fido2/content-script": "./src/vault/fido2/content/content-script.ts", + "content/fido2/page-script": "./src/vault/fido2/content/page-script.ts", "notification/bar": "./src/autofill/notification/bar.ts", "encrypt-worker": "../../libs/common/src/platform/services/cryptography/encrypt.worker.ts", }, diff --git a/apps/cli/.gitignore b/apps/cli/.gitignore deleted file mode 100644 index dd2669506ef..00000000000 --- a/apps/cli/.gitignore +++ /dev/null @@ -1 +0,0 @@ -config/local.json diff --git a/apps/cli/package.json b/apps/cli/package.json index f38c5cbbd65..5e93f08ab47 100644 --- a/apps/cli/package.json +++ b/apps/cli/package.json @@ -1,7 +1,7 @@ { "name": "@bitwarden/cli", "description": "A secure and free password manager for all of your devices.", - "version": "2023.9.2", + "version": "2023.10.0", "keywords": [ "bitwarden", "password", diff --git a/apps/cli/src/auth/commands/login.command.ts b/apps/cli/src/auth/commands/login.command.ts index 5cef79a09fd..5cb9c9b2ead 100644 --- a/apps/cli/src/auth/commands/login.command.ts +++ b/apps/cli/src/auth/commands/login.command.ts @@ -16,10 +16,10 @@ import { TwoFactorProviderType } from "@bitwarden/common/auth/enums/two-factor-p import { AuthResult } from "@bitwarden/common/auth/models/domain/auth-result"; import { ForceResetPasswordReason } from "@bitwarden/common/auth/models/domain/force-reset-password-reason"; import { - PasswordLogInCredentials, - SsoLogInCredentials, - UserApiLogInCredentials, -} from "@bitwarden/common/auth/models/domain/log-in-credentials"; + PasswordLoginCredentials, + SsoLoginCredentials, + UserApiLoginCredentials, +} from "@bitwarden/common/auth/models/domain/login-credentials"; import { TokenTwoFactorRequest } from "@bitwarden/common/auth/models/request/identity-token/token-two-factor.request"; import { PasswordRequest } from "@bitwarden/common/auth/models/request/password.request"; import { TwoFactorEmailRequest } from "@bitwarden/common/auth/models/request/two-factor-email.request"; @@ -179,7 +179,7 @@ export class LoginCommand { } try { response = await this.authService.logIn( - new UserApiLogInCredentials(clientId, clientSecret) + new UserApiLoginCredentials(clientId, clientSecret) ); } catch (e) { // handle API key login failures @@ -196,7 +196,7 @@ export class LoginCommand { } } else if (ssoCode != null && ssoCodeVerifier != null) { response = await this.authService.logIn( - new SsoLogInCredentials( + new SsoLoginCredentials( ssoCode, ssoCodeVerifier, this.ssoRedirectUri, @@ -206,7 +206,7 @@ export class LoginCommand { ); } else { response = await this.authService.logIn( - new PasswordLogInCredentials(email, password, null, twoFactor) + new PasswordLoginCredentials(email, password, null, twoFactor) ); } if (response.requiresEncryptionKeyMigration) { @@ -215,7 +215,7 @@ export class LoginCommand { ); } if (response.captchaSiteKey) { - const credentials = new PasswordLogInCredentials(email, password); + const credentials = new PasswordLoginCredentials(email, password); const handledResponse = await this.handleCaptchaRequired(twoFactor, credentials); // Error Response @@ -586,7 +586,7 @@ export class LoginCommand { private async handleCaptchaRequired( twoFactorRequest: TokenTwoFactorRequest, - credentials: PasswordLogInCredentials = null + credentials: PasswordLoginCredentials = null ): Promise { const badCaptcha = Response.badRequest( "Your authentication request has been flagged and will require user interaction to proceed.\n" + diff --git a/apps/cli/src/bw.ts b/apps/cli/src/bw.ts index ca501690193..b63dda690f7 100644 --- a/apps/cli/src/bw.ts +++ b/apps/cli/src/bw.ts @@ -12,9 +12,11 @@ import { OrganizationService } from "@bitwarden/common/admin-console/services/or import { PolicyApiService } from "@bitwarden/common/admin-console/services/policy/policy-api.service"; import { PolicyService } from "@bitwarden/common/admin-console/services/policy/policy.service"; import { ProviderService } from "@bitwarden/common/admin-console/services/provider.service"; +import { AccountService } from "@bitwarden/common/auth/abstractions/account.service"; import { AuthRequestCryptoServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request-crypto.service.abstraction"; import { DeviceTrustCryptoServiceAbstraction } from "@bitwarden/common/auth/abstractions/device-trust-crypto.service.abstraction"; import { DevicesApiServiceAbstraction } from "@bitwarden/common/auth/abstractions/devices-api.service.abstraction"; +import { AccountServiceImplementation } from "@bitwarden/common/auth/services/account.service"; import { AuthRequestCryptoServiceImplementation } from "@bitwarden/common/auth/services/auth-request-crypto.service.implementation"; import { AuthService } from "@bitwarden/common/auth/services/auth.service"; import { DeviceTrustCryptoService } from "@bitwarden/common/auth/services/device-trust-crypto.service.implementation"; @@ -74,7 +76,7 @@ import { ImportApiServiceAbstraction, ImportService, ImportServiceAbstraction, -} from "@bitwarden/importer"; +} from "@bitwarden/importer/core"; import { NodeCryptoFunctionService } from "@bitwarden/node/services/node-crypto-function.service"; import { CliConfigService } from "./platform/services/cli-config.service"; @@ -152,6 +154,7 @@ export class Main { authRequestCryptoService: AuthRequestCryptoServiceAbstraction; configApiService: ConfigApiServiceAbstraction; configService: CliConfigService; + accountService: AccountService; constructor() { let p = null; @@ -191,12 +194,15 @@ export class Main { this.memoryStorageService = new MemoryStorageService(); + this.accountService = new AccountServiceImplementation(null, this.logService); + this.stateService = new StateService( this.storageService, this.secureStorageService, this.memoryStorageService, this.logService, - new StateFactory(GlobalState, Account) + new StateFactory(GlobalState, Account), + this.accountService ); this.cryptoService = new CryptoService( diff --git a/apps/cli/src/tools/import.command.ts b/apps/cli/src/tools/import.command.ts index e3f24b960f8..1be562239f5 100644 --- a/apps/cli/src/tools/import.command.ts +++ b/apps/cli/src/tools/import.command.ts @@ -3,7 +3,7 @@ import * as inquirer from "inquirer"; import { OrganizationService } from "@bitwarden/common/admin-console/abstractions/organization/organization.service.abstraction"; import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; -import { ImportServiceAbstraction, ImportType } from "@bitwarden/importer"; +import { ImportServiceAbstraction, ImportType } from "@bitwarden/importer/core"; import { Response } from "../models/response"; import { MessageResponse } from "../models/response/message.response"; diff --git a/apps/cli/tsconfig.json b/apps/cli/tsconfig.json index 420496ad93c..395d91564a0 100644 --- a/apps/cli/tsconfig.json +++ b/apps/cli/tsconfig.json @@ -14,7 +14,7 @@ "paths": { "@bitwarden/common/spec": ["../../libs/common/spec"], "@bitwarden/common/*": ["../../libs/common/src/*"], - "@bitwarden/importer": ["../../libs/importer/src"], + "@bitwarden/importer/core": ["../../libs/importer/src"], "@bitwarden/exporter/*": ["../../libs/exporter/src/*"], "@bitwarden/node/*": ["../../libs/node/src/*"] } diff --git a/apps/desktop/electron-builder.json b/apps/desktop/electron-builder.json index 0830fabf13d..69d1c0074fa 100644 --- a/apps/desktop/electron-builder.json +++ b/apps/desktop/electron-builder.json @@ -19,7 +19,7 @@ "**/node_modules/@bitwarden/desktop-native/index.js", "**/node_modules/@bitwarden/desktop-native/desktop_native.${platform}-${arch}*.node" ], - "electronVersion": "26.3.0", + "electronVersion": "25.9.1", "generateUpdatesFilesForAllChannels": true, "publish": { "provider": "generic", diff --git a/apps/desktop/package.json b/apps/desktop/package.json index 444753e9206..1a79ac035a7 100644 --- a/apps/desktop/package.json +++ b/apps/desktop/package.json @@ -1,7 +1,7 @@ { "name": "@bitwarden/desktop", "description": "A secure and free password manager for all of your devices.", - "version": "2023.9.2", + "version": "2023.10.0", "keywords": [ "bitwarden", "password", @@ -19,8 +19,10 @@ "postinstall": "electron-rebuild", "start": "cross-env ELECTRON_IS_DEV=0 ELECTRON_NO_UPDATER=1 electron ./build", "build-native": "cd desktop_native && npm run build", - "build": "concurrently -n Main,Rend -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\"", + "build": "concurrently -n Main,Rend,Prel -c yellow,cyan \"npm run build:main\" \"npm run build:renderer\" \"npm run build:preload\"", "build:dev": "concurrently -n Main,Rend -c yellow,cyan \"npm run build:main:dev\" \"npm run build:renderer:dev\"", + "build:preload": "cross-env NODE_ENV=production webpack --config webpack.preload.js", + "build:preload:watch": "cross-env NODE_ENV=production webpack --config webpack.preload.js --watch", "build:main": "cross-env NODE_ENV=production webpack --config webpack.main.js", "build:main:dev": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js", "build:main:watch": "npm run build-native && cross-env NODE_ENV=development webpack --config webpack.main.js --watch", diff --git a/apps/desktop/scripts/start.js b/apps/desktop/scripts/start.js index 19b11125061..388bf09405c 100644 --- a/apps/desktop/scripts/start.js +++ b/apps/desktop/scripts/start.js @@ -13,6 +13,11 @@ concurrently( command: "npm run build:main:watch", prefixColor: "yellow", }, + { + name: "Prel", + command: "npm run build:preload:watch", + prefixColor: "magenta", + }, { name: "Rend", command: "npm run build:renderer:watch", diff --git a/apps/desktop/src/app/accounts/settings.component.ts b/apps/desktop/src/app/accounts/settings.component.ts index 7ccf4aca770..8d6ef07a515 100644 --- a/apps/desktop/src/app/accounts/settings.component.ts +++ b/apps/desktop/src/app/accounts/settings.component.ts @@ -19,10 +19,9 @@ import { PlatformUtilsService } from "@bitwarden/common/platform/abstractions/pl import { Utils } from "@bitwarden/common/platform/misc/utils"; import { DialogService } from "@bitwarden/components"; +import { SetPinComponent } from "../../auth/components/set-pin.component"; import { flagEnabled } from "../../platform/flags"; import { ElectronStateService } from "../../platform/services/electron-state.service.abstraction"; -import { isWindowsStore } from "../../utils"; -import { SetPinComponent } from "../components/set-pin.component"; @Component({ selector: "app-settings", templateUrl: "settings.component.html", @@ -589,7 +588,7 @@ export class SettingsComponent implements OnInit { this.form.controls.enableBrowserIntegration.setValue(false); return; - } else if (isWindowsStore()) { + } else if (ipc.platform.isWindowsStore) { await this.dialogService.openSimpleDialog({ title: { key: "browserIntegrationUnsupportedTitle" }, content: { key: "browserIntegrationWindowsStoreDesc" }, diff --git a/apps/desktop/src/app/app-routing.module.ts b/apps/desktop/src/app/app-routing.module.ts index 8e057bd68d5..0525c6259d4 100644 --- a/apps/desktop/src/app/app-routing.module.ts +++ b/apps/desktop/src/app/app-routing.module.ts @@ -15,7 +15,7 @@ import { LoginGuard } from "../auth/guards/login.guard"; import { HintComponent } from "../auth/hint.component"; import { LockComponent } from "../auth/lock.component"; import { LoginDecryptionOptionsComponent } from "../auth/login/login-decryption-options/login-decryption-options.component"; -import { LoginWithDeviceComponent } from "../auth/login/login-with-device.component"; +import { LoginViaAuthRequestComponent } from "../auth/login/login-via-auth-request.component"; import { LoginComponent } from "../auth/login/login.component"; import { RegisterComponent } from "../auth/register.component"; import { RemovePasswordComponent } from "../auth/remove-password.component"; @@ -46,11 +46,11 @@ const routes: Routes = [ }, { path: "login-with-device", - component: LoginWithDeviceComponent, + component: LoginViaAuthRequestComponent, }, { path: "admin-approval-requested", - component: LoginWithDeviceComponent, + component: LoginViaAuthRequestComponent, }, { path: "2fa", component: TwoFactorComponent }, { diff --git a/apps/desktop/src/app/app.component.ts b/apps/desktop/src/app/app.component.ts index 34262c3a309..b98dd0a8398 100644 --- a/apps/desktop/src/app/app.component.ts +++ b/apps/desktop/src/app/app.component.ts @@ -10,7 +10,6 @@ import { } from "@angular/core"; import { DomSanitizer } from "@angular/platform-browser"; import { Router } from "@angular/router"; -import { ipcRenderer } from "electron"; import { IndividualConfig, ToastrService } from "ngx-toastr"; import { firstValueFrom, Subject, takeUntil } from "rxjs"; @@ -56,6 +55,7 @@ import { FolderAddEditComponent } from "../vault/app/vault/folder-add-edit.compo import { SettingsComponent } from "./accounts/settings.component"; import { ExportComponent } from "./tools/export/export.component"; import { GeneratorComponent } from "./tools/generator.component"; +import { ImportDesktopComponent } from "./tools/import/import-desktop.component"; import { PasswordGeneratorHistoryComponent } from "./tools/password-generator-history.component"; const BroadcasterSubscriptionId = "AppComponent"; @@ -227,7 +227,7 @@ export class AppComponent implements OnInit, OnDestroy { this.systemService.cancelProcessReload(); break; case "reloadProcess": - ipcRenderer.send("reload-process"); + ipc.platform.reloadProcess(); break; case "syncStarted": break; @@ -329,6 +329,9 @@ export class AppComponent implements OnInit, OnDestroy { } this.messagingService.send("scheduleNextSync"); break; + case "importVault": + await this.dialogService.open(ImportDesktopComponent); + break; case "exportVault": await this.openExportVault(); break; diff --git a/apps/desktop/src/app/app.module.ts b/apps/desktop/src/app/app.module.ts index 172447822c9..3436e98c998 100644 --- a/apps/desktop/src/app/app.module.ts +++ b/apps/desktop/src/app/app.module.ts @@ -10,6 +10,7 @@ import { ColorPasswordCountPipe } from "@bitwarden/angular/pipes/color-password- import { ColorPasswordPipe } from "@bitwarden/angular/pipes/color-password.pipe"; import { AccessibilityCookieComponent } from "../auth/accessibility-cookie.component"; +import { SetPinComponent } from "../auth/components/set-pin.component"; import { DeleteAccountComponent } from "../auth/delete-account.component"; import { EnvironmentComponent } from "../auth/environment.component"; import { HintComponent } from "../auth/hint.component"; @@ -41,7 +42,6 @@ import { SettingsComponent } from "./accounts/settings.component"; import { VaultTimeoutInputComponent } from "./accounts/vault-timeout-input.component"; import { AppRoutingModule } from "./app-routing.module"; import { AppComponent } from "./app.component"; -import { SetPinComponent } from "./components/set-pin.component"; import { UserVerificationComponent } from "./components/user-verification.component"; import { AccountSwitcherComponent } from "./layout/account-switcher.component"; import { HeaderComponent } from "./layout/header.component"; diff --git a/apps/desktop/src/app/main.ts b/apps/desktop/src/app/main.ts index 7d99e48ea22..c22d4eb9e10 100644 --- a/apps/desktop/src/app/main.ts +++ b/apps/desktop/src/app/main.ts @@ -1,8 +1,12 @@ import { enableProdMode } from "@angular/core"; import { platformBrowserDynamic } from "@angular/platform-browser-dynamic"; +import { ipc } from "../preload"; import { isDev } from "../utils"; +// Temporary polyfill for preload script +(window as any).ipc = ipc; + require("../scss/styles.scss"); require("../scss/tailwind.css"); diff --git a/apps/desktop/src/app/services/desktop-theming.service.ts b/apps/desktop/src/app/services/desktop-theming.service.ts index 21277dfd736..3157ad9f661 100644 --- a/apps/desktop/src/app/services/desktop-theming.service.ts +++ b/apps/desktop/src/app/services/desktop-theming.service.ts @@ -1,5 +1,4 @@ import { Injectable } from "@angular/core"; -import { ipcRenderer } from "electron"; import { ThemingService } from "@bitwarden/angular/services/theming/theming.service"; import { ThemeType } from "@bitwarden/common/enums"; @@ -7,12 +6,10 @@ import { ThemeType } from "@bitwarden/common/enums"; @Injectable() export class DesktopThemingService extends ThemingService { protected async getSystemTheme(): Promise { - return await ipcRenderer.invoke("systemTheme"); + return await ipc.platform.getSystemTheme(); } protected monitorSystemThemeChanges(): void { - ipcRenderer.on("systemThemeUpdated", (_event, theme: ThemeType) => - this.updateSystemTheme(theme) - ); + ipc.platform.onSystemThemeUpdated((theme: ThemeType) => this.updateSystemTheme(theme)); } } diff --git a/apps/desktop/src/app/services/init.service.ts b/apps/desktop/src/app/services/init.service.ts index 0d60a1140f8..f45a60cadc4 100644 --- a/apps/desktop/src/app/services/init.service.ts +++ b/apps/desktop/src/app/services/init.service.ts @@ -17,7 +17,7 @@ import { EventUploadService } from "@bitwarden/common/services/event/event-uploa import { VaultTimeoutService } from "@bitwarden/common/services/vault-timeout/vault-timeout.service"; import { SyncService as SyncServiceAbstraction } from "@bitwarden/common/vault/abstractions/sync/sync.service.abstraction"; -import { I18nService } from "../../platform/services/i18n.service"; +import { I18nRendererService } from "../../platform/services/i18n.renderer.service"; import { NativeMessagingService } from "../../services/native-messaging.service"; @Injectable() @@ -51,7 +51,7 @@ export class InitService { this.syncService.fullSync(true); await this.vaultTimeoutService.init(true); const locale = await this.stateService.getLocale(); - await (this.i18nService as I18nService).init(locale); + await (this.i18nService as I18nRendererService).init(locale); (this.eventUploadService as EventUploadService).init(true); this.twoFactorService.init(); setTimeout(() => this.notificationsService.init(), 3000); diff --git a/apps/desktop/src/app/services/services.module.ts b/apps/desktop/src/app/services/services.module.ts index f4841073c9c..24e3d91ab02 100644 --- a/apps/desktop/src/app/services/services.module.ts +++ b/apps/desktop/src/app/services/services.module.ts @@ -11,6 +11,7 @@ import { import { JslibServicesModule } from "@bitwarden/angular/services/jslib-services.module"; import { AbstractThemingService } from "@bitwarden/angular/services/theming/theming.service.abstraction"; import { PolicyService as PolicyServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/policy/policy.service.abstraction"; +import { AccountService as AccountServiceAbstraction } from "@bitwarden/common/auth/abstractions/account.service"; import { AuthService as AuthServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth.service"; import { LoginService as LoginServiceAbstraction } from "@bitwarden/common/auth/abstractions/login.service"; import { LoginService } from "@bitwarden/common/auth/services/login.service"; @@ -47,7 +48,7 @@ import { ElectronRendererSecureStorageService } from "../../platform/services/el import { ElectronRendererStorageService } from "../../platform/services/electron-renderer-storage.service"; import { ElectronStateService } from "../../platform/services/electron-state.service"; import { ElectronStateService as ElectronStateServiceAbstraction } from "../../platform/services/electron-state.service.abstraction"; -import { I18nService } from "../../platform/services/i18n.service"; +import { I18nRendererService } from "../../platform/services/i18n.renderer.service"; import { EncryptedMessageHandlerService } from "../../services/encrypted-message-handler.service"; import { NativeMessageHandlerService } from "../../services/native-message-handler.service"; import { NativeMessagingService } from "../../services/native-messaging.service"; @@ -90,7 +91,7 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK"); }, { provide: I18nServiceAbstraction, - useClass: I18nService, + useClass: I18nRendererService, deps: [SYSTEM_LANGUAGE, LOCALES_DIRECTORY], }, { @@ -120,6 +121,7 @@ const RELOAD_CALLBACK = new InjectionToken<() => any>("RELOAD_CALLBACK"); MEMORY_STORAGE, LogService, STATE_FACTORY, + AccountServiceAbstraction, STATE_SERVICE_USE_CACHE, ], }, diff --git a/apps/desktop/src/app/tools/generator.component.html b/apps/desktop/src/app/tools/generator.component.html index 1b2ee9df42e..0c66ebde805 100644 --- a/apps/desktop/src/app/tools/generator.component.html +++ b/apps/desktop/src/app/tools/generator.component.html @@ -380,6 +380,16 @@

(blur)="saveUsernameOptions()" />

+
+ + +
diff --git a/apps/desktop/src/app/tools/generator.component.spec.ts b/apps/desktop/src/app/tools/generator.component.spec.ts index 2e8669c2021..401578943e8 100644 --- a/apps/desktop/src/app/tools/generator.component.spec.ts +++ b/apps/desktop/src/app/tools/generator.component.spec.ts @@ -1,8 +1,6 @@ import { NO_ERRORS_SCHEMA } from "@angular/core"; import { ComponentFixture, TestBed } from "@angular/core/testing"; import { ActivatedRoute } from "@angular/router"; -// eslint-disable-next-line no-restricted-imports -import { Substitute } from "@fluffy-spoon/substitute"; import { mock, MockProxy } from "jest-mock-extended"; import { I18nPipe } from "@bitwarden/angular/platform/pipes/i18n.pipe"; @@ -28,15 +26,15 @@ describe("GeneratorComponent", () => { providers: [ { provide: PasswordGenerationServiceAbstraction, - useClass: Substitute.for(), + useValue: mock(), }, { provide: UsernameGenerationServiceAbstraction, - useClass: Substitute.for(), + useValue: mock(), }, { provide: StateService, - useClass: Substitute.for(), + useValue: mock(), }, { provide: PlatformUtilsService, @@ -44,15 +42,15 @@ describe("GeneratorComponent", () => { }, { provide: I18nService, - useClass: Substitute.for(), + useValue: mock(), }, { provide: ActivatedRoute, - useClass: Substitute.for(), + useValue: mock(), }, { provide: LogService, - useClass: Substitute.for(), + useValue: mock(), }, ], schemas: [NO_ERRORS_SCHEMA], diff --git a/apps/desktop/src/app/tools/import/import-desktop.component.html b/apps/desktop/src/app/tools/import/import-desktop.component.html new file mode 100644 index 00000000000..9fe2ee47c23 --- /dev/null +++ b/apps/desktop/src/app/tools/import/import-desktop.component.html @@ -0,0 +1,26 @@ + + {{ "importData" | i18n }} + + + + + + + + diff --git a/apps/desktop/src/app/tools/import/import-desktop.component.ts b/apps/desktop/src/app/tools/import/import-desktop.component.ts new file mode 100644 index 00000000000..62fc007731d --- /dev/null +++ b/apps/desktop/src/app/tools/import/import-desktop.component.ts @@ -0,0 +1,33 @@ +import { DialogRef } from "@angular/cdk/dialog"; +import { CommonModule } from "@angular/common"; +import { Component } from "@angular/core"; + +import { JslibModule } from "@bitwarden/angular/jslib.module"; +import { AsyncActionsModule, ButtonModule, DialogModule } from "@bitwarden/components"; +import { ImportComponent } from "@bitwarden/importer/ui"; + +@Component({ + templateUrl: "import-desktop.component.html", + standalone: true, + imports: [ + CommonModule, + JslibModule, + DialogModule, + AsyncActionsModule, + ButtonModule, + ImportComponent, + ], +}) +export class ImportDesktopComponent { + protected disabled = false; + protected loading = false; + + constructor(public dialogRef: DialogRef) {} + + /** + * Callback that is called after a successful import. + */ + protected async onSuccessfulImport(organizationId: string): Promise { + this.dialogRef.close(); + } +} diff --git a/apps/desktop/src/app/components/set-pin.component.html b/apps/desktop/src/auth/components/set-pin.component.html similarity index 100% rename from apps/desktop/src/app/components/set-pin.component.html rename to apps/desktop/src/auth/components/set-pin.component.html diff --git a/apps/browser/src/popup/components/set-pin.component.ts b/apps/desktop/src/auth/components/set-pin.component.ts similarity index 82% rename from apps/browser/src/popup/components/set-pin.component.ts rename to apps/desktop/src/auth/components/set-pin.component.ts index 47b8fd72128..41ce33eabde 100644 --- a/apps/browser/src/popup/components/set-pin.component.ts +++ b/apps/desktop/src/auth/components/set-pin.component.ts @@ -1,6 +1,6 @@ import { Component } from "@angular/core"; -import { SetPinComponent as BaseSetPinComponent } from "@bitwarden/angular/components/set-pin.component"; +import { SetPinComponent as BaseSetPinComponent } from "@bitwarden/angular/auth/components/set-pin.component"; @Component({ templateUrl: "set-pin.component.html", diff --git a/apps/desktop/src/auth/environment.component.ts b/apps/desktop/src/auth/environment.component.ts index 1f01b7445b4..9c10a6679cb 100644 --- a/apps/desktop/src/auth/environment.component.ts +++ b/apps/desktop/src/auth/environment.component.ts @@ -1,6 +1,6 @@ import { Component } from "@angular/core"; -import { EnvironmentComponent as BaseEnvironmentComponent } from "@bitwarden/angular/components/environment.component"; +import { EnvironmentComponent as BaseEnvironmentComponent } from "@bitwarden/angular/auth/components/environment.component"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { EnvironmentService } from "@bitwarden/common/platform/abstractions/environment.service"; import { I18nService } from "@bitwarden/common/platform/abstractions/i18n.service"; diff --git a/apps/desktop/src/auth/login/login-with-device.component.html b/apps/desktop/src/auth/login/login-via-auth-request.component.html similarity index 99% rename from apps/desktop/src/auth/login/login-with-device.component.html rename to apps/desktop/src/auth/login/login-via-auth-request.component.html index a81c92ad1d1..06c1f279c00 100644 --- a/apps/desktop/src/auth/login/login-with-device.component.html +++ b/apps/desktop/src/auth/login/login-via-auth-request.component.html @@ -21,7 +21,7 @@

{{ "fingerprintPhraseHeader" | i18n }}

diff --git a/apps/desktop/src/auth/login/login-with-device.component.ts b/apps/desktop/src/auth/login/login-via-auth-request.component.ts similarity index 93% rename from apps/desktop/src/auth/login/login-with-device.component.ts rename to apps/desktop/src/auth/login/login-via-auth-request.component.ts index daca2d19936..0fd426bc852 100644 --- a/apps/desktop/src/auth/login/login-with-device.component.ts +++ b/apps/desktop/src/auth/login/login-via-auth-request.component.ts @@ -2,7 +2,7 @@ import { Location } from "@angular/common"; import { Component, OnDestroy, OnInit, ViewChild, ViewContainerRef } from "@angular/core"; import { Router } from "@angular/router"; -import { LoginWithDeviceComponent as BaseLoginWithDeviceComponent } from "@bitwarden/angular/auth/components/login-with-device.component"; +import { LoginViaAuthRequestComponent as BaseLoginWithDeviceComponent } from "@bitwarden/angular/auth/components/login-via-auth-request.component"; import { ModalService } from "@bitwarden/angular/services/modal.service"; import { AnonymousHubService } from "@bitwarden/common/abstractions/anonymousHub.service"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; @@ -25,10 +25,10 @@ import { SyncService } from "@bitwarden/common/vault/abstractions/sync/sync.serv import { EnvironmentComponent } from "../environment.component"; @Component({ - selector: "app-login-with-device", - templateUrl: "login-with-device.component.html", + selector: "app-login-via-auth-request", + templateUrl: "login-via-auth-request.component.html", }) -export class LoginWithDeviceComponent +export class LoginViaAuthRequestComponent extends BaseLoginWithDeviceComponent implements OnInit, OnDestroy { diff --git a/apps/desktop/src/auth/login/login.component.html b/apps/desktop/src/auth/login/login.component.html index 3e02b49af2a..06ee5db32dc 100644 --- a/apps/desktop/src/auth/login/login.component.html +++ b/apps/desktop/src/auth/login/login.component.html @@ -118,7 +118,7 @@
- diff --git a/apps/desktop/src/auth/login/login.module.ts b/apps/desktop/src/auth/login/login.module.ts index 9fb2b28915a..1b926e57af5 100644 --- a/apps/desktop/src/auth/login/login.module.ts +++ b/apps/desktop/src/auth/login/login.module.ts @@ -6,17 +6,17 @@ import { EnvironmentSelectorComponent } from "@bitwarden/angular/auth/components import { SharedModule } from "../../app/shared/shared.module"; import { LoginDecryptionOptionsComponent } from "./login-decryption-options/login-decryption-options.component"; -import { LoginWithDeviceComponent } from "./login-with-device.component"; +import { LoginViaAuthRequestComponent } from "./login-via-auth-request.component"; import { LoginComponent } from "./login.component"; @NgModule({ imports: [SharedModule, RouterModule], declarations: [ LoginComponent, - LoginWithDeviceComponent, + LoginViaAuthRequestComponent, EnvironmentSelectorComponent, LoginDecryptionOptionsComponent, ], - exports: [LoginComponent, LoginWithDeviceComponent], + exports: [LoginComponent, LoginViaAuthRequestComponent], }) export class LoginModule {} diff --git a/apps/desktop/src/auth/register.component.ts b/apps/desktop/src/auth/register.component.ts index db38fd4721c..f02ce3dadaa 100644 --- a/apps/desktop/src/auth/register.component.ts +++ b/apps/desktop/src/auth/register.component.ts @@ -2,7 +2,7 @@ import { Component, NgZone, OnDestroy, OnInit } from "@angular/core"; import { UntypedFormBuilder } from "@angular/forms"; import { Router } from "@angular/router"; -import { RegisterComponent as BaseRegisterComponent } from "@bitwarden/angular/components/register.component"; +import { RegisterComponent as BaseRegisterComponent } from "@bitwarden/angular/auth/components/register.component"; import { FormValidationErrorsService } from "@bitwarden/angular/platform/abstractions/form-validation-errors.service"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { AuditService } from "@bitwarden/common/abstractions/audit.service"; diff --git a/apps/desktop/src/auth/set-password.component.ts b/apps/desktop/src/auth/set-password.component.ts index fedd70b3133..c2c838c8e7f 100644 --- a/apps/desktop/src/auth/set-password.component.ts +++ b/apps/desktop/src/auth/set-password.component.ts @@ -1,7 +1,7 @@ import { Component, NgZone, OnDestroy } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; -import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/components/set-password.component"; +import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/auth/components/set-password.component"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationUserService } from "@bitwarden/common/abstractions/organization-user/organization-user.service"; import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction"; diff --git a/apps/desktop/src/auth/two-factor.component.html b/apps/desktop/src/auth/two-factor.component.html index cd21f91f59e..2b9a1722ee0 100644 --- a/apps/desktop/src/auth/two-factor.component.html +++ b/apps/desktop/src/auth/two-factor.component.html @@ -83,7 +83,10 @@

{{ title }}

" >
- +
diff --git a/apps/desktop/src/global.d.ts b/apps/desktop/src/global.d.ts index 1b85bb1b6b1..4d103b2cdef 100644 --- a/apps/desktop/src/global.d.ts +++ b/apps/desktop/src/global.d.ts @@ -1 +1,2 @@ declare module "forcefocus"; +declare const ipc: typeof import("./preload").ipc; diff --git a/apps/desktop/src/images/bwi-passkey.png b/apps/desktop/src/images/bwi-passkey.png new file mode 100644 index 00000000000..702be33446e Binary files /dev/null and b/apps/desktop/src/images/bwi-passkey.png differ diff --git a/apps/desktop/src/locales/af/messages.json b/apps/desktop/src/locales/af/messages.json index 6c7b8281e57..f6ff88a960a 100644 --- a/apps/desktop/src/locales/af/messages.json +++ b/apps/desktop/src/locales/af/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "’n Organisasiebeleid beïnvloed u eienaarskapopsies." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Alle Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ar/messages.json b/apps/desktop/src/locales/ar/messages.json index cd0f5a6752e..4fcdbedf8a9 100644 --- a/apps/desktop/src/locales/ar/messages.json +++ b/apps/desktop/src/locales/ar/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "تؤثر سياسة مؤسسة على خيارات الملكية الخاصة بك." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "كل الإرسالات", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "قائمة فرعية" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/az/messages.json b/apps/desktop/src/locales/az/messages.json index 5c8e11c9891..adc77e6c2fe 100644 --- a/apps/desktop/src/locales/az/messages.json +++ b/apps/desktop/src/locales/az/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Bir təşkilat siyasəti, sahiblik seçimlərinizə təsir edir." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Bütün \"Send\"lər", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Alt menyu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Domen ləqəbi" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/be/messages.json b/apps/desktop/src/locales/be/messages.json index 00b275789cf..bf641dcb756 100644 --- a/apps/desktop/src/locales/be/messages.json +++ b/apps/desktop/src/locales/be/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Палітыка арганізацыі ўплывае на вашы параметры ўласнасці." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Усе Send'ы", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Падменю" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/bg/messages.json b/apps/desktop/src/locales/bg/messages.json index bb7d2925107..1c9d2209186 100644 --- a/apps/desktop/src/locales/bg/messages.json +++ b/apps/desktop/src/locales/bg/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Политика от някоя организация влияе на вариантите за собственост." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Политика на организацията забранява да внасяте елементи в личния си трезор." + }, "allSends": { "message": "Всички изпращания", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Подменю" }, + "typePasskey": { + "message": "Секретен ключ" + }, + "passkeyNotCopied": { + "message": "Секретният ключ няма да бъде копиран" + }, + "passkeyNotCopiedAlert": { + "message": "Секретният ключ няма да бъде копиран в клонирания елемент. Искате ли да продължите с клонирането на елемента?" + }, "aliasDomain": { "message": "Псевдонимен домейн" + }, + "importData": { + "message": "Внасяне на данни", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Грешка при внасянето" + }, + "importErrorDesc": { + "message": "Има проблем с данните, които внасяте. Поправете грешките посочени по-долу и пробвайте отново." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Оправете грешките по-долу и опитайте отново." + }, + "description": { + "message": "Описание" + }, + "importSuccess": { + "message": "Данните са внесени успешно" + }, + "importSuccessNumberOfItems": { + "message": "Общо внесени елементи: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Общо" + }, + "importWarning": { + "message": "Внасяте данни към организацията „$ORGANIZATION$“. Данните могат да бъдат споделени с членовете ѝ. Сигурни ли сте, че искате да продължите?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Данните са в неправилен формат. Проверете файла за внасяне и пробвайте отново." + }, + "importNothingError": { + "message": "Нищо не бе внесено." + }, + "importEncKeyError": { + "message": "Грешка при дешифрирането на изнесения файл. Ключът за шифриране не отговаря на този, който е използван за изнасянето на данните." + }, + "importDestination": { + "message": "Място на внасяне" + }, + "learnAboutImportOptions": { + "message": "Научете повече относно възможностите за внасяне" + }, + "selectImportFolder": { + "message": "Изберете папка" + }, + "selectImportCollection": { + "message": "Изберете колекция" + }, + "importTargetHint": { + "message": "Изберете тази опция, ако искате съдържанието на внесения файл да бъде преместено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файлът съдържа невъзложени елементи." + }, + "selectFormat": { + "message": "Избор на форма̀та на файла за внасяне" + }, + "selectImportFile": { + "message": "Изберете файла за внасяне" + }, + "chooseFile": { + "message": "Изберете файл" + }, + "noFileChosen": { + "message": "Не е избран файл" + }, + "orCopyPasteFileContents": { + "message": "или поставете съдържанието му" + }, + "instructionsFor": { + "message": "Инструкции за $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Потвърждаване на внасянето на трезора" + }, + "confirmVaultImportDesc": { + "message": "Този файл е защитен с парола. Трябва да въведете паролата, за да могат данните да бъдат внесени." + }, + "confirmFilePassword": { + "message": "Потвърждаване на паролата на файла" } } diff --git a/apps/desktop/src/locales/bn/messages.json b/apps/desktop/src/locales/bn/messages.json index d06c92179ed..dcb6381d907 100644 --- a/apps/desktop/src/locales/bn/messages.json +++ b/apps/desktop/src/locales/bn/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "একটি প্রতিষ্ঠানের নীতি আপনার মালিকানা বিকল্পগুলিকে প্রভাবিত করছে।" }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/bs/messages.json b/apps/desktop/src/locales/bs/messages.json index b2888e0e071..2909a4a4844 100644 --- a/apps/desktop/src/locales/bs/messages.json +++ b/apps/desktop/src/locales/bs/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Pravila organizacije utječu na tvoje mogućnosti vlasništva." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Svi Send-ovi", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ca/messages.json b/apps/desktop/src/locales/ca/messages.json index 5d5826cdaf8..ee6963fa2f5 100644 --- a/apps/desktop/src/locales/ca/messages.json +++ b/apps/desktop/src/locales/ca/messages.json @@ -476,7 +476,7 @@ "message": "La mida màxima del fitxer és de 500 MB." }, "encryptionKeyMigrationRequired": { - "message": "Encryption key migration required. Please login through the web vault to update your encryption key." + "message": "Cal migrar la clau de xifratge. Inicieu la sessió a la caixa forta web per actualitzar la clau de xifratge." }, "editedFolder": { "message": "Carpeta guardada" @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una política d’organització afecta les vostres opcions de propietat." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una política d'organització ha desactivat la importació d'elements a la vostra caixa forta personal." + }, "allSends": { "message": "Tots els Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenú" }, + "typePasskey": { + "message": "Clau de pas" + }, + "passkeyNotCopied": { + "message": "La clau de pas no es copiarà" + }, + "passkeyNotCopiedAlert": { + "message": "La clau de pas no es copiarà a l'element clonat. Voleu continuar clonant aquest element?" + }, "aliasDomain": { - "message": "Alias domain" + "message": "Domini d'àlies" + }, + "importData": { + "message": "Importa dades", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Error d'importació" + }, + "importErrorDesc": { + "message": "Hi ha hagut un problema amb les dades que heu intentat importar. Resoleu els errors que es mostren a continuació al fitxer font i torneu-ho a provar." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resoleu els errors següents i torneu-ho a provar." + }, + "description": { + "message": "Descripció" + }, + "importSuccess": { + "message": "Les dades s'han importat correctament" + }, + "importSuccessNumberOfItems": { + "message": "S'han importat un total de $AMOUNT$ elements.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Esteu important dades a $ORGANIZATION$. Les vostres dades es poden compartir amb membres d'aquesta organització. Voleu continuar?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Les dades no estan formatades correctament. Comproveu el fitxer d'importació i torneu-ho a provar." + }, + "importNothingError": { + "message": "No s'ha importat res." + }, + "importEncKeyError": { + "message": "Error en desxifrar el fitxer exportat. La vostra clau de xifratge no coincideix amb la clau de xifratge utilitzada per exportar les dades." + }, + "importDestination": { + "message": "Destinació de la importació" + }, + "learnAboutImportOptions": { + "message": "Obteniu informació sobre les opcions d'importació" + }, + "selectImportFolder": { + "message": "Selecciona una carpeta" + }, + "selectImportCollection": { + "message": "Selecciona una col·lecció" + }, + "importTargetHint": { + "message": "Seleccioneu aquesta opció si voleu que el contingut del fitxer importat es traslladi a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "El fitxer conté elements no assignats." + }, + "selectFormat": { + "message": "Seleccioneu el format del fitxer d'importació" + }, + "selectImportFile": { + "message": "Seleccioneu el fitxer d'importació" + }, + "chooseFile": { + "message": "Tria un fitxer" + }, + "noFileChosen": { + "message": "No s'ha triat cap fitxer" + }, + "orCopyPasteFileContents": { + "message": "o copieu/enganxeu el contingut dels fitxers d'importació" + }, + "instructionsFor": { + "message": "Instruccions de $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirma la importació de la Caixa forta" + }, + "confirmVaultImportDesc": { + "message": "Aquest fitxer està protegit amb contrasenya. Introduïu-la per importar dades." + }, + "confirmFilePassword": { + "message": "Confirma la contrasenya del fitxer" } } diff --git a/apps/desktop/src/locales/cs/messages.json b/apps/desktop/src/locales/cs/messages.json index 8fcbf5a3bd9..2655439953f 100644 --- a/apps/desktop/src/locales/cs/messages.json +++ b/apps/desktop/src/locales/cs/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Zásady organizace ovlivňují možnosti vlastnictví." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zásady organizace zablokovaly importování položek do Vašeho osobního trezoru." + }, "allSends": { "message": "Všechny Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Podmenu" }, + "typePasskey": { + "message": "Přístupový klíč" + }, + "passkeyNotCopied": { + "message": "Přístupový klíč nebude zkopírován" + }, + "passkeyNotCopiedAlert": { + "message": "Přístupový klíč nebude zkopírován do duplikované položky. Chete pokračovat v duplikování této položky?" + }, "aliasDomain": { "message": "Doména aliasu" + }, + "importData": { + "message": "Importovat data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Chyba importu" + }, + "importErrorDesc": { + "message": "Vyskytl se problém s daty, které jste se pokusili importovat. Vyřešte níže uvedené chyby ve zdrojovém souboru a zkuste to znovu." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Vyřešte chyby níže a zkuste to znovu." + }, + "description": { + "message": "Popis" + }, + "importSuccess": { + "message": "Data byla úspěšně importována" + }, + "importSuccessNumberOfItems": { + "message": "Bylo importováno celkem $AMOUNT$ položek.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Celkem" + }, + "importWarning": { + "message": "Importujete data do organizace $ORGANIZATION$. Vaše data mohou být sdílena s členy této organizace. Chcete pokračovat?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data nemají správný formát. Zkontrolujte importovaný soubor a zkuste to znovu." + }, + "importNothingError": { + "message": "Nebylo nic importováno." + }, + "importEncKeyError": { + "message": "Chyba při dešifrování exportovaného souboru. Váš šifrovací klíč se neshoduje s klíčem použitým během exportu dat." + }, + "importDestination": { + "message": "Cíl importu" + }, + "learnAboutImportOptions": { + "message": "Více o volbách importu" + }, + "selectImportFolder": { + "message": "Zvolte složku" + }, + "selectImportCollection": { + "message": "Zvolte kolekci" + }, + "importTargetHint": { + "message": "Pokud chcete obsah importovaného souboru přesunout do složky $DESTINATION$, vyberte tuto volbu", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Soubor obsahuje nepřiřazené položky." + }, + "selectFormat": { + "message": "Vyberte formát importovaného souboru" + }, + "selectImportFile": { + "message": "Vyberte soubor pro import" + }, + "chooseFile": { + "message": "Vybrat soubor" + }, + "noFileChosen": { + "message": "Není vybrán žádný soubor" + }, + "orCopyPasteFileContents": { + "message": "nebo zkopírujte a vložte obsah souboru" + }, + "instructionsFor": { + "message": "Instrukce pro $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potvrdit import trezoru" + }, + "confirmVaultImportDesc": { + "message": "Tento soubor je chráněn heslem. Zadejte heslo souboru pro import dat." + }, + "confirmFilePassword": { + "message": "Potvrzení hesla souboru" } } diff --git a/apps/desktop/src/locales/cy/messages.json b/apps/desktop/src/locales/cy/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/cy/messages.json +++ b/apps/desktop/src/locales/cy/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/da/messages.json b/apps/desktop/src/locales/da/messages.json index b51e6b1e385..f489da84e7f 100644 --- a/apps/desktop/src/locales/da/messages.json +++ b/apps/desktop/src/locales/da/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "En organisationspolitik påvirker dine ejerskabsmuligheder." }, + "personalOwnershipPolicyInEffectImports": { + "message": "En organisationspolitik hindrer import af emner til den personlige boks." + }, "allSends": { "message": "Alle Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Undermenu" }, + "typePasskey": { + "message": "Adgangsnøgle" + }, + "passkeyNotCopied": { + "message": "Adgangsnøglen kopieres ikke" + }, + "passkeyNotCopiedAlert": { + "message": "Adgangsnøglen kopieres ikke til det klonede emne. Fortsæt kloningen af emnet alligevel?" + }, "aliasDomain": { "message": "Aliasdomæne" + }, + "importData": { + "message": "Dataimport", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Importfejl" + }, + "importErrorDesc": { + "message": "Der var et problem med de data, som blev forsøgt importeret. Ret nedenstående fejl i kildefilen, og forsøg igen." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Ret fejlene nedenfor og forsøg igen." + }, + "description": { + "message": "Beskriveslse" + }, + "importSuccess": { + "message": "Data er hermed importeret" + }, + "importSuccessNumberOfItems": { + "message": "I alt $AMOUNT$ emner blev importeret.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "I alt" + }, + "importWarning": { + "message": "Data, som kan blive delt med organisationsmedlemmerne, er ved at blive importeret til $ORGANIZATION$. Fortsæt?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data er ikke korrekt formateret. Tjek importfilen og forsøg igen." + }, + "importNothingError": { + "message": "Intet blev importeret." + }, + "importEncKeyError": { + "message": "Fejl under dekryptering af eksporteret fil. Krypteringsnøglen matcher ikke den til dataeksporten anvendte krypteringsnøgle." + }, + "importDestination": { + "message": "Importdestination" + }, + "learnAboutImportOptions": { + "message": "Læs om importmuligheder" + }, + "selectImportFolder": { + "message": "Vælg en mappe" + }, + "selectImportCollection": { + "message": "Vælg en samling" + }, + "importTargetHint": { + "message": "Vælg denne indstilling, hvis importeret filindhold skal flyttet til en $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Fil indeholder ikke-tildelte emner." + }, + "selectFormat": { + "message": "Vælg formatet for importfilen" + }, + "selectImportFile": { + "message": "Vælg importfil" + }, + "chooseFile": { + "message": "Vælg fil" + }, + "noFileChosen": { + "message": "Ingen fil valgt" + }, + "orCopyPasteFileContents": { + "message": "eller kopiér/indsæt importfilens indhold" + }, + "instructionsFor": { + "message": "$NAME$-vejledning", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Bekræft Boks-import" + }, + "confirmVaultImportDesc": { + "message": "Denne fil er adgangskodebeskyttet. Angiv filadgangskoden for at importere data." + }, + "confirmFilePassword": { + "message": "Bekræft filadgangskode" } } diff --git a/apps/desktop/src/locales/de/messages.json b/apps/desktop/src/locales/de/messages.json index fc4490e3c0d..48c76c1c14b 100644 --- a/apps/desktop/src/locales/de/messages.json +++ b/apps/desktop/src/locales/de/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Eine Organisationsrichtlinie beeinflusst deine Eigentümer-Optionen." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Eine Organisationsrichtlinie hat das Importieren von Einträgen in deinen persönlichen Tresor deaktiviert." + }, "allSends": { "message": "Alle Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Untermenü" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey wird nicht kopiert" + }, + "passkeyNotCopiedAlert": { + "message": "Der Passkey wird nicht in den duplizierten Eintrag kopiert. Möchtest du mit dem Duplizieren dieses Eintrags fortfahren?" + }, "aliasDomain": { "message": "Alias-Domain" + }, + "importData": { + "message": "Daten importieren", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Importfehler" + }, + "importErrorDesc": { + "message": "Es gab ein Problem mit den Daten, die du importieren wolltest. Bitte behebe die unten aufgeführten Fehler in deiner Quelldatei und versuche es erneut." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Behebe die unten aufgeführten Fehler und versuche es erneut." + }, + "description": { + "message": "Beschreibung" + }, + "importSuccess": { + "message": "Daten erfolgreich importiert" + }, + "importSuccessNumberOfItems": { + "message": "Insgesamt wurden $AMOUNT$ Einträge importiert.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Gesamt" + }, + "importWarning": { + "message": "Du importierst Daten in $ORGANIZATION$. Deine Daten könnten mit Mitgliedern dieser Organisation geteilt werden. Möchtest du fortfahren?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Die Daten sind nicht richtig formatiert. Kontrollieren Sie bitte Ihre Import-Datei und versuchen Sie es erneut." + }, + "importNothingError": { + "message": "Es wurde nichts importiert." + }, + "importEncKeyError": { + "message": "Fehler beim Entschlüsseln der exportierten Datei. Dein Verschlüsselungsschlüssel stimmt nicht mit dem beim Export verwendeten Verschlüsselungsschlüssel überein." + }, + "importDestination": { + "message": "Import-Ziel" + }, + "learnAboutImportOptions": { + "message": "Erfahre mehr über deine Importoptionen" + }, + "selectImportFolder": { + "message": "Ordner auswählen" + }, + "selectImportCollection": { + "message": "Sammlung auswählen" + }, + "importTargetHint": { + "message": "Wähle diese Option, wenn der importierte Dateiinhalt in eine(n) $DESTINATION$ verschoben werden soll", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Die Datei enthält nicht zugewiesene Einträge." + }, + "selectFormat": { + "message": "Wählen Sie das Format Ihrer Import-Datei" + }, + "selectImportFile": { + "message": "Wählen Sie die Import-Datei" + }, + "chooseFile": { + "message": "Datei auswählen" + }, + "noFileChosen": { + "message": "Keine Datei ausgewählt" + }, + "orCopyPasteFileContents": { + "message": "oder fügen Sie den Inhalt Ihrer Datei hier ein" + }, + "instructionsFor": { + "message": "Anleitung für $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Tresor-Import bestätigen" + }, + "confirmVaultImportDesc": { + "message": "Diese Datei ist passwortgeschützt. Bitte gib das Dateipasswort ein, um Daten zu importieren." + }, + "confirmFilePassword": { + "message": "Dateipasswort bestätigen" } } diff --git a/apps/desktop/src/locales/el/messages.json b/apps/desktop/src/locales/el/messages.json index 9c48c69f2f3..d17628b3258 100644 --- a/apps/desktop/src/locales/el/messages.json +++ b/apps/desktop/src/locales/el/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Μια πολιτική του οργανισμού, επηρεάζει τις επιλογές ιδιοκτησίας σας." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Όλα τα Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/en/messages.json b/apps/desktop/src/locales/en/messages.json index d3a13313e9e..365d5bb2b61 100644 --- a/apps/desktop/src/locales/en/messages.json +++ b/apps/desktop/src/locales/en/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,191 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "invalidFilePassword": { + "message": "Invalid file password, please use the password you entered when you created the export file." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" + }, + "multifactorAuthenticationCancelled": { + "message": "Multifactor authentication cancelled" + }, + "noLastPassDataFound": { + "message": "No LastPass data found" + }, + "incorrectUsernameOrPassword": { + "message": "Incorrect username or password" + }, + "multifactorAuthenticationFailed": { + "message": "Multifactor authentication failed" + }, + "includeSharedFolders": { + "message": "Include shared folders" + }, + "lastPassEmail": { + "message": "LastPass Email" + }, + "importingYourAccount": { + "message": "Importing your account..." + }, + "lastPassMFARequired": { + "message": "LastPass multifactor authentication required" + }, + "lastPassMFADesc": { + "message": "Enter your one-time passcode from your authentication app" + }, + "lastPassOOBDesc": { + "message": "Approve the login request in your authentication app or enter a one-time passcode." + }, + "passcode": { + "message": "Passcode" + }, + "lastPassMasterPassword": { + "message": "LastPass master password" + }, + "lastPassAuthRequired": { + "message": "LastPass authentication required" + }, + "awaitingSSO": { + "message": "Awaiting SSO authentication" + }, + "awaitingSSODesc": { + "message": "Please continue to log in using your company credentials." + }, + "seeDetailedInstructions": { + "message": "See detailed instructions on our help site at", + "description": "This is followed a by a hyperlink to the help website." + }, + "importDirectlyFromLastPass": { + "message": "Import directly from LastPass" + }, + "importFromCSV": { + "message": "Import from CSV" + }, + "lastPassTryAgainCheckEmail": { + "message": "Try again or look for an email from LastPass to verify it's you." + }, + "collection": { + "message": "Collection" + }, + "lastPassYubikeyDesc": { + "message": "Insert the YubiKey associated with your LastPass account into your computer's USB port, then touch its button." } } diff --git a/apps/desktop/src/locales/en_GB/messages.json b/apps/desktop/src/locales/en_GB/messages.json index 2b633fe418d..e052a3b7bc9 100644 --- a/apps/desktop/src/locales/en_GB/messages.json +++ b/apps/desktop/src/locales/en_GB/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organisation policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/en_IN/messages.json b/apps/desktop/src/locales/en_IN/messages.json index 3d76a215982..421fd4d7406 100644 --- a/apps/desktop/src/locales/en_IN/messages.json +++ b/apps/desktop/src/locales/en_IN/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/eo/messages.json b/apps/desktop/src/locales/eo/messages.json index 5b790ffa3de..a7de62bd601 100644 --- a/apps/desktop/src/locales/eo/messages.json +++ b/apps/desktop/src/locales/eo/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/es/messages.json b/apps/desktop/src/locales/es/messages.json index 3f290fba306..07726173408 100644 --- a/apps/desktop/src/locales/es/messages.json +++ b/apps/desktop/src/locales/es/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una política de organización está afectando a sus opciones de propiedad." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Todos los Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2253,7 +2256,7 @@ "message": "Device approval required. Select an approval option below:" }, "rememberThisDevice": { - "message": "Remember this device" + "message": "Recordar este dispositivo" }, "uncheckIfPublicDevice": { "message": "Uncheck if using a public device" @@ -2323,7 +2326,7 @@ "message": "required" }, "search": { - "message": "Search" + "message": "Buscar" }, "inputMinLength": { "message": "Input must be at least $COUNT$ characters long.", @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/et/messages.json b/apps/desktop/src/locales/et/messages.json index 43012caf212..0ba87e12532 100644 --- a/apps/desktop/src/locales/et/messages.json +++ b/apps/desktop/src/locales/et/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Organisatsiooni poliitika on seadnud omaniku valikutele piirangu." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Kõik Sendid", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/eu/messages.json b/apps/desktop/src/locales/eu/messages.json index db7dd72a9d7..148fcdc28be 100644 --- a/apps/desktop/src/locales/eu/messages.json +++ b/apps/desktop/src/locales/eu/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Erakunde politika batek, jabetza aukerei eragiten die." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Send guztiak", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/fa/messages.json b/apps/desktop/src/locales/fa/messages.json index 363159ecbdd..83f66f0b113 100644 --- a/apps/desktop/src/locales/fa/messages.json +++ b/apps/desktop/src/locales/fa/messages.json @@ -491,7 +491,7 @@ "message": "پوشه حذف شد" }, "loginOrCreateNewAccount": { - "message": "وارد شوید یا یک حساب کاربری بسازید تا به گاوصندوق امنتان دسترسی یابید." + "message": "وارد شوید یا یک حساب کاربری بسازید تا به گاوصندوق امن‌تان دسترسی یابید." }, "createAccount": { "message": "ایجاد حساب کاربری" @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "سیاست سازمانی بر تنظیمات مالکیت شما تأثیر می‌گذارد." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "همه ارسال ها", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2095,7 +2098,7 @@ "message": "شما نیستید؟" }, "newAroundHere": { - "message": "اینجا جدیده؟" + "message": "اینجا تازه واردی؟" }, "loggingInTo": { "message": "ورود به $DOMAIN$", @@ -2416,7 +2419,124 @@ "submenu": { "message": "زیرمنو" }, + "typePasskey": { + "message": "کلید عبور" + }, + "passkeyNotCopied": { + "message": "کلید عبور کپی نمی‌شود" + }, + "passkeyNotCopiedAlert": { + "message": "کلید عبور در مورد شبیه سازی شده کپی نمی‌شود. آیا می‌خواهید به شبیه سازی این مورد ادامه دهید؟" + }, "aliasDomain": { "message": "دامنه مستعار" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/fi/messages.json b/apps/desktop/src/locales/fi/messages.json index 8992d155244..d5e88807117 100644 --- a/apps/desktop/src/locales/fi/messages.json +++ b/apps/desktop/src/locales/fi/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Organisaatiokäytäntö vaikuttaa omistajuusvalintoihisi." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Organisaatiokäytäntö estää kohteiden tuonnin yksityiseen holviisi." + }, "allSends": { "message": "Kaikki Sendit", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2138,7 +2141,7 @@ "message": "Yritätkö kirjautua sisään?" }, "logInAttemptBy": { - "message": "Kirjautumisyritys tunnuksella $EMAIL$", + "message": "Kirjautumisyritys tunnuksella $EMAIL$.", "placeholders": { "email": { "content": "$1", @@ -2159,7 +2162,7 @@ "message": "Vahvista kirjautuminen" }, "denyLogIn": { - "message": "Estä kirjautuminen" + "message": "Hylkää kirjautuminen" }, "approveLoginRequests": { "message": "Hyväksy kirjautumispyyntöjä" @@ -2416,7 +2419,124 @@ "submenu": { "message": "Alavalikko" }, + "typePasskey": { + "message": "Suojausavain" + }, + "passkeyNotCopied": { + "message": "Suojausavainta ei kopioida" + }, + "passkeyNotCopiedAlert": { + "message": "Suojausavain ei kopioidu kloonattuun kohteeseen. Haluatko jatkaa kloonausta?" + }, "aliasDomain": { "message": "Aliasverkkotunnus" + }, + "importData": { + "message": "Tuo tietoja", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Tuontivirhe" + }, + "importErrorDesc": { + "message": "Tiedoissa, joita yritit tuoda, havaittiin ongelma. Korjaa alla listatut virheet lähdetiedostosta ja yritä uudelleen." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Korjaa seuraavat virheet ja yritä uudelleen." + }, + "description": { + "message": "Kuvaus" + }, + "importSuccess": { + "message": "Tietojen tuonti onnistui" + }, + "importSuccessNumberOfItems": { + "message": "Kaikkiaan $AMOUNT$ kohdetta tuotiin.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Yhteensä" + }, + "importWarning": { + "message": "Olet tuomassa tietoja organisaatioon $ORGANIZATION$. Tietojasi saatetaan jakaa organisaation jäsenten kesken. Haluatko jatkaa?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Tietoja ei ole muotoiltu oikein. Tarkista tuotava tiedosto ja yritä uudelleen." + }, + "importNothingError": { + "message": "Mitään ei tuotu." + }, + "importEncKeyError": { + "message": "Virhe purettaessa viedyn tiedoston salausta. Salausavaimesi ei vastaa viennissä käytettyä salausavainta." + }, + "importDestination": { + "message": "Tuontikohde" + }, + "learnAboutImportOptions": { + "message": "Lue lisää tuontivaihtoehdoista" + }, + "selectImportFolder": { + "message": "Valitse kansio" + }, + "selectImportCollection": { + "message": "Valitse kokoelma" + }, + "importTargetHint": { + "message": "Valitse tämä, jos haluat tuoda tiedoston sisällön kohteeseen \"$DESTINATION$\".", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Tiedosto sisältää määrittämättömiä kohteita." + }, + "selectFormat": { + "message": "Valitse tuotavan tiedoston muoto" + }, + "selectImportFile": { + "message": "Valitse tuotava tiedosto" + }, + "chooseFile": { + "message": "Valitse tiedosto" + }, + "noFileChosen": { + "message": "Tiedostoa ei ole valittu" + }, + "orCopyPasteFileContents": { + "message": "tai kopioi ja liitä tuotavan tiedoston sisältö" + }, + "instructionsFor": { + "message": "$NAME$ -ohjeet", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Vahvista holvin tuonti" + }, + "confirmVaultImportDesc": { + "message": "Tiedosto on salasanasuojattu. Jatka tuontia syöttämällä tiedoston salasana." + }, + "confirmFilePassword": { + "message": "Vahvista tiedoston salasana" } } diff --git a/apps/desktop/src/locales/fil/messages.json b/apps/desktop/src/locales/fil/messages.json index 72be6018694..0d0e68ad188 100644 --- a/apps/desktop/src/locales/fil/messages.json +++ b/apps/desktop/src/locales/fil/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Isang organisasyon policy ang nakakaapekto sa iyong mga pagpipilian sa ownership." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Lahat ng Mga Padala", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/fr/messages.json b/apps/desktop/src/locales/fr/messages.json index f6baea6ee6f..83144e55ef1 100644 --- a/apps/desktop/src/locales/fr/messages.json +++ b/apps/desktop/src/locales/fr/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Une politique d'organisation affecte vos options de propriété." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Une politique d'organisation a bloqué l'import d'éléments dans votre coffre personel." + }, "allSends": { "message": "Tous les Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Sous-menu" }, + "typePasskey": { + "message": "Clé d'accès" + }, + "passkeyNotCopied": { + "message": "La clé d'accès ne sera pas copiée" + }, + "passkeyNotCopiedAlert": { + "message": "La clé d'accès ne sera pas présente sur l'entrée clonée. Continuer quand même ?" + }, "aliasDomain": { "message": "Domaine de l'alias" + }, + "importData": { + "message": "Importer des données", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Erreur lors de l'importation" + }, + "importErrorDesc": { + "message": "Il y a eu un problème avec les données que vous avez essayé d'importer. Veuillez résoudre les erreurs listées ci-dessous dans votre fichier source et réessayer." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Résolvez les erreurs ci-dessous et réessayez." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Données importées avec succès" + }, + "importSuccessNumberOfItems": { + "message": "Un total de $AMOUNT$ élément(s) a été importé.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Vous importez des données vers $ORGANIZATION$. Vos données pourraient être partagées avec les membres de cette organisation. Voulez-vous continuer ?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Les données ne sont pas correctement mises en forme. Veuillez vérifier le fichier importé et réessayer." + }, + "importNothingError": { + "message": "Rien à importer." + }, + "importEncKeyError": { + "message": "Erreur lors du déchiffrement du fichier exporté. Votre clé de chiffrement ne correspond pas à la clé de chiffrement utilisée pour exporter les données." + }, + "importDestination": { + "message": "Destination de l'import" + }, + "learnAboutImportOptions": { + "message": "En savoir plus sur vos options d'importation" + }, + "selectImportFolder": { + "message": "Choisir un dossier" + }, + "selectImportCollection": { + "message": "Sélectionnez une collection" + }, + "importTargetHint": { + "message": "Sélectionnez cette option si vous voulez que le contenu du fichier importé soit déplacé vers un(e) $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Le fichier contient des éléments non assignés." + }, + "selectFormat": { + "message": "Sélectionnez le format du fichier à importer" + }, + "selectImportFile": { + "message": "Sélectionnez le fichier à importer" + }, + "chooseFile": { + "message": "Choisir le fichier" + }, + "noFileChosen": { + "message": "Aucun fichier choisi" + }, + "orCopyPasteFileContents": { + "message": "ou copiez/collez le contenu du fichier à importer" + }, + "instructionsFor": { + "message": "Instructions $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirmez l'import du coffre" + }, + "confirmVaultImportDesc": { + "message": "Ce fichier est protégé par mot de passe. Veuillez entrer le mot de passe du fichier pour importer des données." + }, + "confirmFilePassword": { + "message": "Confirmez le mot de passe du fichier" } } diff --git a/apps/desktop/src/locales/gl/messages.json b/apps/desktop/src/locales/gl/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/gl/messages.json +++ b/apps/desktop/src/locales/gl/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/he/messages.json b/apps/desktop/src/locales/he/messages.json index a43a20fd62c..51380ca84ec 100644 --- a/apps/desktop/src/locales/he/messages.json +++ b/apps/desktop/src/locales/he/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "מדיניות ארגון מסויימת משפיעה על אפשרויות הבעלות." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "כל השליחות", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/hi/messages.json b/apps/desktop/src/locales/hi/messages.json index f31adfc16dd..7acf43a5d9b 100644 --- a/apps/desktop/src/locales/hi/messages.json +++ b/apps/desktop/src/locales/hi/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/hr/messages.json b/apps/desktop/src/locales/hr/messages.json index 4578cc44fdd..8571b307b01 100644 --- a/apps/desktop/src/locales/hr/messages.json +++ b/apps/desktop/src/locales/hr/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Pravila organizacije utječu na tvoje mogućnosti vlasništva." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Svi Sendovi", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Podizbornik" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domene" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/hu/messages.json b/apps/desktop/src/locales/hu/messages.json index db32fd48655..cb47cde6754 100644 --- a/apps/desktop/src/locales/hu/messages.json +++ b/apps/desktop/src/locales/hu/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "A szervezeti házirend befolyásolja a tulajdonosi opciókat." }, + "personalOwnershipPolicyInEffectImports": { + "message": "A szervezeti politika blokkolta az elemek importálását az egyedi széfbe." + }, "allSends": { "message": "Összes küldés", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Almenü" }, + "typePasskey": { + "message": "Hozzáférési kulcs" + }, + "passkeyNotCopied": { + "message": "A hozzáférési kulcs nem kerül másolásra." + }, + "passkeyNotCopiedAlert": { + "message": "A hozzáférési kulcs nem kerül másolásra a klónozott elembe. Folytatjuk ennek az elemnek a klónozását?" + }, "aliasDomain": { "message": "Áldomain" + }, + "importData": { + "message": "Adatok importálása", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Importálási hiba" + }, + "importErrorDesc": { + "message": "Probléma merült fel az importálni próbált adatokkal. Oldjuk fel a forrásfájlban alább felsorolt hibákat és próbáljuk újra." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Oldjuk fel a hibákat lentebb és próbáljuk újra." + }, + "description": { + "message": "Leírás" + }, + "importSuccess": { + "message": "Az adatok sikeresen importálásra kerültek." + }, + "importSuccessNumberOfItems": { + "message": "Összesen $AMOUNT$ elem lett importálva.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Összesen" + }, + "importWarning": { + "message": "Adatokat importálunk $ORGANIZATION$ fájlba. Az adatok megosztásra kerülhetnek a szervezet tagjaival. Folytatni akarjuk?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Az adatok nincsenek megfelelően formázva. Ellenőrizzük az importálás fájlt és próbáljuk újra." + }, + "importNothingError": { + "message": "Semmi nem lett importálva." + }, + "importEncKeyError": { + "message": "Hiba történt az exportált fájl visszafejtése során. A titkosítási kulcs nem egyezik meg az adatok exportálásához használt titkosítási kulccsal." + }, + "importDestination": { + "message": "Importálás leírás" + }, + "learnAboutImportOptions": { + "message": "Információ az importálási opciókról" + }, + "selectImportFolder": { + "message": "Mappa kiválasztása" + }, + "selectImportCollection": { + "message": "Gyűjtemény kiválasztása" + }, + "importTargetHint": { + "message": "Válasszuk ezt a lehetőséget, ha azt akarjuk, hogy az importált fájl tartalma $DESTINATION$ helyre kerüljön", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "A fájl hozzá nem rendelt elemeket tartalmaz." + }, + "selectFormat": { + "message": "Válasszuk ki az importáló fájl formátumát" + }, + "selectImportFile": { + "message": "Válasszuk ki az import fájlt" + }, + "chooseFile": { + "message": "Fájl kiválasztása" + }, + "noFileChosen": { + "message": "Nincs kiválasztott fájl." + }, + "orCopyPasteFileContents": { + "message": "vagy vágólapon vigyük be fájl tartalmat" + }, + "instructionsFor": { + "message": "$NAME$ utasítások", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Széf importálás megerősítése" + }, + "confirmVaultImportDesc": { + "message": "Ez a fájl jelszóval védett. Adjuk meg a fájl jelszót az adatok importálásához." + }, + "confirmFilePassword": { + "message": "Fájl jelszó megerősítés" } } diff --git a/apps/desktop/src/locales/id/messages.json b/apps/desktop/src/locales/id/messages.json index 16ff465fee4..81188a28748 100644 --- a/apps/desktop/src/locales/id/messages.json +++ b/apps/desktop/src/locales/id/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Kebijakan organisasi memengaruhi opsi kepemilikan Anda." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Semua Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/it/messages.json b/apps/desktop/src/locales/it/messages.json index 457ec571fee..b8638a2e62d 100644 --- a/apps/desktop/src/locales/it/messages.json +++ b/apps/desktop/src/locales/it/messages.json @@ -476,7 +476,7 @@ "message": "La dimensione massima del file è 500 MB." }, "encryptionKeyMigrationRequired": { - "message": "Migrazione della chiave di criptografia obbligatoria. Accedi tramite la cassaforte web per aggiornare la tua chiave di criptografia." + "message": "Migrazione della chiave di crittografia obbligatoria. Accedi tramite la cassaforte web per aggiornare la tua chiave di crittografia." }, "editedFolder": { "message": "Cartella salvata" @@ -1075,7 +1075,7 @@ "message": "Passa a Premium e ottieni:" }, "premiumSignUpStorage": { - "message": "1 GB di spazio di archiviazione criptato per gli allegati." + "message": "1 GB di spazio di archiviazione crittografato per gli allegati." }, "premiumSignUpTwoStepOptions": { "message": "Opzioni di verifica in due passaggi proprietarie come YubiKey e Duo." @@ -1335,13 +1335,13 @@ "message": "Conferma esportazione della cassaforte" }, "exportWarningDesc": { - "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non criptato. Non salvare o inviare il file esportato attraverso canali non protetti (come le email). Eliminalo immediatamente dopo l'utilizzo." + "message": "Questa esportazione contiene i dati della tua cassaforte in un formato non crittografato. Non salvare o inviare il file esportato attraverso canali non protetti (come le email). Eliminalo immediatamente dopo l'utilizzo." }, "encExportKeyWarningDesc": { - "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 potrai più decifrare il file esportato e dovrai eseguire una nuova esportazione." + "message": "Questa esportazione crittografa i tuoi dati usando la chiave di crittografia del tuo account. Se cambi la chiave di crittografia del tuo account, non potrai più decifrare il file esportato e dovrai eseguire una nuova esportazione." }, "encExportAccountWarningDesc": { - "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." + "message": "Le chiavi di crittografia dell'account sono uniche per ogni account Bitwarden, quindi non puoi importare un file di esportazione crittato in un account diverso." }, "noOrganizationsList": { "message": "Non appartieni a nessuna organizzazione. Le organizzazioni ti consentono di condividere elementi con altri in modo sicuro." @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Una politica dell'organizzazione sta influenzando le tue opzioni di proprietà." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Una politica dell'organizzazione ti impedisce di importare elementi nella tua cassaforte individuale." + }, "allSends": { "message": "Tutti i Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2077,7 +2080,7 @@ "message": "Non è possibile accedere agli elementi nelle organizzazioni disabilitate. Contatta il proprietario della tua organizzazione per assistenza." }, "neverLockWarning": { - "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." + "message": "Sei sicuro di voler usare l'opzione \"Mai\"? Impostare le opzioni di blocco su \"Mai\" salverà la chiave di crittografia della cassaforte sul tuo dispositivo. Se usi questa opzione, assicurati di mantenere il tuo dispositivo adeguatamente protetto." }, "vault": { "message": "Cassaforte" @@ -2416,7 +2419,124 @@ "submenu": { "message": "Sottomenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "La passkey non sarà copiata" + }, + "passkeyNotCopiedAlert": { + "message": "La passkey non sarà copiata nell'elemento clonato. Vuoi continuare a clonare questo elemento?" + }, "aliasDomain": { "message": "Dominio alias" + }, + "importData": { + "message": "Importa dati", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Errore di importazione" + }, + "importErrorDesc": { + "message": "Si è verificato un problema con i dati che hai provato a importare. Risolvi questi errori nel file e riprova." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Correggi gli errori qui sotto e riprova." + }, + "description": { + "message": "Descrizione" + }, + "importSuccess": { + "message": "Dati importati" + }, + "importSuccessNumberOfItems": { + "message": "$AMOUNT$ elementi sono stati importati.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Totale" + }, + "importWarning": { + "message": "Stai importando dati in $ORGANIZATION$. I tuoi dati potrebbero essere condivisi con i membri di questa organizzazione. Vuoi procedere?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "I dati non sono formattati correttamente. Controlla il file di importazione e riprova." + }, + "importNothingError": { + "message": "Non è stato importato niente." + }, + "importEncKeyError": { + "message": "Errore durante la decrittografia del file esportato. La chiave di crittografia non corrisponde alla chiave di crittografia usata per esportare i dati." + }, + "importDestination": { + "message": "Destinazione dell'importazione" + }, + "learnAboutImportOptions": { + "message": "Ulteriori informazioni sulle tue opzioni di importazione" + }, + "selectImportFolder": { + "message": "Seleziona una cartella" + }, + "selectImportCollection": { + "message": "Seleziona una raccolta" + }, + "importTargetHint": { + "message": "Seleziona questa opzione se vuoi che i contenuti del file di importazione siano spostati in una $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Il file contiene elementi non assegnati." + }, + "selectFormat": { + "message": "Seleziona il formato del file da importare" + }, + "selectImportFile": { + "message": "Seleziona il file da importare" + }, + "chooseFile": { + "message": "Seleziona file" + }, + "noFileChosen": { + "message": "Nessun file selezionato" + }, + "orCopyPasteFileContents": { + "message": "oppure copia e incolla il contenuto del file da importare" + }, + "instructionsFor": { + "message": "Istruzioni per $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Conferma importazione della cassaforte" + }, + "confirmVaultImportDesc": { + "message": "Questo file è protetto da password. Inserisci la password del file per importare i dati." + }, + "confirmFilePassword": { + "message": "Conferma password del file" } } diff --git a/apps/desktop/src/locales/ja/messages.json b/apps/desktop/src/locales/ja/messages.json index 25bf40fe6a8..b851f567138 100644 --- a/apps/desktop/src/locales/ja/messages.json +++ b/apps/desktop/src/locales/ja/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "組織のポリシーは、所有者のオプションに影響を与えています。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "組織のポリシーにより、個々の保管庫へのアイテムのインポートがブロックされました。" + }, "allSends": { "message": "すべての Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "サブメニュー" }, + "typePasskey": { + "message": "パスキー" + }, + "passkeyNotCopied": { + "message": "パスキーはコピーされません" + }, + "passkeyNotCopiedAlert": { + "message": "パスキーは複製されたアイテムにコピーされません。このアイテムを複製しますか?" + }, "aliasDomain": { "message": "エイリアスドメイン" + }, + "importData": { + "message": "データのインポート", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "インポート エラー" + }, + "importErrorDesc": { + "message": "インポートしようとしたデータに問題がありました。以下のエラーをソースファイルで解決し、もう一度やり直してください。" + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "以下のエラーを解決してやり直してください。" + }, + "description": { + "message": "説明" + }, + "importSuccess": { + "message": "データをインポートしました" + }, + "importSuccessNumberOfItems": { + "message": "合計 $AMOUNT$ 件のアイテムをインポートしました。", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "合計" + }, + "importWarning": { + "message": "$ORGANIZATION$にデータをインポートしています。データはこの組織のメンバーと共有される可能性があります。続行しますか?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "データが正しい形式ではありません。インポートするファイルを確認してやり直してください。" + }, + "importNothingError": { + "message": "何もインポートされませんでした。" + }, + "importEncKeyError": { + "message": "エクスポートされたファイルの復号でエラーが発生しました。暗号化キーが、データをエクスポートするために使用された暗号化キーと一致しません。" + }, + "importDestination": { + "message": "インポート先" + }, + "learnAboutImportOptions": { + "message": "インポートオプションの詳細" + }, + "selectImportFolder": { + "message": "フォルダーを選択" + }, + "selectImportCollection": { + "message": "コレクションを選択" + }, + "importTargetHint": { + "message": "インポートしたファイルコンテンツを $DESTINATION$ に移動したい場合は、このオプションを選択してください。", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "割り当てられていないアイテムがファイルに含まれています。" + }, + "selectFormat": { + "message": "インポートするファイルの形式を選択" + }, + "selectImportFile": { + "message": "インポートするファイルを選択" + }, + "chooseFile": { + "message": "ファイルを選択" + }, + "noFileChosen": { + "message": "ファイルが選択されていません" + }, + "orCopyPasteFileContents": { + "message": "またはインポートするファイルの中身をコピーして貼り付け" + }, + "instructionsFor": { + "message": "$NAME$ 向けの説明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "保管庫のインポートの確認" + }, + "confirmVaultImportDesc": { + "message": "このファイルはパスワードで保護されています。インポートするファイルのパスワードを入力してください。" + }, + "confirmFilePassword": { + "message": "ファイルパスワードの確認" } } diff --git a/apps/desktop/src/locales/ka/messages.json b/apps/desktop/src/locales/ka/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/ka/messages.json +++ b/apps/desktop/src/locales/ka/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/km/messages.json b/apps/desktop/src/locales/km/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/km/messages.json +++ b/apps/desktop/src/locales/km/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/kn/messages.json b/apps/desktop/src/locales/kn/messages.json index 14dfd27d429..2fe593d1861 100644 --- a/apps/desktop/src/locales/kn/messages.json +++ b/apps/desktop/src/locales/kn/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "ಸಂಸ್ಥೆಯ ನೀತಿಯು ನಿಮ್ಮ ಮಾಲೀಕತ್ವದ ಆಯ್ಕೆಗಳ ಮೇಲೆ ಪರಿಣಾಮ ಬೀರುತ್ತಿದೆ." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "ಎಲ್ಲಾ ಕಳುಹಿಸುತ್ತದೆ", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ko/messages.json b/apps/desktop/src/locales/ko/messages.json index 31568e9c298..380df0851fe 100644 --- a/apps/desktop/src/locales/ko/messages.json +++ b/apps/desktop/src/locales/ko/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "조직의 정책이 소유권 설정에 영향을 미치고 있습니다." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "모든 Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/lt/messages.json b/apps/desktop/src/locales/lt/messages.json index 3d8adfa1209..eaa85011374 100644 --- a/apps/desktop/src/locales/lt/messages.json +++ b/apps/desktop/src/locales/lt/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Organizacijos politika turi įtakos jūsų nuosavybės galimybėms." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Visi Sendai", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submeniu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domenas" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/lv/messages.json b/apps/desktop/src/locales/lv/messages.json index 4c20c44f867..deb5efe356e 100644 --- a/apps/desktop/src/locales/lv/messages.json +++ b/apps/desktop/src/locales/lv/messages.json @@ -395,7 +395,7 @@ "message": "Ievietot paroli starpliktuvē" }, "copyUri": { - "message": "Ievietot URI starpliktuvē" + "message": "Ievietot vietrādi starpliktuvē" }, "copyVerificationCodeTotp": { "message": "Ievietot apstiprinājuma kodu (TOTP) starpliktuvē" @@ -1597,7 +1597,7 @@ "message": "Iespējot sasaistīšanu ar pārlūku" }, "enableBrowserIntegrationDesc": { - "message": "Pārlūka saistīšana tiek izmantota pārlūka biometrijas nodrošināšanai." + "message": "Tiek izmantota biometrijai pārlūkā." }, "enableDuckDuckGoBrowserIntegration": { "message": "Atļaut sasaistīšanu ar DuckDuckGo pārlūku" @@ -1618,10 +1618,10 @@ "message": "Diemžēl sasaistīšana ar pārlūku Linux laidienā pagaidām nav nodrošināta." }, "enableBrowserIntegrationFingerprint": { - "message": "Pieprasīt apstiprinājumu sasaistīšanai ar pārlūku" + "message": "Pieprasīt apliecinājumu sasaistīšanai ar pārlūku" }, "enableBrowserIntegrationFingerprintDesc": { - "message": "Iespējo papildu drošības slāni, pieprasot atpazīšanas vārdkopas pārbaudi, kad tiek izveidota saikne starp darbvirsmu un pārlūku. Ir nepieciešama lietotāja darbība un apstiprināšana katru reizi, kad tiek izveidots savienojums." + "message": "Iespējo papildu drošības slāni, pieprasot atpazīšanas vārdkopas pārbaudi, kad tiek izveidota saikne starp darbvirsmu un pārlūku. Ir nepieciešama lietotāja darbība un apliecināšana katru reizi, kad tiek izveidots savienojums." }, "approve": { "message": "Apstiprināt" @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Apvienības nosacījumi ietekmē Tavas īpašumtiesību iespējas." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Apvienības nosacījums neļauj ievietot ārējos vienumus savā personīgajā glabātavā." + }, "allSends": { "message": "Visi Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Apakšizvēlne" }, + "typePasskey": { + "message": "Piekļuves atslēga" + }, + "passkeyNotCopied": { + "message": "Piekļuves atslēga netiks ievietota starpliktuvē" + }, + "passkeyNotCopiedAlert": { + "message": "Piekļuves atslēga netiks ievietota klonētajā vienumā. Vai turpināt šī vienuma klonēšanu?" + }, "aliasDomain": { "message": "Aizstājdomēns" + }, + "importData": { + "message": "Ievietot datus", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Ievietošanas kļūda" + }, + "importErrorDesc": { + "message": "Ir nepilnības ievietojamajos datos. Lūgums novērst zemāk uzskaitītās kļūdas avota datnē un mēģināt vēlreiz." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Jāatrisina zemāk norādītās kļūdas un jāmēģina vēlreiz." + }, + "description": { + "message": "Apraksts" + }, + "importSuccess": { + "message": "Dati veiksmīgi ievietoti" + }, + "importSuccessNumberOfItems": { + "message": "Kopumā tika ievietoti $AMOUNT$ vienumi.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Kopā" + }, + "importWarning": { + "message": "Tiek ievietoti dati apvienībā $ORGANIZATION$. Tie var tikt kopīgoti ar citiem apvienības dalībniekiem. Vai turpināt?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dati nav pareizi formatēti. Lūgums pārbaudīt ievietošanas datni un mēģināt vēlreiz." + }, + "importNothingError": { + "message": "Nekas netika ievietots." + }, + "importEncKeyError": { + "message": "Kļūda izguves datnes atšifrēšanā. Izmantotā atslēga neatbilst tai, kas tika izmantota satura izgūšanai." + }, + "importDestination": { + "message": "Ievietošanas galamērķis" + }, + "learnAboutImportOptions": { + "message": "Uzzināt par ievietošanas iespējām" + }, + "selectImportFolder": { + "message": "Atlasīt mapi" + }, + "selectImportCollection": { + "message": "Atlasīt krājumu" + }, + "importTargetHint": { + "message": "Šī iespēja jāatlasa, ja ir vēlēšanās ievietotās datnes saturu pārvietot uz $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Datne satur nepiešķirtus vienumus." + }, + "selectFormat": { + "message": "Atlasīt ievietošanas datnes veidolu" + }, + "selectImportFile": { + "message": "Atlasīt ievietošanas datni" + }, + "chooseFile": { + "message": "Izvēlēties datni" + }, + "noFileChosen": { + "message": "Nav izvēlēta neviena datne" + }, + "orCopyPasteFileContents": { + "message": "vai ievietot starpliktuvē un ielīmēt ievietošanas datnes saturu" + }, + "instructionsFor": { + "message": "Norādījumi $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Apstiprināt glabātavas satura ievietošanu" + }, + "confirmVaultImportDesc": { + "message": "Šī datne ir aizsargāta ar paroli. Lūgums ievadīt datnes paroli, lai ievietotu datus." + }, + "confirmFilePassword": { + "message": "Apstiprināt datnes paroli" } } diff --git a/apps/desktop/src/locales/me/messages.json b/apps/desktop/src/locales/me/messages.json index 6c664efa5b9..fb50f6954bd 100644 --- a/apps/desktop/src/locales/me/messages.json +++ b/apps/desktop/src/locales/me/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ml/messages.json b/apps/desktop/src/locales/ml/messages.json index be26f4c695a..05beed93313 100644 --- a/apps/desktop/src/locales/ml/messages.json +++ b/apps/desktop/src/locales/ml/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "എല്ലാം Send-കൾ", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/mr/messages.json b/apps/desktop/src/locales/mr/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/mr/messages.json +++ b/apps/desktop/src/locales/mr/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/my/messages.json b/apps/desktop/src/locales/my/messages.json index e1d87b2e073..57910f3e501 100644 --- a/apps/desktop/src/locales/my/messages.json +++ b/apps/desktop/src/locales/my/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/nb/messages.json b/apps/desktop/src/locales/nb/messages.json index ded2c66b6d2..71deff8175c 100644 --- a/apps/desktop/src/locales/nb/messages.json +++ b/apps/desktop/src/locales/nb/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "En bedriftsretningslinje påvirker dine eierskapsinnstillinger." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Alle Send-er", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ne/messages.json b/apps/desktop/src/locales/ne/messages.json index b0e7c9b0b37..6aadf4da2d4 100644 --- a/apps/desktop/src/locales/ne/messages.json +++ b/apps/desktop/src/locales/ne/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/nl/messages.json b/apps/desktop/src/locales/nl/messages.json index f2b621cdcdc..d75e18b3142 100644 --- a/apps/desktop/src/locales/nl/messages.json +++ b/apps/desktop/src/locales/nl/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Een organisatiebeleid heeft invloed op je eigendomsopties." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Alle Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey wordt niet gekopieerd" + }, + "passkeyNotCopiedAlert": { + "message": "De passkey wordt niet gekopieerd naar het gekloonde item. Wil je doorgaan met het klonen van dit item?" + }, "aliasDomain": { "message": "Aliasdomein" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/nn/messages.json b/apps/desktop/src/locales/nn/messages.json index ebc40d5f817..ef0ee4346a7 100644 --- a/apps/desktop/src/locales/nn/messages.json +++ b/apps/desktop/src/locales/nn/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Alle Send-ar", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/or/messages.json b/apps/desktop/src/locales/or/messages.json index c69a78977d0..0c91501ab27 100644 --- a/apps/desktop/src/locales/or/messages.json +++ b/apps/desktop/src/locales/or/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/pl/messages.json b/apps/desktop/src/locales/pl/messages.json index 9420bf4d6ed..66084639242 100644 --- a/apps/desktop/src/locales/pl/messages.json +++ b/apps/desktop/src/locales/pl/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Zasada organizacji ma wpływ na opcję własności elementów." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Polityka organizacji zablokowała importowanie elementów do Twojego sejfu." + }, "allSends": { "message": "Wszystkie wysyłki", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Podmenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey nie zostanie skopiowany" + }, + "passkeyNotCopiedAlert": { + "message": "Passkey nie zostanie skopiowane do sklonowanego elementu. Czy chcesz kontynuować klonowanie tego elementu?" + }, "aliasDomain": { "message": "Domena aliasu" + }, + "importData": { + "message": "Importuj dane", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Błąd importu" + }, + "importErrorDesc": { + "message": "Wystąpił problem z danymi, które chcesz zaimportować. Rozwiąż poniższe problemy w Twoim pliku i spróbuj ponownie." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Rozwiąż poniższe błędy i spróbuj ponownie." + }, + "description": { + "message": "Opis" + }, + "importSuccess": { + "message": "Importowanie danych zakończone sukcesem" + }, + "importSuccessNumberOfItems": { + "message": "Zaimportowano elementów: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Łącznie" + }, + "importWarning": { + "message": "Importujesz dane do organizacji $ORGANIZATION$. Dane mogą zostać udostępnione członkom organizacji. Czy chcesz kontynuować?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dane nie są poprawnie sformatowane. Sprawdź importowany plik i spróbuj ponownie." + }, + "importNothingError": { + "message": "Nic nie zostało zaimportowane." + }, + "importEncKeyError": { + "message": "Wystąpił błąd podczas odszyfrowywania pliku. Klucz szyfrowania nie pasuje do klucza użytego podczas eksportowania danych." + }, + "importDestination": { + "message": "Miejsce docelowe importu" + }, + "learnAboutImportOptions": { + "message": "Dowiedz się więcej o opcjach importu" + }, + "selectImportFolder": { + "message": "Wybierz folder" + }, + "selectImportCollection": { + "message": "Wybierz kolekcję" + }, + "importTargetHint": { + "message": "Wybierz tę opcję, jeśli chcesz, aby zawartość zaimportowanego pliku została przeniesiona do $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Plik zawiera nieprzypisane elementy." + }, + "selectFormat": { + "message": "Wybierz format importowanego pliku" + }, + "selectImportFile": { + "message": "Wybierz plik do zaimportowania" + }, + "chooseFile": { + "message": "Wybierz plik" + }, + "noFileChosen": { + "message": "Nie wybrano pliku" + }, + "orCopyPasteFileContents": { + "message": "lub skopiuj/wklej treść pliku" + }, + "instructionsFor": { + "message": "Instrukcja dla $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potwierdź importowanie sejfu" + }, + "confirmVaultImportDesc": { + "message": "Plik jest chroniony hasłem. Wprowadź hasło pliku, aby zaimportować dane." + }, + "confirmFilePassword": { + "message": "Potwierdź hasło pliku" } } diff --git a/apps/desktop/src/locales/pt_BR/messages.json b/apps/desktop/src/locales/pt_BR/messages.json index af072a840ee..a5a127560ad 100644 --- a/apps/desktop/src/locales/pt_BR/messages.json +++ b/apps/desktop/src/locales/pt_BR/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Uma política de organização está afetando suas opções de propriedade." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Todos os Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/pt_PT/messages.json b/apps/desktop/src/locales/pt_PT/messages.json index 189473997be..38d7ba8a8e5 100644 --- a/apps/desktop/src/locales/pt_PT/messages.json +++ b/apps/desktop/src/locales/pt_PT/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Uma política da organização está a afetar as suas opções de propriedade." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Uma política da organização bloqueou a importação de itens para o seu cofre individual." + }, "allSends": { "message": "Todos os Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Chave de acesso" + }, + "passkeyNotCopied": { + "message": "A chave de acesso não será copiada" + }, + "passkeyNotCopiedAlert": { + "message": "A chave de acesso não será copiada para o item duplicado. Pretende ainda assim duplicar este item?" + }, "aliasDomain": { "message": "Alias de domínio" + }, + "importData": { + "message": "Importar dados", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Erro de importação" + }, + "importErrorDesc": { + "message": "Ocorreu um problema com os dados que tentou importar. Por favor, resolva os erros indicados abaixo no seu ficheiro de origem e tente novamente." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolva os erros abaixo e tente novamente." + }, + "description": { + "message": "Descrição" + }, + "importSuccess": { + "message": "Dados importados com sucesso" + }, + "importSuccessNumberOfItems": { + "message": "Foi importado um total de $AMOUNT$ itens.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "Está a importar dados para a $ORGANIZATION$. Os seus dados podem ser partilhados com membros desta organização. Deseja prosseguir?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Os dados não estão formatados corretamente. Por favor, verifique o seu ficheiro de importação e tente novamente." + }, + "importNothingError": { + "message": "Nada foi importado." + }, + "importEncKeyError": { + "message": "Erro ao desencriptar o ficheiro exportado. A sua chave de encriptação não corresponde à chave de encriptação utilizada para exportar os dados." + }, + "importDestination": { + "message": "Destino da importação" + }, + "learnAboutImportOptions": { + "message": "Saiba mais sobre as suas opções de importação" + }, + "selectImportFolder": { + "message": "Selecionar uma pasta" + }, + "selectImportCollection": { + "message": "Selecionar uma coleção" + }, + "importTargetHint": { + "message": "Selecione esta opção se pretender que o conteúdo do ficheiro importado seja transferido para $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "O ficheiro contém itens não atribuídos." + }, + "selectFormat": { + "message": "Selecione o formato do ficheiro a importar" + }, + "selectImportFile": { + "message": "Selecione o ficheiro a importar" + }, + "chooseFile": { + "message": "Escolher ficheiro" + }, + "noFileChosen": { + "message": "Nenhum ficheiro escolhido" + }, + "orCopyPasteFileContents": { + "message": "ou faça copiar/colar o conteúdo do ficheiro de importação" + }, + "instructionsFor": { + "message": "Instruções para $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirmar a importação do cofre" + }, + "confirmVaultImportDesc": { + "message": "Este ficheiro está protegido por palavra-passe. Introduza a palavra-passe do ficheiro para importar os dados." + }, + "confirmFilePassword": { + "message": "Confirmar a palavra-passe do ficheiro" } } diff --git a/apps/desktop/src/locales/ro/messages.json b/apps/desktop/src/locales/ro/messages.json index c3db9b1ba5e..91f398eef31 100644 --- a/apps/desktop/src/locales/ro/messages.json +++ b/apps/desktop/src/locales/ro/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "O politică de organizație vă afectează opțiunile de proprietate." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Toate Send-urile", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/ru/messages.json b/apps/desktop/src/locales/ru/messages.json index 68ba897acdf..1b659961feb 100644 --- a/apps/desktop/src/locales/ru/messages.json +++ b/apps/desktop/src/locales/ru/messages.json @@ -1344,7 +1344,7 @@ "message": "Ключи шифрования уникальны для каждой учетной записи Bitwarden, поэтому нельзя импортировать зашифрованное хранилище в другой аккаунт." }, "noOrganizationsList": { - "message": "Вы не являетесь членом какой-либо организации. Организации позволяют безопасно обмениваться элементами с другими пользователями." + "message": "Вы не являетесь участником какой-либо организации. Организации позволяют безопасно обмениваться элементами с другими пользователями." }, "noCollectionsInList": { "message": "Нет коллекций для отображения." @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Политика организации влияет на ваши варианты владения." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Импорт элементов в ваше личное хранилище отключен политикой организации." + }, "allSends": { "message": "Все Send’ы", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -1928,7 +1931,7 @@ "message": "Мастер-пароль удален." }, "convertOrganizationEncryptionDesc": { - "message": "$ORGANIZATION$ использует SSO с собственным сервером ключей. Для авторизации членам этой организации больше не требуется мастер-пароль.", + "message": "$ORGANIZATION$ использует SSO с собственным сервером ключей. Для авторизации пользователям этой организации больше не требуется мастер-пароль.", "placeholders": { "organization": { "content": "$1", @@ -2416,7 +2419,124 @@ "submenu": { "message": "Подменю" }, + "typePasskey": { + "message": "Ключ доступа" + }, + "passkeyNotCopied": { + "message": "Ключ доступа не будет скопирован" + }, + "passkeyNotCopiedAlert": { + "message": "Ключ доступа не будет скопирован в клонированный элемент. Продолжить клонирование этого элемента?" + }, "aliasDomain": { "message": "Псевдоним домена" + }, + "importData": { + "message": "Импорт данных", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Ошибка импорта" + }, + "importErrorDesc": { + "message": "Возникла проблема с данными, которые вы пытались импортировать. Исправьте в исходном файле перечисленные ниже ошибки и попробуйте еще раз." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Устраните указанные ниже ошибки и повторите попытку." + }, + "description": { + "message": "Описание" + }, + "importSuccess": { + "message": "Данные успешно импортированы" + }, + "importSuccessNumberOfItems": { + "message": "Всего импортировано элементов: $AMOUNT$.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Всего" + }, + "importWarning": { + "message": "Вы импортируете данные в $ORGANIZATION$. Пользователи этой организации могут получить к ним доступ. Продолжить?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Формат данных некорректен. Проверьте импортируемый файл и повторите попытку." + }, + "importNothingError": { + "message": "Ничего не было импортировано." + }, + "importEncKeyError": { + "message": "Ошибка при расшифровке экспортированного файла. Ваш ключ шифрования не совпадает с ключом шифрования, использованным при экспорте данных." + }, + "importDestination": { + "message": "Цель импорта" + }, + "learnAboutImportOptions": { + "message": "Узнайте о возможностях импорта" + }, + "selectImportFolder": { + "message": "Выберите папку" + }, + "selectImportCollection": { + "message": "Выберите коллекцию" + }, + "importTargetHint": { + "message": "Выберите эту опцию, если хотите, чтобы содержимое импортированного файла было перемещено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файл содержит неназначенные элементы." + }, + "selectFormat": { + "message": "Выберите формат импортируемого файла" + }, + "selectImportFile": { + "message": "Выберите импортируемый файл" + }, + "chooseFile": { + "message": "Выбрать файл" + }, + "noFileChosen": { + "message": "Файл не выбран" + }, + "orCopyPasteFileContents": { + "message": "или скопируйте и вставьте содержимое импортируемого файла" + }, + "instructionsFor": { + "message": "Инструкции для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Подтвердите импорт хранилища" + }, + "confirmVaultImportDesc": { + "message": "Этот файл защищен паролем. Введите пароль для импорта данных." + }, + "confirmFilePassword": { + "message": "Подтвердите пароль к файлу" } } diff --git a/apps/desktop/src/locales/si/messages.json b/apps/desktop/src/locales/si/messages.json index 639203a1c4b..093117e14e1 100644 --- a/apps/desktop/src/locales/si/messages.json +++ b/apps/desktop/src/locales/si/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/sk/messages.json b/apps/desktop/src/locales/sk/messages.json index cbe56af8c14..eab75b022fe 100644 --- a/apps/desktop/src/locales/sk/messages.json +++ b/apps/desktop/src/locales/sk/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Politika organizácie ovplyvňuje vaše možnosti vlastníctva." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Zásady organizácie zablokovali importovanie položiek do vášho osobného trezoru." + }, "allSends": { "message": "Všetky Sendy", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Podponuka" }, + "typePasskey": { + "message": "Prístupový kľúč" + }, + "passkeyNotCopied": { + "message": "Prístupový kód sa neskopíruje" + }, + "passkeyNotCopiedAlert": { + "message": "Prístupový kľúč sa do klonovanej položky neskopíruje. Chcete pokračovať v klonovaní tejto položky?" + }, "aliasDomain": { "message": "Alias doména" + }, + "importData": { + "message": "Import údajov", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Chyba importu" + }, + "importErrorDesc": { + "message": "Vyskytol sa problém s údajmi, ktoré ste sa pokúsili importovať. Vyriešte chyby uvedené nižšie v zdrojovom súbore a skúste to znova." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Vyriešte problémy nižšie a skúste to znova." + }, + "description": { + "message": "Popis" + }, + "importSuccess": { + "message": "Importovanie prebehlo úspešne" + }, + "importSuccessNumberOfItems": { + "message": "Dokopy bolo importovaných $AMOUNT$ položiek.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Celkom" + }, + "importWarning": { + "message": "Importujete údaje do $ORGANIZATION$. Vaše údaje môžu byť zdieľané s členmi tejto organizácie. Chcete pokračovať?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Dáta nie sú správne formátované. Prosím, overte importovaný súbor a skúste to znova." + }, + "importNothingError": { + "message": "Nič sa neimportovalo." + }, + "importEncKeyError": { + "message": "Chyba pri dešifrovaní exportovaného súboru. Váš šifrovací kľúč sa nezhoduje so šifrovacím kľúčom použitým pri exporte údajov." + }, + "importDestination": { + "message": "Cieľ importu" + }, + "learnAboutImportOptions": { + "message": "Zistiť viac o možnostiach importu" + }, + "selectImportFolder": { + "message": "Vyberte priečinok" + }, + "selectImportCollection": { + "message": "Vyberte zbierku" + }, + "importTargetHint": { + "message": "Zvoľte túto možnosť, ak chcete obsah importovaného súboru presunúť do $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Súbor obsahuje nepriradené položky." + }, + "selectFormat": { + "message": "Vyberte formát súboru importu" + }, + "selectImportFile": { + "message": "Vybrať súbor na import" + }, + "chooseFile": { + "message": "Vybrať súbor" + }, + "noFileChosen": { + "message": "Nebol vybratý žiadny súbor" + }, + "orCopyPasteFileContents": { + "message": "alebo kopírujte/vložte obsah súboru" + }, + "instructionsFor": { + "message": "$NAME$ pokyny", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Potvrdiť import trezoru" + }, + "confirmVaultImportDesc": { + "message": "Tento súbor je chránený heslom. Ak chcete importovať údaje, zadajte heslo súboru." + }, + "confirmFilePassword": { + "message": "Potvrdiť heslo súboru" } } diff --git a/apps/desktop/src/locales/sl/messages.json b/apps/desktop/src/locales/sl/messages.json index 342cd4f8e30..3564b5ebb7d 100644 --- a/apps/desktop/src/locales/sl/messages.json +++ b/apps/desktop/src/locales/sl/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Vsi Sendsi", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/sr/messages.json b/apps/desktop/src/locales/sr/messages.json index 392dbe4a141..6f7b0387b58 100644 --- a/apps/desktop/src/locales/sr/messages.json +++ b/apps/desktop/src/locales/sr/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Политика организације утиче на ваше могућности власништва." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Сва слања", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Под-мени" }, + "typePasskey": { + "message": "Приступачни кључ" + }, + "passkeyNotCopied": { + "message": "Приступачни кључ се неће копирати" + }, + "passkeyNotCopiedAlert": { + "message": "Приступачни кључ неће бити копиран на клонирану ставку. Да ли желите да наставите са клонирањем ставке?" + }, "aliasDomain": { "message": "Домен алијаса" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/sv/messages.json b/apps/desktop/src/locales/sv/messages.json index b515087ed32..9044f015733 100644 --- a/apps/desktop/src/locales/sv/messages.json +++ b/apps/desktop/src/locales/sv/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "En organisationspolicy påverkar dina ägarskapsalternativ." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Alla Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Undermeny" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Aliasdomän" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/te/messages.json b/apps/desktop/src/locales/te/messages.json index d3a13313e9e..fe36e68ee01 100644 --- a/apps/desktop/src/locales/te/messages.json +++ b/apps/desktop/src/locales/te/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "All Sends", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/th/messages.json b/apps/desktop/src/locales/th/messages.json index 4463b158d74..bb69a71d289 100644 --- a/apps/desktop/src/locales/th/messages.json +++ b/apps/desktop/src/locales/th/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "ส่งทั้งหมด", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/tr/messages.json b/apps/desktop/src/locales/tr/messages.json index 66a6a5a8bc7..5fe8dd94a9f 100644 --- a/apps/desktop/src/locales/tr/messages.json +++ b/apps/desktop/src/locales/tr/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Bir kuruluş ilkesi sahiplik seçeneklerinizi etkiliyor." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Bir kuruluş ilkesi, kayıtları kişisel kasanıza içe aktarmayı engelledi." + }, "allSends": { "message": "Tüm Send'ler", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Alt menü" }, + "typePasskey": { + "message": "Geçiş anahtarı" + }, + "passkeyNotCopied": { + "message": "Şifre anahtarı kopyalanmayacak" + }, + "passkeyNotCopiedAlert": { + "message": "Geçiş anahtarı klonlanan öğeye kopyalanmayacaktır. Bu öğeyi klonlamaya devam etmek istiyor musunuz?" + }, "aliasDomain": { "message": "Alias alan adı" + }, + "importData": { + "message": "Verileri içe aktar", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "İçe aktarma hatası" + }, + "importErrorDesc": { + "message": "İçe aktarmaya çalıştığınız verilerle ilgili bir problem var. Lütfen kaynak dosyanızdaki aşağıda belirtilen hataları çözüp tekrar deneyin." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Aşağıdaki hataları düzeltip yeniden deneyin." + }, + "description": { + "message": "Açıklama" + }, + "importSuccess": { + "message": "Veriler başarıyla içe aktarıldı" + }, + "importSuccessNumberOfItems": { + "message": "Toplam $AMOUNT$ kayıt içe aktarıldı.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Toplam" + }, + "importWarning": { + "message": "$ORGANIZATION$ kuruluşuna veri aktarıyorsunuz. Verileriniz bu kuruluşun üyeleriyle paylaşılabilir. Devam etmek istiyor musunuz?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/uk/messages.json b/apps/desktop/src/locales/uk/messages.json index a3489dce44e..1e26116ae1e 100644 --- a/apps/desktop/src/locales/uk/messages.json +++ b/apps/desktop/src/locales/uk/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "Політика організації впливає на ваші параметри власності." }, + "personalOwnershipPolicyInEffectImports": { + "message": "Політика організації заблокувала імпортування елементів до вашого особистого сховища." + }, "allSends": { "message": "Усі відправлення", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Підменю" }, + "typePasskey": { + "message": "Ключ доступу" + }, + "passkeyNotCopied": { + "message": "Ключ доступу не буде скопійовано" + }, + "passkeyNotCopiedAlert": { + "message": "Ключ доступу не буде скопійовано до клонованого запису. Хочете продовжити клонування цього запису?" + }, "aliasDomain": { "message": "Псевдонім домену" + }, + "importData": { + "message": "Імпортувати дані", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Помилка імпорту" + }, + "importErrorDesc": { + "message": "Під час спроби імпортування ваших даних виникла проблема. Будь ласка, виправте вказані нижче помилки у вихідному файлі та спробуйте знову." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Розв'яжіть зазначені помилки та повторіть спробу." + }, + "description": { + "message": "Опис" + }, + "importSuccess": { + "message": "Дані успішно імпортовано" + }, + "importSuccessNumberOfItems": { + "message": "Всього імпортовано $AMOUNT$ елементів.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Всього" + }, + "importWarning": { + "message": "Ви імпортуєте дані до $ORGANIZATION$. Ваші дані можуть бути доступні учасникам цієї організації. Хочете продовжити?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Дані мають некоректне форматування. Перевірте файл імпорту і спробуйте знову." + }, + "importNothingError": { + "message": "Нічого не імпортовано." + }, + "importEncKeyError": { + "message": "Помилка розшифрування експортованого файлу. Ваш ключ шифрування відрізняється від ключа, використаного для експортування даних." + }, + "importDestination": { + "message": "Призначення імпорту" + }, + "learnAboutImportOptions": { + "message": "Дізнайтеся про параметри імпорту" + }, + "selectImportFolder": { + "message": "Вибрати теку" + }, + "selectImportCollection": { + "message": "Вибрати збірку" + }, + "importTargetHint": { + "message": "Оберіть цю опцію, якщо ви хочете, щоб вміст імпортованого файлу було збережено в $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "Файл містить непризначені елементи." + }, + "selectFormat": { + "message": "Оберіть формат імпортованого файлу" + }, + "selectImportFile": { + "message": "Оберіть файл для імпорту" + }, + "chooseFile": { + "message": "Вибрати файл" + }, + "noFileChosen": { + "message": "Файл не вибрано" + }, + "orCopyPasteFileContents": { + "message": "або скопіюйте і вставте вміст файлу для імпорту" + }, + "instructionsFor": { + "message": "Інструкції для $NAME$", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Підтвердити імпорт сховища" + }, + "confirmVaultImportDesc": { + "message": "Цей файл захищений паролем. Будь ласка, введіть пароль для імпортування даних." + }, + "confirmFilePassword": { + "message": "Підтвердьте пароль файлу" } } diff --git a/apps/desktop/src/locales/vi/messages.json b/apps/desktop/src/locales/vi/messages.json index 5bbfddd5676..a989015be61 100644 --- a/apps/desktop/src/locales/vi/messages.json +++ b/apps/desktop/src/locales/vi/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "An organization policy is affecting your ownership options." }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "Toàn bộ Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "Submenu" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "Import data", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "Import error" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "Total" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "Import destination" + }, + "learnAboutImportOptions": { + "message": "Learn about your import options" + }, + "selectImportFolder": { + "message": "Select a folder" + }, + "selectImportCollection": { + "message": "Select a collection" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "Choose File" + }, + "noFileChosen": { + "message": "No file chosen" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/locales/zh_CN/messages.json b/apps/desktop/src/locales/zh_CN/messages.json index f656607fe60..9ce73af1dbc 100644 --- a/apps/desktop/src/locales/zh_CN/messages.json +++ b/apps/desktop/src/locales/zh_CN/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "一个组织策略正影响您的所有权选项。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "组织策略已阻止将项目导入您的个人密码库。" + }, "allSends": { "message": "所有的 Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "子菜单" }, + "typePasskey": { + "message": "通行密钥" + }, + "passkeyNotCopied": { + "message": "通行密钥不会被复制" + }, + "passkeyNotCopiedAlert": { + "message": "通行密钥将不会被复制到克隆的项目。要继续克隆这个项目吗?" + }, "aliasDomain": { "message": "别名域" + }, + "importData": { + "message": "导入数据", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "导入出错" + }, + "importErrorDesc": { + "message": "您尝试导入的数据有问题。请解决如下列出的源文件中的错误,然后重试。" + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "解决下面的错误,然后重试。" + }, + "description": { + "message": "描述" + }, + "importSuccess": { + "message": "数据导入成功" + }, + "importSuccessNumberOfItems": { + "message": "一共导入了 $AMOUNT$ 个项目。", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "总计" + }, + "importWarning": { + "message": "您正在将数据导入到 $ORGANIZATION$。您的数据可能会与此组织中的成员共享。要继续吗?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "数据格式不正确。请检查您的导入文件然后重试。" + }, + "importNothingError": { + "message": "没有导入任何内容。" + }, + "importEncKeyError": { + "message": "解密导出的文件时出错。您的加密密钥与导出数据时使用的加密密钥不匹配。" + }, + "importDestination": { + "message": "导入目的地" + }, + "learnAboutImportOptions": { + "message": "了解您的导入选项" + }, + "selectImportFolder": { + "message": "选择一个文件夹" + }, + "selectImportCollection": { + "message": "选择一个集合" + }, + "importTargetHint": { + "message": "如果您希望将导入的文件内容移动到 $DESTINATION$,请选择此选项", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "文件包含未分配项目。" + }, + "selectFormat": { + "message": "选择导入文件的格式" + }, + "selectImportFile": { + "message": "选择要导入的文件" + }, + "chooseFile": { + "message": "选择文件" + }, + "noFileChosen": { + "message": "未选择文件" + }, + "orCopyPasteFileContents": { + "message": "或复制/粘贴要导入的文件内容" + }, + "instructionsFor": { + "message": "$NAME$ 说明", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "确认密码库导入" + }, + "confirmVaultImportDesc": { + "message": "此文件受密码保护。请输入文件密码以导入数据。" + }, + "confirmFilePassword": { + "message": "确认文件密码" } } diff --git a/apps/desktop/src/locales/zh_TW/messages.json b/apps/desktop/src/locales/zh_TW/messages.json index 3e8cf00867b..d4e3d858dc3 100644 --- a/apps/desktop/src/locales/zh_TW/messages.json +++ b/apps/desktop/src/locales/zh_TW/messages.json @@ -1662,6 +1662,9 @@ "personalOwnershipPolicyInEffect": { "message": "組織原則正在影響您的擁有權選項。" }, + "personalOwnershipPolicyInEffectImports": { + "message": "An organization policy has blocked importing items into your individual vault." + }, "allSends": { "message": "所有 Send", "description": "'Sends' is a noun and the name of a feature called 'Bitwarden Send'. It should not be translated." @@ -2416,7 +2419,124 @@ "submenu": { "message": "子選單" }, + "typePasskey": { + "message": "Passkey" + }, + "passkeyNotCopied": { + "message": "Passkey will not be copied" + }, + "passkeyNotCopiedAlert": { + "message": "The passkey will not be copied to the cloned item. Do you want to continue cloning this item?" + }, "aliasDomain": { "message": "Alias domain" + }, + "importData": { + "message": "匯入資料", + "description": "Used for the desktop menu item and the header of the import dialog" + }, + "importError": { + "message": "匯入時發生錯誤" + }, + "importErrorDesc": { + "message": "There was a problem with the data you tried to import. Please resolve the errors listed below in your source file and try again." + }, + "resolveTheErrorsBelowAndTryAgain": { + "message": "Resolve the errors below and try again." + }, + "description": { + "message": "Description" + }, + "importSuccess": { + "message": "Data successfully imported" + }, + "importSuccessNumberOfItems": { + "message": "A total of $AMOUNT$ items were imported.", + "placeholders": { + "amount": { + "content": "$1", + "example": "2" + } + } + }, + "total": { + "message": "總計" + }, + "importWarning": { + "message": "You are importing data to $ORGANIZATION$. Your data may be shared with members of this organization. Do you want to proceed?", + "placeholders": { + "organization": { + "content": "$1", + "example": "My Org Name" + } + } + }, + "importFormatError": { + "message": "Data is not formatted correctly. Please check your import file and try again." + }, + "importNothingError": { + "message": "Nothing was imported." + }, + "importEncKeyError": { + "message": "Error decrypting the exported file. Your encryption key does not match the encryption key used export the data." + }, + "importDestination": { + "message": "匯入目的地" + }, + "learnAboutImportOptions": { + "message": "瞭解更多匯入選項" + }, + "selectImportFolder": { + "message": "選擇一個資料夾" + }, + "selectImportCollection": { + "message": "選擇一個集合" + }, + "importTargetHint": { + "message": "Select this option if you want the imported file contents moved to a $DESTINATION$", + "description": "Located as a hint under the import target. Will be appended by either folder or collection, depending if the user is importing into an individual or an organizational vault.", + "placeholders": { + "destination": { + "content": "$1", + "example": "folder or collection" + } + } + }, + "importUnassignedItemsError": { + "message": "File contains unassigned items." + }, + "selectFormat": { + "message": "Select the format of the import file" + }, + "selectImportFile": { + "message": "Select the import file" + }, + "chooseFile": { + "message": "選擇檔案" + }, + "noFileChosen": { + "message": "未選擇任何檔案" + }, + "orCopyPasteFileContents": { + "message": "or copy/paste the import file contents" + }, + "instructionsFor": { + "message": "$NAME$ Instructions", + "description": "The title for the import tool instructions.", + "placeholders": { + "name": { + "content": "$1", + "example": "LastPass (csv)" + } + } + }, + "confirmVaultImport": { + "message": "Confirm vault import" + }, + "confirmVaultImportDesc": { + "message": "This file is password-protected. Please enter the file password to import data." + }, + "confirmFilePassword": { + "message": "Confirm file password" } } diff --git a/apps/desktop/src/main.ts b/apps/desktop/src/main.ts index 1eb229281c8..f74d6e5fa9c 100644 --- a/apps/desktop/src/main.ts +++ b/apps/desktop/src/main.ts @@ -2,6 +2,7 @@ import * as path from "path"; import { app } from "electron"; +import { AccountServiceImplementation } from "@bitwarden/common/auth/services/account.service"; import { StateFactory } from "@bitwarden/common/platform/factories/state-factory"; import { GlobalState } from "@bitwarden/common/platform/models/domain/global-state"; import { MemoryStorageService } from "@bitwarden/common/platform/services/memory-storage.service"; @@ -20,12 +21,12 @@ import { DesktopCredentialStorageListener } from "./platform/main/desktop-creden import { ElectronLogService } from "./platform/services/electron-log.service"; import { ElectronStateService } from "./platform/services/electron-state.service"; import { ElectronStorageService } from "./platform/services/electron-storage.service"; -import { I18nService } from "./platform/services/i18n.service"; +import { I18nMainService } from "./platform/services/i18n.main.service"; import { ElectronMainMessagingService } from "./services/electron-main-messaging.service"; export class Main { logService: ElectronLogService; - i18nService: I18nService; + i18nService: I18nMainService; storageService: ElectronStorageService; memoryStorageService: MemoryStorageService; messagingService: ElectronMainMessagingService; @@ -75,7 +76,7 @@ export class Main { } this.logService = new ElectronLogService(null, app.getPath("userData")); - this.i18nService = new I18nService("en", "./locales/"); + this.i18nService = new I18nMainService("en", "./locales/"); const storageDefaults: any = {}; // Default vault timeout to "on restart", and action to "lock" @@ -93,6 +94,7 @@ export class Main { this.memoryStorageService, this.logService, new StateFactory(GlobalState, Account), + new AccountServiceImplementation(null, this.logService), // will not broadcast logouts. This is a hack until we can remove messaging dependency false // Do not use disk caching because this will get out of sync with the renderer service ); @@ -216,9 +218,16 @@ export class Main { const url = new URL(s); const code = url.searchParams.get("code"); const receivedState = url.searchParams.get("state"); - if (code != null && receivedState != null) { - this.messagingService.send("ssoCallback", { code: code, state: receivedState }); + + if (code == null || receivedState == null) { + return; } + + const message = + s.indexOf("bitwarden://import-callback-lp") === 0 + ? "importCallbackLastPass" + : "ssoCallback"; + this.messagingService.send(message, { code: code, state: receivedState }); }); } } diff --git a/apps/desktop/src/main/menu/menu.file.ts b/apps/desktop/src/main/menu/menu.file.ts index 173b6066aba..0782039d7c2 100644 --- a/apps/desktop/src/main/menu/menu.file.ts +++ b/apps/desktop/src/main/menu/menu.file.ts @@ -24,6 +24,7 @@ export class FileMenu extends FirstMenu implements IMenubarMenu { this.addNewFolder, this.separator, this.syncVault, + this.importVault, this.exportVault, ]; @@ -123,6 +124,15 @@ export class FileMenu extends FirstMenu implements IMenubarMenu { }; } + private get importVault(): MenuItemConstructorOptions { + return { + id: "importVault", + label: this.localize("importData"), + click: () => this.sendMessage("importVault"), + enabled: !this._isLocked, + }; + } + private get exportVault(): MenuItemConstructorOptions { return { id: "exportVault", diff --git a/apps/desktop/src/main/window.main.ts b/apps/desktop/src/main/window.main.ts index 4ea28c74c5f..cf792a9348a 100644 --- a/apps/desktop/src/main/window.main.ts +++ b/apps/desktop/src/main/window.main.ts @@ -9,7 +9,15 @@ import { LogService } from "@bitwarden/common/platform/abstractions/log.service" import { StateService } from "@bitwarden/common/platform/abstractions/state.service"; import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service"; -import { cleanUserAgent, isDev, isMacAppStore, isSnapStore } from "../utils"; +import { + cleanUserAgent, + isDev, + isLinux, + isMac, + isMacAppStore, + isSnapStore, + isWindows, +} from "../utils"; const mainWindowSizeKey = "mainWindowSize"; const WindowEventHandlingDelay = 100; @@ -41,9 +49,12 @@ export class WindowMain { // User might have changed theme, ensure the window is updated. this.win.setBackgroundColor(await this.getBackgroundColor()); - const crashEvent = once(this.win.webContents, "render-process-gone"); - this.win.webContents.forcefullyCrashRenderer(); - await crashEvent; + // By default some linux distro collect core dumps on crashes which gets written to disk. + if (!isLinux()) { + const crashEvent = once(this.win.webContents, "render-process-gone"); + this.win.webContents.forcefullyCrashRenderer(); + await crashEvent; + } this.win.webContents.reloadIgnoringCache(); this.session.clearCache(); @@ -66,7 +77,7 @@ export class WindowMain { } this.win.focus(); } - if (process.platform === "win32" || process.platform === "linux") { + if (isWindows() || isLinux()) { if (this.argvCallback != null) { this.argvCallback(argv); } @@ -96,7 +107,7 @@ export class WindowMain { app.on("window-all-closed", () => { // On OS X it is common for applications and their menu bar // to stay active until the user quits explicitly with Cmd + Q - if (process.platform !== "darwin" || this.isQuitting || isMacAppStore()) { + if (!isMac() || this.isQuitting || isMacAppStore()) { app.quit(); } }); @@ -137,12 +148,13 @@ export class WindowMain { x: this.windowStates[mainWindowSizeKey].x, y: this.windowStates[mainWindowSizeKey].y, title: app.name, - icon: process.platform === "linux" ? path.join(__dirname, "/images/icon.png") : undefined, - titleBarStyle: process.platform === "darwin" ? "hiddenInset" : undefined, + icon: isLinux() ? path.join(__dirname, "/images/icon.png") : undefined, + titleBarStyle: isMac() ? "hiddenInset" : undefined, show: false, backgroundColor: await this.getBackgroundColor(), alwaysOnTop: this.enableAlwaysOnTop, webPreferences: { + // preload: path.join(__dirname, "preload.js"), spellcheck: false, nodeIntegration: true, backgroundThrottling: false, diff --git a/apps/desktop/src/package-lock.json b/apps/desktop/src/package-lock.json index 6112806d32a..62d31f3b9ca 100644 --- a/apps/desktop/src/package-lock.json +++ b/apps/desktop/src/package-lock.json @@ -1,12 +1,12 @@ { "name": "@bitwarden/desktop", - "version": "2023.9.2", + "version": "2023.10.0", "lockfileVersion": 3, "requires": true, "packages": { "": { "name": "@bitwarden/desktop", - "version": "2023.9.2", + "version": "2023.10.0", "license": "GPL-3.0", "dependencies": { "@bitwarden/desktop-native": "file:../desktop_native" diff --git a/apps/desktop/src/package.json b/apps/desktop/src/package.json index 3f4163c160a..896a9587cf1 100644 --- a/apps/desktop/src/package.json +++ b/apps/desktop/src/package.json @@ -2,7 +2,7 @@ "name": "@bitwarden/desktop", "productName": "Bitwarden", "description": "A secure and free password manager for all of your devices.", - "version": "2023.9.2", + "version": "2023.10.0", "author": "Bitwarden Inc. (https://bitwarden.com)", "homepage": "https://bitwarden.com", "license": "GPL-3.0", diff --git a/apps/desktop/src/platform/preload.ts b/apps/desktop/src/platform/preload.ts new file mode 100644 index 00000000000..5430d3fb35a --- /dev/null +++ b/apps/desktop/src/platform/preload.ts @@ -0,0 +1,68 @@ +import { ipcRenderer } from "electron"; + +import { DeviceType, ThemeType } from "@bitwarden/common/enums"; + +import { isDev, isWindowsStore } from "../utils"; + +const storage = { + get: (key: string): Promise => ipcRenderer.invoke("storageService", { action: "get", key }), + has: (key: string): Promise => + ipcRenderer.invoke("storageService", { action: "has", key }), + save: (key: string, obj: any): Promise => + ipcRenderer.invoke("storageService", { action: "save", key, obj }), + remove: (key: string): Promise => + ipcRenderer.invoke("storageService", { action: "remove", key }), +}; + +const passwords = { + get: (key: string, keySuffix: string): Promise => + ipcRenderer.invoke("keytar", { action: "getPassword", key, keySuffix }), + has: (key: string, keySuffix: string): Promise => + ipcRenderer.invoke("keytar", { action: "hasPassword", key, keySuffix }), + set: (key: string, keySuffix: string, value: string): Promise => + ipcRenderer.invoke("keytar", { action: "setPassword", key, keySuffix, value }), + delete: (key: string, keySuffix: string): Promise => + ipcRenderer.invoke("keytar", { action: "deletePassword", key, keySuffix }), +}; + +export default { + versions: { + app: (): Promise => ipcRenderer.invoke("appVersion"), + }, + deviceType: deviceType(), + isDev: isDev(), + isWindowsStore: isWindowsStore(), + reloadProcess: () => ipcRenderer.send("reload-process"), + + getSystemTheme: (): Promise => ipcRenderer.invoke("systemTheme"), + onSystemThemeUpdated: (callback: (theme: ThemeType) => void) => { + ipcRenderer.on("systemThemeUpdated", (_event, theme: ThemeType) => callback(theme)); + }, + + getLanguageFile: (formattedLocale: string): Promise => + ipcRenderer.invoke("getLanguageFile", formattedLocale), + + sendMessage: (message: { command: string } & any) => + ipcRenderer.send("messagingService", message), + onMessage: (callback: (message: { command: string } & any) => void) => { + ipcRenderer.on("messagingService", (_event, message: any) => { + if (message.command) { + callback(message); + } + }); + }, + + storage, + passwords, +}; + +function deviceType(): DeviceType { + switch (process.platform) { + case "win32": + return DeviceType.WindowsDesktop; + case "darwin": + return DeviceType.MacOsDesktop; + default: + return DeviceType.LinuxDesktop; + } +} diff --git a/apps/desktop/src/platform/services/electron-platform-utils.service.ts b/apps/desktop/src/platform/services/electron-platform-utils.service.ts index dbc35de9311..6c99507b12b 100644 --- a/apps/desktop/src/platform/services/electron-platform-utils.service.ts +++ b/apps/desktop/src/platform/services/electron-platform-utils.service.ts @@ -9,31 +9,14 @@ import { } from "@bitwarden/common/platform/abstractions/platform-utils.service"; import { BiometricMessage, BiometricStorageAction } from "../../types/biometric-message"; -import { isDev, isMacAppStore } from "../../utils"; +import { isMacAppStore } from "../../utils"; import { ClipboardWriteMessage } from "../types/clipboard"; export class ElectronPlatformUtilsService implements PlatformUtilsService { - private deviceCache: DeviceType = null; - constructor(protected i18nService: I18nService, private messagingService: MessagingService) {} getDevice(): DeviceType { - if (!this.deviceCache) { - switch (process.platform) { - case "win32": - this.deviceCache = DeviceType.WindowsDesktop; - break; - case "darwin": - this.deviceCache = DeviceType.MacOsDesktop; - break; - case "linux": - default: - this.deviceCache = DeviceType.LinuxDesktop; - break; - } - } - - return this.deviceCache; + return ipc.platform.deviceType; } getDeviceString(): string { @@ -82,7 +65,7 @@ export class ElectronPlatformUtilsService implements PlatformUtilsService { } getApplicationVersion(): Promise { - return ipcRenderer.invoke("appVersion"); + return ipc.platform.versions.app(); } async getApplicationVersionNumber(): Promise { @@ -92,7 +75,7 @@ export class ElectronPlatformUtilsService implements PlatformUtilsService { // Temporarily restricted to only Windows until https://github.com/electron/electron/pull/28349 // has been merged and an updated electron build is available. supportsWebAuthn(win: Window): boolean { - return process.platform === "win32"; + return this.getDevice() === DeviceType.WindowsDesktop; } supportsDuo(): boolean { @@ -114,7 +97,7 @@ export class ElectronPlatformUtilsService implements PlatformUtilsService { } isDev(): boolean { - return isDev(); + return ipc.platform.isDev; } isSelfHost(): boolean { diff --git a/apps/desktop/src/platform/services/electron-renderer-messaging.service.ts b/apps/desktop/src/platform/services/electron-renderer-messaging.service.ts index 25414812c42..192efc1dc6f 100644 --- a/apps/desktop/src/platform/services/electron-renderer-messaging.service.ts +++ b/apps/desktop/src/platform/services/electron-renderer-messaging.service.ts @@ -1,15 +1,9 @@ -import { ipcRenderer } from "electron"; - import { BroadcasterService } from "@bitwarden/common/platform/abstractions/broadcaster.service"; import { MessagingService } from "@bitwarden/common/platform/abstractions/messaging.service"; export class ElectronRendererMessagingService implements MessagingService { constructor(private broadcasterService: BroadcasterService) { - ipcRenderer.on("messagingService", async (event: any, message: any) => { - if (message.command) { - this.sendMessage(message.command, message, false); - } - }); + ipc.platform.onMessage((message) => this.sendMessage(message.command, message, false)); } send(subscriber: string, arg: any = {}) { @@ -20,7 +14,7 @@ export class ElectronRendererMessagingService implements MessagingService { const message = Object.assign({}, { command: subscriber }, arg); this.broadcasterService.send(message); if (toMain) { - ipcRenderer.send("messagingService", message); + ipc.platform.sendMessage(message); } } } diff --git a/apps/desktop/src/platform/services/electron-renderer-secure-storage.service.ts b/apps/desktop/src/platform/services/electron-renderer-secure-storage.service.ts index ce3923af5f4..d0ee76b419f 100644 --- a/apps/desktop/src/platform/services/electron-renderer-secure-storage.service.ts +++ b/apps/desktop/src/platform/services/electron-renderer-secure-storage.service.ts @@ -1,41 +1,22 @@ -import { ipcRenderer } from "electron"; - import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service"; import { StorageOptions } from "@bitwarden/common/platform/models/domain/storage-options"; export class ElectronRendererSecureStorageService implements AbstractStorageService { async get(key: string, options?: StorageOptions): Promise { - const val = await ipcRenderer.invoke("keytar", { - action: "getPassword", - key: key, - keySuffix: options?.keySuffix ?? "", - }); + const val = await ipc.platform.passwords.get(key, options?.keySuffix ?? ""); return val != null ? (JSON.parse(val) as T) : null; } async has(key: string, options?: StorageOptions): Promise { - const val = await ipcRenderer.invoke("keytar", { - action: "hasPassword", - key: key, - keySuffix: options?.keySuffix ?? "", - }); + const val = await ipc.platform.passwords.has(key, options?.keySuffix ?? ""); return !!val; } async save(key: string, obj: any, options?: StorageOptions): Promise { - await ipcRenderer.invoke("keytar", { - action: "setPassword", - key: key, - keySuffix: options?.keySuffix ?? "", - value: JSON.stringify(obj), - }); + await ipc.platform.passwords.set(key, options?.keySuffix ?? "", JSON.stringify(obj)); } async remove(key: string, options?: StorageOptions): Promise { - await ipcRenderer.invoke("keytar", { - action: "deletePassword", - key: key, - keySuffix: options?.keySuffix ?? "", - }); + await ipc.platform.passwords.delete(key, options?.keySuffix ?? ""); } } diff --git a/apps/desktop/src/platform/services/electron-renderer-storage.service.ts b/apps/desktop/src/platform/services/electron-renderer-storage.service.ts index 3810e10ab50..0060a118587 100644 --- a/apps/desktop/src/platform/services/electron-renderer-storage.service.ts +++ b/apps/desktop/src/platform/services/electron-renderer-storage.service.ts @@ -1,34 +1,19 @@ -import { ipcRenderer } from "electron"; - import { AbstractStorageService } from "@bitwarden/common/platform/abstractions/storage.service"; export class ElectronRendererStorageService implements AbstractStorageService { get(key: string): Promise { - return ipcRenderer.invoke("storageService", { - action: "get", - key: key, - }); + return ipc.platform.storage.get(key); } has(key: string): Promise { - return ipcRenderer.invoke("storageService", { - action: "has", - key: key, - }); + return ipc.platform.storage.has(key); } save(key: string, obj: any): Promise { - return ipcRenderer.invoke("storageService", { - action: "save", - key: key, - obj: obj, - }); + return ipc.platform.storage.save(key, obj); } remove(key: string): Promise { - return ipcRenderer.invoke("storageService", { - action: "remove", - key: key, - }); + return ipc.platform.storage.remove(key); } } diff --git a/apps/desktop/src/platform/services/i18n.main.service.ts b/apps/desktop/src/platform/services/i18n.main.service.ts new file mode 100644 index 00000000000..2f598f83b6e --- /dev/null +++ b/apps/desktop/src/platform/services/i18n.main.service.ts @@ -0,0 +1,90 @@ +import { promises as fs } from "fs"; +import * as path from "path"; + +import { ipcMain } from "electron"; + +import { I18nService as BaseI18nService } from "@bitwarden/common/platform/services/i18n.service"; + +export class I18nMainService extends BaseI18nService { + constructor(systemLanguage: string, localesDirectory: string) { + super(systemLanguage, localesDirectory, (formattedLocale: string) => + this.readLanguageFile(formattedLocale) + ); + + ipcMain.handle("getLanguageFile", async (event, formattedLocale: string) => + this.readLanguageFile(formattedLocale) + ); + + // Please leave 'en' where it is, as it's our fallback language in case no translation can be found + this.supportedTranslationLocales = [ + "en", + "af", + "ar", + "az", + "be", + "bg", + "bn", + "bs", + "ca", + "cs", + "da", + "de", + "el", + "en-GB", + "en-IN", + "eo", + "es", + "et", + "eu", + "fa", + "fi", + "fil", + "fr", + "he", + "hi", + "hr", + "hu", + "id", + "it", + "ja", + "ka", + "km", + "kn", + "ko", + "lv", + "me", + "ml", + "nb", + "nl", + "nn", + "pl", + "pt-BR", + "pt-PT", + "ro", + "ru", + "si", + "sk", + "sl", + "sr", + "sv", + "th", + "tr", + "uk", + "vi", + "zh-CN", + "zh-TW", + ]; + } + + private async readLanguageFile(formattedLocale: string): Promise { + // Check that the provided locale only contains letters and dashes and underscores to avoid possible path traversal + if (!/^[a-zA-Z_-]+$/.test(formattedLocale)) { + return Promise.resolve({}); + } + + const filePath = path.join(__dirname, this.localesDirectory, formattedLocale, "messages.json"); + const localesJson = await fs.readFile(filePath, "utf8"); + const locales = JSON.parse(localesJson.replace(/^\uFEFF/, "")); // strip the BOM + return Promise.resolve(locales); + } +} diff --git a/apps/desktop/src/platform/services/i18n.service.ts b/apps/desktop/src/platform/services/i18n.renderer.service.ts similarity index 71% rename from apps/desktop/src/platform/services/i18n.service.ts rename to apps/desktop/src/platform/services/i18n.renderer.service.ts index ddcc9ca972e..906f53566e2 100644 --- a/apps/desktop/src/platform/services/i18n.service.ts +++ b/apps/desktop/src/platform/services/i18n.renderer.service.ts @@ -1,18 +1,9 @@ -import * as fs from "fs"; -import * as path from "path"; - import { I18nService as BaseI18nService } from "@bitwarden/common/platform/services/i18n.service"; -export class I18nService extends BaseI18nService { +export class I18nRendererService extends BaseI18nService { constructor(systemLanguage: string, localesDirectory: string) { super(systemLanguage, localesDirectory, (formattedLocale: string) => { - const filePath = path.join( - __dirname, - this.localesDirectory + "/" + formattedLocale + "/messages.json" - ); - const localesJson = fs.readFileSync(filePath, "utf8"); - const locales = JSON.parse(localesJson.replace(/^\uFEFF/, "")); // strip the BOM - return Promise.resolve(locales); + return ipc.platform.getLanguageFile(formattedLocale); }); // Please leave 'en' where it is, as it's our fallback language in case no translation can be found diff --git a/apps/desktop/src/preload.ts b/apps/desktop/src/preload.ts new file mode 100644 index 00000000000..a6ddfdefca5 --- /dev/null +++ b/apps/desktop/src/preload.ts @@ -0,0 +1,19 @@ +// import { contextBridge } from "electron"; +import platform from "./platform/preload"; + +/** + * Bitwarden Preload script. + * + * This file contains the "glue" between the main process and the renderer process. Please ensure + * that you have read through the following articles before modifying any preload script. + * + * https://www.electronjs.org/docs/latest/tutorial/tutorial-preload + * https://www.electronjs.org/docs/latest/api/context-bridge + */ + +// Each team owns a subspace of the `ipc` global variable in the renderer. +export const ipc = { + platform, +}; + +// contextBridge.exposeInMainWorld("ipc", ipc); diff --git a/apps/desktop/src/scss/list.scss b/apps/desktop/src/scss/list.scss index ec56eaa6c88..39e520f7d89 100644 --- a/apps/desktop/src/scss/list.scss +++ b/apps/desktop/src/scss/list.scss @@ -120,8 +120,12 @@ .item-content { display: block; + overflow-x: hidden; .item-title { display: block; + overflow-x: hidden; + text-overflow: ellipsis; + white-space: nowrap; .title-badges { @include themify($themes) { color: themed("mutedColor"); diff --git a/apps/desktop/src/utils.ts b/apps/desktop/src/utils.ts index 603cc1bec15..c1597d53b50 100644 --- a/apps/desktop/src/utils.ts +++ b/apps/desktop/src/utils.ts @@ -25,8 +25,16 @@ export function isDev() { return process.defaultApp || /node_modules[\\/]electron[\\/]/.test(process.execPath); } +export function isLinux() { + return process.platform === "linux"; +} + export function isAppImage() { - return process.platform === "linux" && "APPIMAGE" in process.env; + return isLinux() && "APPIMAGE" in process.env; +} + +export function isSnapStore() { + return isLinux() && process.env.SNAP_USER_DATA != null; } export function isMac() { @@ -37,25 +45,25 @@ export function isMacAppStore() { return isMac() && process.mas === true; } +export function isWindows() { + return process.platform === "win32"; +} + export function isWindowsStore() { - const isWindows = process.platform === "win32"; + const windows = isWindows(); let windowsStore = process.windowsStore; if ( - isWindows && + windows && !windowsStore && process.resourcesPath.indexOf("8bitSolutionsLLC.bitwardendesktop_") > -1 ) { windowsStore = true; } - return isWindows && windowsStore === true; -} - -export function isSnapStore() { - return process.platform === "linux" && process.env.SNAP_USER_DATA != null; + return windows && windowsStore === true; } export function isWindowsPortable() { - return process.platform === "win32" && process.env.PORTABLE_EXECUTABLE_DIR != null; + return isWindows() && process.env.PORTABLE_EXECUTABLE_DIR != null; } /** diff --git a/apps/desktop/src/vault/app/vault/add-edit.component.html b/apps/desktop/src/vault/app/vault/add-edit.component.html index c26078394ad..1580932257b 100644 --- a/apps/desktop/src/vault/app/vault/add-edit.component.html +++ b/apps/desktop/src/vault/app/vault/add-edit.component.html @@ -114,6 +114,17 @@

+ +
+ {{ "typePasskey" | i18n }} + {{ "dateCreated" | i18n }} + {{ cipher.login.fido2Credentials[0].creationDate | date : "short" }} +
+
+ +
+ {{ "typePasskey" | i18n }} + {{ "dateCreated" | i18n }} + {{ cipher.login.fido2Credentials[0].creationDate | date : "short" }} +
diff --git a/apps/web/src/app/auth/login/login-with-device.component.ts b/apps/web/src/app/auth/login/login-via-auth-request.component.ts similarity index 90% rename from apps/web/src/app/auth/login/login-with-device.component.ts rename to apps/web/src/app/auth/login/login-via-auth-request.component.ts index ff66bdb886b..447e53bc17f 100644 --- a/apps/web/src/app/auth/login/login-with-device.component.ts +++ b/apps/web/src/app/auth/login/login-via-auth-request.component.ts @@ -1,7 +1,7 @@ import { Component, OnDestroy, OnInit } from "@angular/core"; import { Router } from "@angular/router"; -import { LoginWithDeviceComponent as BaseLoginWithDeviceComponent } from "@bitwarden/angular/auth/components/login-with-device.component"; +import { LoginViaAuthRequestComponent as BaseLoginWithDeviceComponent } from "@bitwarden/angular/auth/components/login-via-auth-request.component"; import { AnonymousHubService } from "@bitwarden/common/abstractions/anonymousHub.service"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { AuthRequestCryptoServiceAbstraction } from "@bitwarden/common/auth/abstractions/auth-request-crypto.service.abstraction"; @@ -21,10 +21,10 @@ import { PasswordGenerationServiceAbstraction } from "@bitwarden/common/tools/ge import { StateService } from "../../core"; @Component({ - selector: "app-login-with-device", - templateUrl: "login-with-device.component.html", + selector: "app-login-via-auth-request", + templateUrl: "login-via-auth-request.component.html", }) -export class LoginWithDeviceComponent +export class LoginViaAuthRequestComponent extends BaseLoginWithDeviceComponent implements OnInit, OnDestroy { diff --git a/apps/web/src/app/auth/login/login.component.html b/apps/web/src/app/auth/login/login.component.html index ff773ce94cb..f9ff828e94b 100644 --- a/apps/web/src/app/auth/login/login.component.html +++ b/apps/web/src/app/auth/login/login.component.html @@ -108,7 +108,7 @@ type="button" [block]="true" buttonType="secondary" - (click)="startPasswordlessLogin()" + (click)="startAuthRequestLogin()" > {{ "loginWithDevice" | i18n }} diff --git a/apps/web/src/app/auth/login/login.component.ts b/apps/web/src/app/auth/login/login.component.ts index 72d8e3766ec..f6b83d6bf57 100644 --- a/apps/web/src/app/auth/login/login.component.ts +++ b/apps/web/src/app/auth/login/login.component.ts @@ -1,7 +1,7 @@ -import { Component, NgZone, OnDestroy, OnInit } from "@angular/core"; +import { Component, NgZone, OnInit } from "@angular/core"; import { FormBuilder } from "@angular/forms"; import { ActivatedRoute, Router } from "@angular/router"; -import { Subject, takeUntil } from "rxjs"; +import { takeUntil } from "rxjs"; import { first } from "rxjs/operators"; import { LoginComponent as BaseLoginComponent } from "@bitwarden/angular/auth/components/login.component"; @@ -34,14 +34,13 @@ import { RouterService, StateService } from "../../core"; selector: "app-login", templateUrl: "login.component.html", }) -export class LoginComponent extends BaseLoginComponent implements OnInit, OnDestroy { +// eslint-disable-next-line rxjs-angular/prefer-takeuntil +export class LoginComponent extends BaseLoginComponent implements OnInit { showResetPasswordAutoEnrollWarning = false; enforcedPasswordPolicyOptions: MasterPasswordPolicyOptions; policies: ListResponse; showPasswordless = false; - private destroy$ = new Subject(); - constructor( devicesApiService: DevicesApiServiceAbstraction, appIdService: AppIdService, @@ -146,11 +145,6 @@ export class LoginComponent extends BaseLoginComponent implements OnInit, OnDest } } - ngOnDestroy(): void { - this.destroy$.next(); - this.destroy$.complete(); - } - async goAfterLogIn() { const masterPassword = this.formGroup.value.masterPassword; diff --git a/apps/web/src/app/auth/login/login.module.ts b/apps/web/src/app/auth/login/login.module.ts index 2a074ca2a61..eb3d58cddfc 100644 --- a/apps/web/src/app/auth/login/login.module.ts +++ b/apps/web/src/app/auth/login/login.module.ts @@ -5,12 +5,12 @@ import { CheckboxModule } from "@bitwarden/components"; import { SharedModule } from "../../../app/shared"; import { LoginDecryptionOptionsComponent } from "./login-decryption-options/login-decryption-options.component"; -import { LoginWithDeviceComponent } from "./login-with-device.component"; +import { LoginViaAuthRequestComponent } from "./login-via-auth-request.component"; import { LoginComponent } from "./login.component"; @NgModule({ imports: [SharedModule, CheckboxModule], - declarations: [LoginComponent, LoginWithDeviceComponent, LoginDecryptionOptionsComponent], - exports: [LoginComponent, LoginWithDeviceComponent, LoginDecryptionOptionsComponent], + declarations: [LoginComponent, LoginViaAuthRequestComponent, LoginDecryptionOptionsComponent], + exports: [LoginComponent, LoginViaAuthRequestComponent, LoginDecryptionOptionsComponent], }) export class LoginModule {} diff --git a/apps/web/src/app/auth/register-form/register-form.component.ts b/apps/web/src/app/auth/register-form/register-form.component.ts index 0a494ec333e..a63a44e4af2 100644 --- a/apps/web/src/app/auth/register-form/register-form.component.ts +++ b/apps/web/src/app/auth/register-form/register-form.component.ts @@ -2,7 +2,7 @@ import { Component, Input } from "@angular/core"; import { UntypedFormBuilder } from "@angular/forms"; import { Router } from "@angular/router"; -import { RegisterComponent as BaseRegisterComponent } from "@bitwarden/angular/components/register.component"; +import { RegisterComponent as BaseRegisterComponent } from "@bitwarden/angular/auth/components/register.component"; import { FormValidationErrorsService } from "@bitwarden/angular/platform/abstractions/form-validation-errors.service"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { AuditService } from "@bitwarden/common/abstractions/audit.service"; diff --git a/apps/web/src/app/auth/set-password.component.ts b/apps/web/src/app/auth/set-password.component.ts index 49320ced5d8..1e799737e2a 100644 --- a/apps/web/src/app/auth/set-password.component.ts +++ b/apps/web/src/app/auth/set-password.component.ts @@ -1,7 +1,7 @@ import { Component } from "@angular/core"; import { ActivatedRoute, Router } from "@angular/router"; -import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/components/set-password.component"; +import { SetPasswordComponent as BaseSetPasswordComponent } from "@bitwarden/angular/auth/components/set-password.component"; import { ApiService } from "@bitwarden/common/abstractions/api.service"; import { OrganizationUserService } from "@bitwarden/common/abstractions/organization-user/organization-user.service"; import { OrganizationApiServiceAbstraction } from "@bitwarden/common/admin-console/abstractions/organization/organization-api.service.abstraction"; diff --git a/apps/web/src/app/auth/settings/emergency-access/emergency-add-edit.component.ts b/apps/web/src/app/auth/settings/emergency-access/emergency-add-edit.component.ts index fdb72518b19..0e82a5c76ae 100644 --- a/apps/web/src/app/auth/settings/emergency-access/emergency-add-edit.component.ts +++ b/apps/web/src/app/auth/settings/emergency-access/emergency-add-edit.component.ts @@ -1,3 +1,4 @@ +import { DatePipe } from "@angular/common"; import { Component } from "@angular/core"; import { AuditService } from "@bitwarden/common/abstractions/audit.service"; @@ -47,7 +48,8 @@ export class EmergencyAddEditComponent extends BaseAddEditComponent { organizationService: OrganizationService, logService: LogService, sendApiService: SendApiService, - dialogService: DialogService + dialogService: DialogService, + datePipe: DatePipe ) { super( cipherService, @@ -66,7 +68,8 @@ export class EmergencyAddEditComponent extends BaseAddEditComponent { logService, passwordRepromptService, sendApiService, - dialogService + dialogService, + datePipe ); } diff --git a/apps/web/src/app/auth/settings/settings.module.ts b/apps/web/src/app/auth/settings/settings.module.ts index 282524d07e4..12ae6bcbf5e 100644 --- a/apps/web/src/app/auth/settings/settings.module.ts +++ b/apps/web/src/app/auth/settings/settings.module.ts @@ -11,6 +11,6 @@ import { WebauthnLoginSettingsModule } from "./webauthn-login-settings"; imports: [SharedModule, WebauthnLoginSettingsModule, PasswordCalloutComponent], declarations: [ChangePasswordComponent], providers: [], - exports: [WebauthnLoginSettingsModule, ChangePasswordComponent], + exports: [ChangePasswordComponent], }) -export class SettingsModule {} +export class AuthSettingsModule {} diff --git a/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.html b/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.html index 57a2c545ca1..aadcf5e5960 100644 --- a/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.html +++ b/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.html @@ -1,5 +1,5 @@
- + {{ "loginWithPasskey" | i18n }} {{ "newPasskey" | i18n }} diff --git a/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.ts b/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.ts index 5c93d6f25e2..12af83cac5c 100644 --- a/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.ts +++ b/apps/web/src/app/auth/settings/webauthn-login-settings/create-credential-dialog/create-credential-dialog.component.ts @@ -46,6 +46,7 @@ export class CreateCredentialDialogComponent implements OnInit { protected credentialOptions?: CredentialCreateOptionsView; protected deviceResponse?: PublicKeyCredential; protected hasPasskeys$?: Observable; + protected loading$ = this.webauthnService.loading$; constructor( private formBuilder: FormBuilder, diff --git a/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.html b/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.html index 4cfdbbcf7fe..5e87f6d4adf 100644 --- a/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.html +++ b/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.html @@ -1,5 +1,5 @@ - + {{ "removePasskey" | i18n }} {{ diff --git a/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.ts b/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.ts index 7cb03238392..9ee1337ffb2 100644 --- a/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.ts +++ b/apps/web/src/app/auth/settings/webauthn-login-settings/delete-credential-dialog/delete-credential-dialog.component.ts @@ -27,6 +27,7 @@ export class DeleteCredentialDialogComponent implements OnInit, OnDestroy { masterPassword: ["", [Validators.required]], }); protected credential?: WebauthnCredentialView; + protected loading$ = this.webauthnService.loading$; constructor( @Inject(DIALOG_DATA) private params: DeleteCredentialDialogParams, diff --git a/apps/web/src/app/auth/settings/webauthn-login-settings/webauthn-login-settings.component.html b/apps/web/src/app/auth/settings/webauthn-login-settings/webauthn-login-settings.component.html index 23abe02665c..5896d461bfb 100644 --- a/apps/web/src/app/auth/settings/webauthn-login-settings/webauthn-login-settings.component.html +++ b/apps/web/src/app/auth/settings/webauthn-login-settings/webauthn-login-settings.component.html @@ -22,7 +22,7 @@

- - - - -
{{ credential.name }} + {{ "supportsEncryption" | i18n }} @@ -31,7 +31,7 @@

{{ "encryptionNotSupported" | i18n }}

+ {{ i.quantity * i.amount | currency : "$" }} /{{ i.interval | i18n }}
- - {{ "customBillingStart" | i18n }} - - {{ "billingHistory" | i18n }} - - {{ "customBillingEnd" | i18n }} - -
diff --git a/apps/web/src/app/billing/individual/user-subscription.component.ts b/apps/web/src/app/billing/individual/user-subscription.component.ts index 5b4b7cf49ef..abb5fd06428 100644 --- a/apps/web/src/app/billing/individual/user-subscription.component.ts +++ b/apps/web/src/app/billing/individual/user-subscription.component.ts @@ -205,10 +205,6 @@ export class UserSubscriptionComponent implements OnInit { return this.sub != null ? this.sub.upcomingInvoice : null; } - get discount() { - return this.sub != null ? this.sub.discount : null; - } - get storagePercentage() { return this.sub != null && this.sub.maxStorageGb ? +(100 * (this.sub.storageGb / this.sub.maxStorageGb)).toFixed(2) diff --git a/apps/web/src/app/billing/organizations/billing-sync-api-key.component.html b/apps/web/src/app/billing/organizations/billing-sync-api-key.component.html index a196845a395..f5225bc29a0 100644 --- a/apps/web/src/app/billing/organizations/billing-sync-api-key.component.html +++ b/apps/web/src/app/billing/organizations/billing-sync-api-key.component.html @@ -1,117 +1,75 @@ -

/> {{ "userSeatsAdditionalDesc" - | i18n : selectedPlan.baseSeats : (seatPriceMonthly(selectedPlan) | currency : "$") + | i18n + : selectedPlan.PasswordManager.baseSeats + : (seatPriceMonthly(selectedPlan) | currency : "$") }} @@ -178,7 +216,7 @@

{{ "addons" | i18n }}

-
+
{{ "summary" | i18n }}